Re: git annoyances
- From
Karl Hasselström <kha@treskal.com>
- Date
- Apr 10, 2008, 08:41 UTC
- Message-ID
- <20080410084119.GA8979@diana.vm.bytemark.co.uk>
- In-Reply-To
- <32541b130804091008h1a757552o14dd8e937ed19058@mail.gmail.com>
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. (This complexity is needed because subversion has a concept of file identity.)
So
$ svn cp -r 4711 $REPO/foo@1234 somewhere-else
means "find the file (or directory) that was called 'foo' in revision 1234, then copy revision 4711 of that file to somewhere-else".
See http://svnbook.red-bean.com/en/1.4/svn.advanced.pegrevs.html for the full story.
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle