Re: [PATCH v2 2/4] Add git-sequencer prototype documentation
From: Karl Hasselström <hidden>
Date: 2016-06-15 22:44:54
(I've hijacked this thread and started talking mostly about StGit instead of git-sequencer; if you're not interested, you can stop reading now.) On 2008-07-08 12:37:50 +0200, Jakub Narebski wrote:
1. Splitting a patch I cannot comment well on git-sequencer, as I have started using StGIT patch management interface instead of git-rebase in times when there were no "git rebase --interactive". Nevertheless working with StGIT is a bit similar to working with interactive rebase... I don't find myself wanting to join two patches into one (to squadh a commit) perhaps because when I want to add something to a commit (to a patch) I simply go to this patch, edit files, and refresh the patch.
You can do this without having to manually go to the right patch with the -p <patchname> flag to stg refresh. In my experimental branch, this even works together with path limited refresh, or refresh of just the index. My own workflow is different: I generally make a large number of rather small "work-in-progress" commits without much of a commit message, and every now and then (while I still have everything in short-term memory) I use "stg coalesce" to make one or more "real" patches out of them. Because I've committed such small pieces in the first place, I rarely need to split a patch.
From time to time however I find myself SPLITTING a patch, for example extracting something added "by the way"/"while at it" into separate commit (like late separate better documenting project_index file format from adding optional description field to project_index file format).
The best way I've found of splitting a patch in StGit is to open the
diff in an Emacs buffer, then pop the patch, and then use Emacs' cool
diff-mode features to apply hunks selectively, split hunks, edit files
in place, etc., and committing at the points where I want patch
boundaries. Occasionally, I'll push and pop the patch to get a new
diff with only the remaining stuff.
I imagine something like this could work without StGit as well, since
it's mostly Emacs doing all the hard work. (And I suppose there are
other tools besides Emacs that can do this?)
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle