I've been doing quite a bit of experimenting with the best way to import our Subversion repository into Kiln.
Let's use an example simplified SVN repository structure:
/trunk
/Core
/Project1
/Project2
The goal, from how I understand it, should be for trunk, Core, Project1, and Project2 to all be their own repositories. So I do lots of painstaking work with hg convert, and I end up with a directory structure that matches my Subversion HEAD revision, except there's now a '.hg' folder in the root of all four new repositories.
I push all these into Kiln, 4 different repositories in a single Repository Group. Then I create my .hgsub file for the root of the trunk repository:
Core = https://myhosted.kilnhg.com/Repo/Project/Group/Core Project1 = https://myhosted.kilnhg.com/Repo/Project/Group/Project1 Project2 = https://myhosted.kilnhg.com/Repo/Project/Group/Project1
Once I add and commit that, and then push it to Kiln, I can do a new clone of the trunk repository and it gets the directory structure of all four repositories in one action. Sweet!
Now comes the problem. I want to make a developer branch repository for me. The way I understand it, if I branch trunk, creating trunk-David, that only branches that repository, and the .hgsub still points to the original Core, Project1, and Project2. If I want to branch globally, I have to branch all four repositories (and in real life, this is more than 4, and there's more than one level of subrepositories desired), then modify the .hgsub file to point to the new urls, and then commit that, just to get started.
That sounds like a LOT of work for something that should conceptually be easy.
So my questions:
- Is there a better way?
- Does my desire to globally branch suggest that I actually shouldn't be using subrepositories at all?
- It's worth noting that in our shop, everyone edits everything. It's not like there's a Core team who does stuff, and I use the Core library without ever contributing to it. A more accurate description would be that if I'm working on Project1, then I'm going to be making lots of edits to Core and Project1, but probably not modifying anything in Project2, although that's not impossible either.
- Does the Kiln team have anything on the roadmap to support easier handling of branching a subrepository?