From: Philip Oakley Date: Sat, 21 Jan 2017 23:18:19 GMT Subject: Re: Idea: Add a filter option to 'git rebase' 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 > 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