[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Question about splitting/merging repository

From: Ryan Schmidt <subversion-2011a_at_ryandesign.com>
Date: Thu, 23 Jun 2011 20:05:57 -0500

On Jun 23, 2011, at 20:01, Jean-Yves Avenard wrote:
> On 24 June 2011 05:33, Ryan Schmidt wrote:
>> You should be able to meet the "same revision numbers across both repositories" goal by inserting empty revisions for the ones not applicable to the projects in each new repo (the tools should do this for you when you use the right arguments). But you will not be able to meet the goal of being able to switch old working copies from the old monolithic repository to either of the new repositories. A working copy is tied to a repository by UUID. A UUID uniquely identifies a repository. Your plan is to retire the old repository and create two new repositories, each of which contains a portion of the old repository. Both new repositories will have new UUIDs and users will need to check out new working copies from either of them, and discard their existing working copies of the old repo.
>
> This is what I was afraid of.
>
> I don't mind loosing the ability to switch for the repo that will now
> only contain dead projects ; but I do want to keep the ability to
> switch with the new one with only the active projects.
>
> According to the svn load man page ; the UUID is kept is the svn
> repository you load your file into is empty...
>
> I just checked, and they are identical between the old monolithic repo
> and the new one.
>
> Doing svn switch --relocate also worked between the old repo and the new one.
>
> Ultimately, I plan to completely remove the old repo and rename the
> new one with the same name. Hoping that for users, that the history
> was fully rewritten with empty revisions will be completely
> transparent.

For users of the projects that remain in the repo, possibly yes. For users who had working copies of the old now-removed projects, they will receive confusing error messages if they try to use those old working copies.

The purpose of the UUID is to uniquely identify a repository. If you go do surgery to your repository to change its contents (e.g. using svnadmin dump / svndumpfilter / svnadmin load), IMHO that makes it no longer the same repository, so giving it a new UUID makes sense. But it does come with the inconveniences mentioned above.
Received on 2011-06-24 03:06:34 CEST

This is an archived mail posted to the Subversion Users mailing list.