On 5/2/06, Sam Vilain <sam@xxxxxxxxxx> wrote:
Here I'm a little bit confused still. Surely criss-crossing branches already don't converge unless the commits are in the same order.
They do under GIT. No matter how much you criss-cross, every time you identify a merge base for the next merge, you are identifying the last commit in common on both branches. While maybe you didn't have that commit being the tip of a head in your repo, it _is_ the last common point. If your criss-crossing is messy and a few commits are out of order or cherry picked, git-merge has a good chance of spotting it. The whole mechanism tends pulls quite consistently towards convergence. If the notes in the commit msg aren't consistent and we lose the natural tendency towards convergence that's a major drawback. On the other hand, if two branches have exchanged patches "out of band", git-merge still gets it right most of the time, so perhaps slightly different headers in the commit messages are tolerable? Junio had written:
>On the other hand, a "note" field that records on which branch >of which repository each commit was made (you need to give each >repository-branch an UUID) when you do create a new commit would >be a sensible thing to have if somebody cares deeply enough.
I really don't like that -- goes against the grain of really simple, portable repos. I cp -pr repo{,_tmp} all the time to do risky merges or save a heavy download from a remote server. Let me run away from this idea... quick before Linus kills us all ;-) I did feel a couple of times the need of remembering where I had checked this in -- but it went away quite quickly, must have been a leftover of my Arch days ;-). And it actually got solved by agreeing within my team to a commit message format pretty much like what's used in the kernel. Because the truth is that most of my heads and branches have very "local" names. cheers, martin - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html