[Svnmerge] Problem with renamed branches: peg-revs?

Giovanni Bajo rasky at develer.com
Sun Feb 5 02:05:24 PST 2006


Giovanni Bajo <rasky at develer.com> wrote:

> The fix is pretty invasive though. For instance, target_to_url is
> wrong:
>
> def target_to_url(dir):
>     """Convert working copy path or repos URL to a repos URL."""
>     if is_wc(dir):
>         info = get_svninfo(dir)
>         return info["URL"]
>     return dir
>
> In fact, the URL is valid in the revision of the current working
> copy, and might not be available anymore. We should use something
> along the lines of:
>
>         return info["URL"] + "@" + info["Revision"]
>
> as this would properly identify the URL no matter how many times has
> been renamed in the repository. This simple patch makes the testsuite
> fail though. I'll investigate this later today.


I have done some more progress with this issue, but I got stuck pretty early
because "svn log" does not support pegrevs. More to the point, even assuming
that I change the svnmerge-integrated property to record the head name *and*
the revision at which that name is valid:

/trunk at 100: 1-100

I find problems because "svn log $REPO/trunk at 100" fails. "svn log --help"
doesn't mention pegrevs. Then, I tried to use "svn info" to find out the new
name for a file; I was hoping to use "svn info -rHEAD $REPO/trunk at 100" to find
out the new name of trunk, but it doesn't seem to work as well:


rasky at trinity:~/src$ svnadmin create --fs-type fsfs prova
rasky at trinity:~/src$ svn mkdir file:///home/rasky/src/prova/dir1 -m"dir1"

Committed revision 1.
rasky at trinity:~/src$ svn mv file:///home/rasky/src/prova/dir1
file:///home/rasky/src/prova/dir2 -m"dir2"

Committed revision 2.
rasky at trinity:~/src$ svn info file:///home/rasky/src/prova/dir1
file:///home/rasky/src/prova/dir1:  (Not a valid URL)

rasky at trinity:~/src$ svn info file:///home/rasky/src/prova/dir1@1
Path: dir1
URL: file:///home/rasky/src/prova/dir1
Repository Root: file:///home/rasky/src/prova
Repository UUID: e9443c2f-090c-0410-bbdb-a4e7e9618425
Revision: 1
Node Kind: directory
Last Changed Author: rasky
Last Changed Rev: 1
Last Changed Date: 2006-02-05 10:58:32 +0100 (Sun, 05 Feb 2006)

rasky at trinity:~/src$ svn info -r2 file:///home/rasky/src/prova/dir1@1
svn: File not found: revision 2, path '/dir1'

rasky at trinity:~/src$ svn info -r1 file:///home/rasky/src/prova/dir2
Path: dir1
URL: file:///home/rasky/src/prova/dir1
Repository Root: file:///home/rasky/src/prova
Repository UUID: e9443c2f-090c-0410-bbdb-a4e7e9618425
Revision: 1
Node Kind: directory
Last Changed Author: rasky
Last Changed Rev: 1
Last Changed Date: 2006-02-05 10:58:32 +0100 (Sun, 05 Feb 2006)


Anybody has further ideas?

Giovanni Bajo




More information about the Svnmerge mailing list