On Thu, Apr 10, 2008 at 4:41 AM, Karl Hasselström <kha@xxxxxxxxxxx> wrote: > On 2008-04-09 13:08:39 -0400, Avery Pennarun wrote: > > > For example, in svn you can talk about > > svn+ssh://reposerver/path/to/repo/branches/foo@1234; it's a single > > "word" that refers to a particular revision on a particular branch > > of a particular server. > > Heh, not really. Subversion actually makes this even more confusing > than git does. > > The @rev is called a "peg revision", and is different from the > "operative revision" specified with the -r flag. The peg revision is > used in conjunction with a path to specify the file (or directory) you > want, and the operative revision is used to specify which revision of > that file you mean. Yes, but I believe you get the one from @rev if you don't specify -r. For example, I can ask for an "svn diff svn://blahblah@56 svn://blahblah@59" and it'll feed it to me as expected. This is nearly the same as "svn diff -r56:59 svn://blahblah", except that it might look for blahblah in different places, as you say. I tend to prefer the @notation for exactly at that reason. > (This complexity is needed because subversion has > a concept of file identity.) File renames make diffing and merging complicated no matter whether you track them or not. svn's tracking of file identity is additional, but doesn't increase the (UI) complexity in the common case. At least with svn, a newbie can even get real work done without even knowing about -r *or* @notation. Compare that to arbitrary differences in behaviour between "git-fetch" vs "git-fetch a" vs "git-fetch a b", or the difference between HEAD^ and HEAD~1 and HEAD@1. git is very powerful, but also definitely more complex for beginners. Have fun, Avery -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html