Housekeeping on Monday, 9th of February, Anno Domini MMIX, at the hour of the Buffalo
[git/dscho.git] / source-1233154567.txt
blob6d82786ed1fb86a31606d7c45dc7e664bf3701fc
1 Splitting topic branches
3 One might be put off easily by the overarching use of buzzwords in the
4 description of how ''Darcs'' works.  I, for one, do not expect an intelligent
5 author when I read ''Theory of patches'' and ''based on quantum physics''.
7 The true story, however, is much simpler, and is actually not that dumb:
8 Let's call two commits "conflicting" when they contain at least one
9 overlapping change.
11 The idea is now: Given a list of commits (not a set, as the order is important),
12 to sort them into smaller lists such that conflicting commits are in the
13 sublists ("topic branches") and the sublists are minimal, i.e. no two
14 non-conflicting commits are in the same sublist.
16 The idea has flaws, of course, as you can have a patch changing the code,
17 and another changing the documentation, but splitting a list of commits
18 in that way is a first step to sort out my ''my-next'' mess, where I have
19 a linear perl of not-necessarily-dependent commits.
21 And actually, my whole rebase revamp aimed at the clean-up for my own
22 ''my-next'' branch, so I am currently writing a script that can be used
23 as a GIT_EDITOR for git-rebase which implements the Darcs algorithm.  Kind of:
24 the result is not implicit, but explicit and can be fixed up later.