[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Heads-up: brand new RPM version about to hit rawhide

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 gmail com

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]