svn: revisionspec can't be used in places where it should work
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar Subversion Plugin |
Fix Released
|
Low
|
Jelmer Vernooij |
Bug Description
I've seen #199147, but I don't think this is the same issue.
Let me demonstrate a situation where bzr-svn obviously has all the right information, but refuses to use it:
I have a bzr-svn branch of the LLVM trunk. I see something in the log that refers to a past svn revision. Now I'd like to do something with that revision.
Actual real example:
$ bzr log -l1
-------
revno: 45088
svn revno: 65945 (on /llvm/trunk)
committer: void
timestamp: Tue 2009-03-03 12:12:58 +0000
message:
Reapply r65755, but reversing "<" to ">=".
Okay, now I'd like to see what was up with svn r65755 as referred to in this log message.
$ bzr diff -csvn:65755
bzr: ERROR: the svn: revisionspec can only be used with Subversion branches
Okay, that's lame. Now I *could* do "bzr diff -csvn:65755 svn+http://
For example, my workaround is to make bzr-svn give me the information via log and grep:
$ bzr log -l200 | grep -B1 'svn revno: 65755'
revno: 45008
svn revno: 65755 (on /llvm/trunk)
Great, that was completely local, and only took about 5 seconds! Now I can do:
$ bzr log -r45008
$ bzr diff -c45008
... etc ...
But "bzr log -rsvn:65755" and "bzr diff -csvn:65755" should have worked here.
In other words, svn: revisionspecs should always work whenever bzr-svn has that metadata locally, which in this case, it obviously does.
Changed in bzr-svn: | |
assignee: | nobody → jelmer |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in bzr-svn: | |
milestone: | none → 0.5.3 |
status: | Triaged → Fix Released |
On Tue, 2009-03-03 at 16:35 +0000, Wesley J. Landaker wrote: ------- ------- ------- ------- ------- ------- ------- ---- llvm.org/ svn/llvm- project/ llvm/trunk", but that requires
> Public bug reported:
>
> I've seen #199147, but I don't think this is the same issue.
>
> Let me demonstrate a situation where bzr-svn obviously has all the right
> information, but refuses to use it:
>
> I have a bzr-svn branch of the LLVM trunk. I see something in the log
> that refers to a past svn revision. Now I'd like to do something with
> that revision.
>
> Actual real example:
> $ bzr log -l1
> -------
> revno: 45088
> svn revno: 65945 (on /llvm/trunk)
> committer: void
> timestamp: Tue 2009-03-03 12:12:58 +0000
> message:
> Reapply r65755, but reversing "<" to ">=".
>
> Okay, now I'd like to see what was up with svn r65755 as referred to in
> this log message.
>
> $ bzr diff -csvn:65755
> bzr: ERROR: the svn: revisionspec can only be used with Subversion branches
>
> Okay, that's lame. Now I *could* do "bzr diff -csvn:65755
> svn+http://
> going over the network (takes over 10 minutes, transfers over 30 MiB) ,
> but most of all is pointless, because bzr-svn already has all the
> information it needs for a svn: revisionspec to work locally.
>
> For example, my workaround is to make bzr-svn give me the information
> via log and grep:
>
> $ bzr log -l200 | grep -B1 'svn revno: 65755'
> revno: 45008
> svn revno: 65755 (on /llvm/trunk)
>
> Great, that was completely local, and only took about 5 seconds! Now I
> can do:
>
> $ bzr log -r45008
> $ bzr diff -c45008
> ... etc ...
>
> But "bzr log -rsvn:65755" and "bzr diff -csvn:65755" should have worked
> here.
>
> In other words, svn: revisionspecs should always work whenever bzr-svn
> has that metadata locally, which in this case, it obviously does.
This is nontrivial since svn:X can be ambiguous; a single bzr branch can
contain revisions imported from different svn repositories, all with the
revision number X. So we need to at least refuse to work in that case.
Other than that, it should just be a case of walking history.
Cheers,
Jelmer samba.org/ ~jelmer/
--
Jelmer Vernooij <email address hidden> - http://
Jabber: <email address hidden>