开发者

Synchronize a SVN repository and later make it independent (copy a repository)

I am s开发者_运维百科ynchronizing an SVN repository between two systems using svnsync and I am not 100% sure if its possible to make it independent for my "new users" after the sync is finished.

What do I need to do to make it a completely independent entity? Is it enough just to change the passwd file?


What do I need to do to make it a completely independent entity?

The only link between the new repository and the original are a number of revision properties that are used by svnsync synchronize. You can safely remove those like this:

svn propdel --revprop -r 0 svn:sync-from-uuid http://svn.example.com
svn propdel --revprop -r 0 svn:sync-last-merged-rev http://svn.example.com
svn propdel --revprop -r 0 svn:sync-from-url http://svn.example.com

This doesn't do much except making sure that svnsync synchronize cannot be run anymore.

edit: Just thought of something else. You might have used svn:externals properties in your projects for pointing to another repository, or another location within the same repository.

One should use the relative URL syntax for links within the same repository, in which case there is no problem. But if an absolute URL was used for that, then such links will continue to point to the original repository after an svnsync. You can inspect all svn:externals properties like this (might take a while, recursively scans all folders):

svn propget -R svn:externals http://svn.example.com/


Basically, you need the apache configuration to:

  • reference that new repo with a different URL and a different AuthName
  • declare your new user in the conf/authz file of said new repo.
  • declaring their password (if you are using:q! AuthType Basic authentication mode)

Having different password isn't mandatory: once the two repository are managed with two different addresses (under the same apache or two different 'apache'), they will be independent one from another.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜