Introduction: http://monotone.ca/wiki/DaggyFixes/ I understand that this can already be done with git. The method is 1) store the current HEAD somewhere 2) figure out the proper parent for the bug fix 3) checkout the parent 4) implement the fix 5) commit the fix 6) checkout HEAD 7) merge with the commit from step 5 Is there some way to do this more automatically? The way I think this should be done: 1) fix a bug that you just found (let's imagine for a second that you just happened to know how to fix the bug without knowing the history of bug) 2) git commit (the bugfix is now the tip of the HEAD) 3) git daggy-fix And you're done. Here the magical "daggy-fix" would do the following: "Remove" the change HEAD^..HEAD from the current branch, try to recursively apply the patch to ancestors of HEAD and locate oldest parent that the patch can be automatically applied to without a conflict. Let's call this parent BUG (best guess for the original commit that introduced the bug). Commit the patch as a new child of BUG and then merge with HEAD^ (from the moment daggy-fix was executed). Checkout the new HEAD to replace the original HEAD. In short, replace the current tip of the current branch with the merge of last commit rebased as the bugfix for historical commit and HEAD^. Logical syntax for this command could be git daggy-fix fix-commit-id bug-commit-id where fix-commit-id is the commit that should be relocated and re-merged bug-commit-id is the commit that introduced the bug (no need for automatic detection of the parent) both commit id's are optional. Does this sound reasonable or is there already some better way? -- Mikko -- To unsubscribe from this list: 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