Hi,

The following script fails with both 1.6.x and trunk:

svnadmin create testrepo
svn co file:///d:/development/svn/svntests/testrepo testwc
cd testwc
echo test > file.txt
svn add file.txt
svn ci -m ""
echo test2 > file.txt
svn ci -m ""
echo test > file2.txt
svn add file2.txt
svn ci -m ""
svn ren file.txt file3.txt
svn ci -m ""
svn cat file3....@4 -r3

svn: Unable to find repository location for 'file3.txt' in revision 3

Note: if the commits of file2.txt are not done (i.e., there's no revision between the asked rev and the rename), then it works.

The following patch fixes this issue. But I'm not sure if this is the correct way to fix this. Maybe someone else can take a look at this and maybe come up with a better solution?

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
[[[
Fix peg revision calculations.
* subversion/libsvn_repos/rev_hunt.c
  (svn_repos_trace_node_locations): don't skip over the last
  revision.

]]]
Index: subversion/libsvn_repos/rev_hunt.c
===================================================================
--- subversion/libsvn_repos/rev_hunt.c  (revision 949486)
+++ subversion/libsvn_repos/rev_hunt.c  (working copy)
@@ -749,7 +749,7 @@
 
       /* Ignore all revs between the copy target rev and the copy
          source rev (non-inclusive). */
-      while ((revision_ptr < revision_ptr_end)
+      while ((revision_ptr < (revision_ptr_end-1))
              && (*revision_ptr > prev_rev))
         revision_ptr++;
 

Reply via email to