Opened 17 years ago
Closed 17 years ago
#5901 closed defect (fixed)
History broken after rename of parent-directory
Reported by: | Owned by: | Christian Boos | |
---|---|---|---|
Priority: | highest | Milestone: | 0.11 |
Component: | version control/browser | Version: | devel |
Severity: | normal | Keywords: | |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
As I store multiple small projects in one svn-repo, the structure in my repo is as follows: "projectname\trunk\projectfiles".
After renaming the toplevel dir (projectname), the history of the projectfiles is broken. I get the error: "No node /bpd/trunk at revision 253" (which on itself is correct because before rev256 path was /bakpd/trunk) the when clicking the link "Revision log" in the upper right corner of the page. When viewing the revlog from the root, the history is shown correctly and I can also follow links to (the files in) the old dirname.
Attachments (0)
Change History (3)
comment:1 by , 17 years ago
Keywords: | svn added |
---|---|
Priority: | normal → highest |
comment:2 by , 17 years ago
Here's a work around for SVN commands that don't understand copies/renames
svn log -v http:/servername/path/to/topleveldir
When a file or directory is copied or renamed, the Subversion repository tracks that history. Unfortunately in Subversion, the only client subcommand which actually takes advantage of this feature is svn log. A number of other commands (such as svn diff and svn cat) ought to be automatically following rename-history, but aren't doing so yet.In all of these cases, a basic workaround is to use 'svn log -v' to discover the proper path within the older revision.For example, suppose you copied /trunk to /branches/mybranch in revision 200, and then committed some changes to /branches/mybranch/foo.c in subsequent revisions. Now you'd like to compare revisions 80 and 250 of the file.If you have a working copy of the branch and run svn diff -r80:250 foo.c, you'll see an error about /branches/mybranch/foo.c not existing in revision 80. To remedy, you would run svn log -v on your branch or file to discover that it was named /trunk/foo.c prior to revision 200, and then compare the two URLs directly: $ svn diff http://.../trunk/foo.c@80 \ http://.../branches/mybranch/foo.c@200
comment:3 by , 17 years ago
Keywords: | svn removed |
---|---|
Milestone: | 0.11.1 → 0.11 |
Resolution: | → fixed |
Status: | new → closed |
Fixed in r6184.
Right, there are still several bugs related to inconsistent handling of the rev/path vs. created_rev/created_path of a node.