Re: [PATCH v2 2/4] Add git-sequencer prototype documentation
- From
Karl Hasselström <kha@treskal.com>
- Date
- Jul 9, 2008, 05:20 UTC
- Message-ID
- <20080709052052.GA21390@diana.vm.bytemark.co.uk>
- In-Reply-To
- <200807081237.51456.jnareb@gmail.com>
(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:
Show 11 quoted lines
> 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.
Show 5 quoted lines
> 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