Hi,<br>
<br>
<div><span class="gmail_quote">On 8/14/06, <b class="gmail_sendername">John Arbash Meinel</b> &lt;<a href="mailto:john@arbash-meinel.com">john@arbash-meinel.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Matthieu Moy wrote:<br>&gt; Hi,<br>&gt;<br>&gt; In the past, I've brought this topic several times in this mailing<br>&gt; list. The basic problem is that the revision specifiers do not allow<br>&gt; one to deal with a remote revision. The typical problem is: take two
<br>&gt; arbitrary remote revisions. bzrlib knows how to diff them, but up to<br>&gt; recently, it was not exported in the UI at all.<br>&gt;<br>&gt; There are roughly 3 ways to deal with it:<br>&gt;<br>&gt; 1) Extend the revisionspec to deal with remote locations. That's what
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;I implemented allowing one to do &quot;diff -r revno:42:<a href="http://branch.com/">http://branch.com/</a>&quot;<br>&gt;<br>&gt; 2) Extend URL to deal with revisions. There used to be a syntax for<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;this which has been pulled out (
<a href="http://location.com/path/@3">http://location.com/path/@3</a> IIRC)<br>&gt;<br>&gt; 3) Keep URL and revision spec distinct, and ask both to be provided on<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;the command line.</blockquote><div><br>
Getting into discussion late, and i see it already slipped into
discussing (1) way, extend the revisionspec to deal with remote
locations. As far as it goes, i see there are encoding/decoding issues that only complicate things.<br>

I am, as a user, personally inclined to the (3) way, keep URL and revisionspec distinct.<br>
This would get rid of yet another encoding scheme while all that is
needed is to pass two strings into program. IMO trying to join the
strings and thinking of a way how to do it unambiguously is not the way
to go.<br>
<span class="gmail_quote"></span></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; Well, the conclusion is that it's hard to get something easy to type
<br>&gt; (no shell metacharacters) and unambiguous. Indeed, with branch:, there<br>&gt; are already ambiguities: I can have a branch whose name is<br>&gt; &quot;foo..revid:bar&quot;, it's a valid directory name!<br><br>...
<br><br>&gt;&nbsp;&nbsp; $ bzr diff -r 3 -R 4 <a href="http://remote/branch">http://remote/branch</a><br>&gt;<br>&gt;<br>&gt; I'm willing to spend some time on an implementation if the team agrees<br>&gt; on a specification.<br>&gt;
<br>&gt; Any comments/flames/better proposals are welcome.<br><br>Especially with switching over to optparse, you will need to be careful<br>if you want to create an argument that takes 2 parameters. If you really<br>wanted, you could just use ' ' as the separator. So you would have:
<br><br>bzr diff -??? &quot;3 <a href="http://remote/branch">http://remote/branch</a>&quot;<br><br>space can occur in paths, though :)</blockquote><div><br>
I can think of one more way of specifying branch:<br>
(given the &quot;-b&quot; switch is for specifying branch)<br>
<br>
bzr diff -r 3 -b <a href="http://remote/branch">http://remote/branch</a> -r 4 -b <a href="http://somewhere/else">http://somewhere/else</a><br>
</div><br>
This scheme does not use arguments with two parameters, does not need
anything escaped and is clear to type and read. However it requires
parsing of repeated options.<br>
<br>
Just my two cents,<br>
--<br>
ghozzy<br></div>