My company is using branch repositories for feature and personal branches as suggested by Kiln. However, I'm not sure how to tell exactly what changes went into a feature branch as opposed to the parent branch.
For example, let's say I have a central repository repository with the following history:
[Central] a - ... - d (tip)
Now I create the feature branch, which initially looks like this:
[Feature] a - ... - d (tip)
Then I add some changes to the feature branch, so it looks like this:
[Feature] a - ... - d - e - ... - m - n (tip)
Now the history for my feature branch contains the entire repository history for all time ( "a" through "n" ) , with no clear indication of where it started ( which is actually at "e" ).
If I were using named branches, it would be a little more clear, as the branches would look like this:
[Central] a - ... - d \ [Feature] e - ... - m - n (tip)
It only gets worse once you start merging changes from the central branch into the feature branch to keep up with current development while working on the feature.
At this point, the Mercurial commands
hg incoming and
hg outgoing (and the in/out tab in Kiln) can be used to see the changes in the filter branch, but how about after you push the feature changes back into the central branch? At that point, the two branches look like this:
[Central] a - ... - d - e - ... - m - n (tip) [Feature] a - ... - d - e - ... - m - n (tip)
The two histories of the branch repositories are identical (assuming no changes were made separately in the central branch). Named branches don't appear have this problem, because the feature branch still exists and describes the changes:
[Central] a - ... - d ---------------- o (tip) \ / [Feature] e - ... - m - n
So, how do you know, at any given point in time, including after merging changes back into the central repository, what changes were made in the feature branch that are unique to that branch?
(Per Kevin's answer below, it looks like Kiln 2.3 will have a unified DAG that will help with this, but is there a good way to do this in general?)