Thanks. This new changeset should be doing what Robert suggested.<br><br><div><span class="gmail_quote">On 10/16/06, <b class="gmail_sendername">Martin Pool</b> <<a href="mailto:mbp@canonical.com">mbp@canonical.com</a>> wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 16 Oct 2006, Robert Collins <<a href="mailto:robertc@robertcollins.net">robertc@robertcollins.net
</a>> wrote:<br>> I've reviewed this, and I have some UI concerns, as well as a bunch of<br>> more mechanical 'this is how we do things' requests. At the moment, I'm<br>> voting -1 on this.<br><br>Yes, Robert caught several important things.
<br><br>> These are likely to need to be standard options and should be globally<br>> registered in options.py. However, I dislike the names as I think they<br>> are too sensitive to the context.<br>> For instance, I can have a tree which I have reverted to revision 50,
<br>> and pass in -r 100. In this case, the code will consider 'old' to be<br>> 100, and 'new' to be the current working tree, but I might well<br>> internally think of 'old' as the current working tree and 'new' as
<br>> revision 100. Lets try to find better options names here.<br><br>This is true.<br><br>The basic difference is "look up this file in the current tree and get<br>an old version", vs "look up the old tree and then look up this
<br>filename." One could call it "follow-renames", but in bzr it's not<br>really a matter of following renames since we go directly through ids.<br>Perhaps --historic-names?<br><br>Despite that there will only be one option it should be an reversible
<br>boolean, so you can say --no-whatever-option.<br><br>> We do have a helper that allows this to happen automatically, which I'd<br>> also like to see used - I see it working like this:<br>> * If the user supplies --old, the file is looked up in the old tree
<br>> else<br>> * If the file is in the current tree, it is used<br>> else<br>> * If the file is in the old tree it is used<br><br>The helper to which robert refers is<br><br> Tree.find_ids_across_trees(file_list, trees)
<br><br>but I'm not sure that does quite the right thing if it can't be foudn.<br><br>> if no file is found, it is an error. This could be done easily by just<br>> searching for the ids in either the (current, old) trees, or the (old, )
<br>> tree alone.<br><br>Right.<br><br>It seems like any command which takes both a filename and a -r option<br>will need to do something like this. Some of them, such as diff, use -r<br>to get one or two revision trees plus possibly a working tree. So in
<br>that case I can imagine wanting to specify that the names come from one<br>or the other.<br><br>Suppose we are currently on r30, and foo.py has been renamed in 15 and<br>25:<br><br> bzr diff -r 10..20 foo.py<br><br>The best heuristic may be to search in *all* of the working tree, 20,
<br>and 10, but we may want to override that.<br><br>--<br>Martin<br><br></blockquote></div><br>