[svk-commit] r2373 - in trunk: lib/SVK t

nobody at bestpractical.com nobody at bestpractical.com
Tue Apr 3 03:29:23 EDT 2007


Author: clkao
Date: Tue Apr  3 03:29:22 2007
New Revision: 2373

Added:
   trunk/t/07smerge-copy2.t
Modified:
   trunk/MANIFEST
   trunk/lib/SVK/Merge.pm

Log:
Fix the mysterious "file not found at revision 0" bug when
smerge to a mirror where copy source is not normalized.


Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST	(original)
+++ trunk/MANIFEST	Tue Apr  3 03:29:22 2007
@@ -200,6 +200,7 @@
 t/07smerge-branch-renamed.t
 t/07smerge-copy-co.t
 t/07smerge-copy.t
+t/07smerge-copy2.t
 t/07smerge-delete.t
 t/07smerge-dir-replaced.t
 t/07smerge-external.t

Modified: trunk/lib/SVK/Merge.pm
==============================================================================
--- trunk/lib/SVK/Merge.pm	(original)
+++ trunk/lib/SVK/Merge.pm	Tue Apr  3 03:29:22 2007
@@ -611,12 +611,14 @@
 		      $self->resolve_copy($srcinfo, $dstinfo, @_);
 		  return unless defined $dst_from;
 		  # ensure the dst from path exists
-		  return unless $self->{dst}->root->fs->revision_root($dst_fromrev)->check_path($dst_from);
+		  my $dst_path = SVK::Path->real_new({depot => $self->{dst}->depot, path => $dst_from, revision => $dst_fromrev});
+		  return unless $dst_path->root->check_path($dst_path->path);
+		  $dst_path->normalize;
 		  # Because the delta still need to carry the copy
 		  # information of the source, make merge editor note
 		  # the mapping so it can do the translation
 		  $meditor->copy_info($src_from, $src_fromrev,
-				     $dst_from, $dst_fromrev);
+				      $dst_path->path, $dst_path->revision);
 
 		  return ($src_from, $src_fromrev);
 	      } );

Added: trunk/t/07smerge-copy2.t
==============================================================================
--- (empty file)
+++ trunk/t/07smerge-copy2.t	Tue Apr  3 03:29:22 2007
@@ -0,0 +1,12 @@
+#!/usr/bin/perl -w
+
+# TODO: Write a smerge test that includes a copy from rev that isn't
+# resolvable to the mirror's remote rev.  This resulted in mysterious
+# 'file not found: revision 0' and is now fixed.
+
+use Test::More tests => 1;
+
+TODO: {
+todo_skip "doesn't exist", 1;
+
+}


More information about the svk-commit mailing list