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 fedora-devel-list mailing list