[svk-commit] r3152 - in trunk: lib/SVK lib/SVK/Editor

nobody at bestpractical.com nobody at bestpractical.com
Mon Dec 7 19:51:29 EST 2009


Author: clkao
Date: Mon Dec  7 19:51:28 2009
New Revision: 3152

Added:
   trunk/lib/SVK/Editor/PropEol.pm
Modified:
   trunk/MANIFEST
   trunk/lib/SVK/Path.pm

Log:
svn: prop eol normalizer.

Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST	(original)
+++ trunk/MANIFEST	Mon Dec  7 19:51:28 2009
@@ -84,6 +84,7 @@
 lib/SVK/Editor/MapRev.pm
 lib/SVK/Editor/Merge.pm
 lib/SVK/Editor/Patch.pm
+lib/SVK/Editor/PropEol.pm
 lib/SVK/Editor/Rename.pm
 lib/SVK/Editor/Serialize.pm
 lib/SVK/Editor/Status.pm

Added: trunk/lib/SVK/Editor/PropEol.pm
==============================================================================
--- (empty file)
+++ trunk/lib/SVK/Editor/PropEol.pm	Mon Dec  7 19:51:28 2009
@@ -0,0 +1,81 @@
+# BEGIN BPS TAGGED BLOCK {{{
+# COPYRIGHT:
+# 
+# This software is Copyright (c) 2003-2008 Best Practical Solutions, LLC
+#                                          <clkao at bestpractical.com>
+# 
+# (Except where explicitly superseded by other copyright notices)
+# 
+# 
+# LICENSE:
+# 
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of either:
+# 
+#   a) Version 2 of the GNU General Public License.  You should have
+#      received a copy of the GNU General Public License along with this
+#      program.  If not, write to the Free Software Foundation, Inc., 51
+#      Franklin Street, Fifth Floor, Boston, MA 02110-1301 or visit
+#      their web page on the internet at
+#      http://www.gnu.org/copyleft/gpl.html.
+# 
+#   b) Version 1 of Perl's "Artistic License".  You should have received
+#      a copy of the Artistic License with this package, in the file
+#      named "ARTISTIC".  The license is also available at
+#      http://opensource.org/licenses/artistic-license.php.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# CONTRIBUTION SUBMISSION POLICY:
+# 
+# (The following paragraph is not intended to limit the rights granted
+# to you to modify and distribute this software under the terms of the
+# GNU General Public License and is only of importance to you if you
+# choose to contribute your changes and enhancements to the community
+# by submitting them to Best Practical Solutions, LLC.)
+# 
+# By intentionally submitting any modifications, corrections or
+# derivatives to this work, or any other work intended for use with SVK,
+# to Best Practical Solutions, LLC, you confirm that you are the
+# copyright holder for those contributions and you grant Best Practical
+# Solutions, LLC a nonexclusive, worldwide, irrevocable, royalty-free,
+# perpetual, license to use, copy, create derivative works based on
+# those contributions, and sublicense and distribute those contributions
+# and any derivatives thereof.
+# 
+# END BPS TAGGED BLOCK }}}
+package SVK::Editor::PropEol;
+use strict;
+use SVK::Version;  our $VERSION = $SVK::VERSION;
+
+require SVN::Delta;
+use base 'SVK::Editor::ByPass';
+
+
+=head1 NAME
+
+SVK::Editor::PropEol - An editor that normalizes eol for svn: properties
+
+=head1 SYNOPSIS
+
+=cut
+
+sub change_file_prop {
+    my ($self, $path, $name, $value) = @_;
+    $value =~ s/\r\n/\n/g
+        if $name =~ m'^svn:';
+    $self->SUPER::change_file_prop($path, $name, $value);
+}
+
+sub change_dir_prop {
+    my ($self, $path, $name, $value) = @_;
+    $value =~ s/\r\n/\n/g
+        if $name =~ m'^svn:';
+    $self->SUPER::change_dir_prop($path, $name, $value);
+}
+
+1;

Modified: trunk/lib/SVK/Path.pm
==============================================================================
--- trunk/lib/SVK/Path.pm	(original)
+++ trunk/lib/SVK/Path.pm	Mon Dec  7 19:51:28 2009
@@ -56,7 +56,7 @@
 			       IS_WIN32 get_depot_anchor
 			       uri_escape traverse_history );
 
-use Class::Autouse qw(SVK::Editor::Dynamic SVK::Editor::TxnCleanup SVK::Editor::Tee);
+use Class::Autouse qw(SVK::Editor::Dynamic SVK::Editor::TxnCleanup SVK::Editor::Tee SVK::Editor::PropEol);
 
 use SVN::Delta;
 
@@ -207,6 +207,8 @@
 
     $editor = SVK::Editor::TxnCleanup->new(_editor => [$editor], txn => $txn);
 
+    $editor = SVK::Editor::PropEol->new(_editor => [$editor]);
+
     return ($txn, $editor, $post_handler_ref);
 }
 


More information about the svk-commit mailing list