Re: Idea: Add a filter option to 'git rebase'
- From
Philip Oakley <philipoakley@iee.org>
- Date
- Jan 21, 2017, 23:18 UTC
- Message-ID
- <7EEBBEA4046743C9AE04AE50EE30D72A@PhilipOakley>
- In-Reply-To
- <0bd00cda-65d0-eeba-d8b9-a839e76d8e88@virtuell-zuhause.de>
From: "Thomas Braun" Friday, January 20, 2017 11:35 PM
Show 24 quoted lines
> Am 20.01.2017 um 23:28 schrieb Philip Oakley: >> A recent question on stackoverflow >> http://stackoverflow.com/questions/41753252/drop-commits-by-commit-message-in-git-rebase >> sought to remove automatically commits that could be identified by >> relevant words in the commit message. >> >> I had thought that the ubiquitous `git filter-branch` should be able to >> do this sort of thing. I was wrong. (It was pointed out to me that...) >> The man page notes that removing a commit via filter-branch does not >> remove the changes from following commits and directs readers to using >> `git rebase(1)`. >> >> However the rebase command does not have any filter option to allow the >> automatic population of its TODO list with the appropriate >> pick/edit/drop/etc. values. > > Well you can use an arbitrary shell command as editor, so something like > > $ GIT_SEQUENCE_EDITOR="sed -i -re 's/^pick /edit /'" git rebase -i master > > will change pick to edit of all commits. > > Maybe that can be mentioned in the man page of rebase? >
I had been more thinking of a process that passed single sha1's to the filter on each pass through the rebase list, so that the coding was simpler, plus the --interactive could be used, if required, for final refinement (gitk being handy for that).
However, a mention in the man pages would be zero code cost, and could help.
--
Philip