12

2

Hello! I have two questions:

1) There are two options when you create a new branch: "Central repository" and "Branch Repository". What is the difference between this two approaches? As I understand in both cases Kiln creates full-fledged Mercurial repositories. Yes, I've noticed that there is difference in how repositories appear in web-interface and I can do everything with original repository and branched repository if I choose "Central Repository". But are there any more essential or functional differences?

2) What does the field "Parent Repository"? If I set "Parent Repository" field for the repository, I can do the same things with it, as if "Parent Repository" field is empty. Please correct me if I am wrong.

Thanks!

Update: Today I created a new "Central Repository" branch and Kiln automatically set "Parent Repository" to the original repository. But then I pushed some changes in the branch and got an error: my branch repository doesn't has the same history of changesets as parent repository and Kiln set "Parent Repository" of the branch repository to "None" for me to solve the problem. (I don't remember exact message. I think it would be useful to have ability to see the history of notifications.)

Why this problem occured? I think it's obviously that history of changesets may be different for some time. And how "Parent Repository" field works in this case?

flag

1 Answer

12

Hey Anton,

The difference between branching to a "branch repository" or a "central repository" is really just a UI distinction. The distinction is there for a reason, though. We found that during the course of development there were some repositories that we created that were just "more important" than others. The central repository is there to say, "This is the repository that we all share, and I should take a second to think before a plop a broken feature in here." The branch repository is there to let you move feature development out of a central repository while still giving an indication that the feature is ultimately going to be delivered to the parent. There are no real functional differences, however, and we are actually working on a feature that will let you "promote" a branch repository to become a central repository.

The Parent Repository field is there to set the default target of the "Outgoing" tab and the "Push" control. It can be thought of as the default path for the repository on the server (to borrow from Mercurial's terminology).

I don't fully understand the situation you mention in your update. If you can reproduce the problem, please send us a screen shot to customer-service@fogcreek.com and I will see if I can sort out exactly what happened.

link|flag
2 
+1 for adding in branch promotion! – cdeszaq Mar 22 2010 at 14:29
1 
Thanks, for answer to question 1, but could you explain main purpose of "Parent Repository" field. P.S. I'll try to reproduce the problem. – Anton Moiseev Mar 22 2010 at 16:12
1 
OK. I've updated my answer to include that information. Sorry for missing it the first time 'round. – Jason Rosoff Mar 22 2010 at 17:14
1 
@Jason Rosoff Thanks! @cdeszaq I think branch promotion would be really invaluable feature, if Kiln used native Mercurial branches. But since Kiln creates full-fledged repositories for branches it's pretty simple promote branch repository to central repository manually. Are you so inspired with this feature just because it will be possible to do with "one click"? P.S. I'm not a newbie, but not very experienced in DVCS. Please, correct me if I'm wrong. – Anton Moiseev Mar 22 2010 at 20:26
@Anton Yes, the 1-click capability is the part I like the most. I don't want to have to deal with "real" repositories if I can do it with just the web interface. – cdeszaq Mar 24 2010 at 20:57

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.