Heads-up: brand new RPM version about to hit rawhide
Les Mikesell
lesmikesell at gmail.com
Wed Jul 16 15:01:10 UTC 2008
Kevin Kofler wrote:
>
>> But the URL is not immutable. You wouldn't believe the number of people that
>> have come to the git-list to complain about git-svn not properly importing
>> svn repositories simply because the layout has changed since the repository
>> was first started, or because it was moved one directory up, or some branch
>> was deleted after having been used to tag something from. SVN is fragile and
>> has no way of canonically naming a commit. URL+Rev doesn't cut it, since
>> URL can change (and so can rev, but only in insane cases).
>
> But the old revision will still have the code at the given URL, it will be
> moved or deleted only in the new revision. The only way the URL of a given
> revision can change is if the entire repository moves to somewhere else. Your
> mistake there is that you're treating the URL as the primary key, when actually
> the order to lookup something is:
> 1. repository
> 2. revision (only valid in the context of the repository)
> 3. directory within the repository (only valid for a given revision)
> because SVN versions entire repositories with revision IDs, not directories or
> branches.
>
> (One thing which confuses this issue is that normally 1 and 3 are given in a
> single URL and 2 separately. SVN will do the right thing and separate the URL
> into repository and directory.)
This is all correct, but... in subversion, by convention tags are used
to create human-generated names for specific revisions and for that to
work as expected (i.e. not needing the revision # along with the tag)
you have to not do subsequent commits to that tag. Also it is
permitted, but confusing, to delete a tag and recreate another with the
same name but different contents. In this circumstance older tag copies
are not actually removed from the repository but can only be referenced
by specifying the associated repository revision number using peg
reference syntax - and since you typically don't need to know the
revision number when working with tags it may be difficult to find after
the fact.
--
Les Mikesell
lesmikesell at gmail.com
More information about the devel
mailing list