I see that the "In/Out" tab on a repository is now "Related", and includes a new DAG. What's this all about?
|
4
|
If you're using Kiln's branch repositories to separate development of different features and version, as we do at Fog Creek, it can be hard to keep track of what repositories contain certain fixes and features. One of your developers might have an awesome new feature in her own branch, along with a bug fix that's gone to QA. Plus, another developer just pushed a feature right to your release repository! How can you keep all this straight? The Related Graph, new in Kiln 2.4, is designed to answer these questions. While the electric DAG shows you the relationship of changesets within a single repository, that doesn't help much for showing the relationship of several related repositories. The Related Graph also shows a DAG, but it shows all the changesets in a set of related repositories. This means that every branch and other repository that shares history with the current repository is included -- it's the union of all those changesets. For large projects, this could get complicated, so Kiln simplifies the DAG by only showing the changesets that are a head in one or more repositories. All other changesets are collapsed into a single row. You can find the Related Graph by clicking the "Related" tab at the top of any repository, then clicking "Related":
That sounds complicated, so let's look at some pictures! First, let's look at the simplest case: a single-headed repository with no branches.
(the repository I'm using here is jespern's Piston for Django if you'd like to follow along at home) It's pretty straightforward: only the head is shown, and the other 264 changesets are collapsed into a single row. Now let's push two changesets into the branch
Again, all the changesets except the two heads are collapsed. But why aren't all the changesets collapsed into a single row? It's because the Related Graph preserves the relationship of changesets to one another and to the repositories containing them. Remember that in the DAG, each changeset appears above its parents and other ancestors. So the ancestors of Put another way,
As expected, the ancestors of that changeset are the 264 collapse changesets; the changesets that are only in
Now, Let's keep moving. Now, another developer has pushed his changes into another repository:
Much like before, you can see that
Whoa! What's going on here? Now, we want to ship all of these changes, so we merge the two heads from
The two heads in At the top of the page, you can see all the repositories that are included in the graph. Note that even though
Though the head in That covers all the bases for what the Related Graph can do. I'll leave you with a more complicated example:
This is the sort of graph you'll see for a more mature product, set up with a branch per version plus development branches for each developer. Here, At the top of the graph, it diverges as developers do new work in the
As the developers merge work back into Understanding your code's history requires looking across repositories to get the whole story. Kiln's Related Graph helps you keep track of what changes are lingering in a developer's personal branch or waiting to be pushed from a bugfix branch, and reveals the interconnected history of a large project. The shape of your project's history is simplified, so you can understand your code base at a glance. |
|||
|
|










