Adapting svn:externals usage for move to Mercurial

Frank Schmitt ich at frank-schmitt.net
Fri Dec 23 07:19:41 CST 2011


Hi,

We've got in a corporate environment an svn repository structure which
looks like this:

root
  libs
    shared_lib1
    shared_lib2
    private_lib
  public_code
  private_code

where public_code is an external repository which is open source and
where people from outside the company have read-write-access. 
shared_lib1 and shared_lib2 are also external repositories shared with a
different group of programmers from an other company. I'm the maintainer
and can do basically whatever is technically best, the outside users
will have to adapt.

I'm now wondering what the best way is to move from this structure to a
mercurial repository.

1) I could closely simulate the old setup using mercurial
subrepositories. OR
2) I could make one big repo for us and three new smaller, separate
repositories for the external partners (so basically forking projects)
and exchange changesets between the big one and the separate ones.

With setup 1) in svn, branching is a nightmare because I by policy
always have to branch public_code, shared_lib1 and shared_lib2 when I
branch root. For this I have to call svn branch four times and modify
svn:externals properties by hand three times. Can I easily branch the
main repo in mercurial and get automatically new branches for all
sub-repositories?

When I do setup 2), the file system will be different between
repos. E.g. I will have public_code/Makefile in repo "root" but the file
will be just "Makefile" in repo "public_code". Will Mercurial still be
able to synchronize changes between the repos? How could the workflow
look like?

Frank

-- 
Have you ever considered how much text can fit in eighty columns?  Given that a
signature typically contains up to four lines of text, this space allows you to
attach a tremendous amount of valuable information to your messages.  Seize the
opportunity and don't waste your signature on bullshit that nobody cares about.


More information about the Mercurial mailing list