Re: Feature request: Configurable prefixes for git commit --fixup and --squash
- From
John Keeping <john@keeping.me.uk>
- Date
- Mar 3, 2016, 14:44 UTC
- Message-ID
- <20160303144438.GF1766@serenity.lan>
- In-Reply-To
- <CALHmdRwgDjRJMQSPzp34aS25ZHg-mr458QeyYgyp85q8g34Aig@mail.gmail.com>
[please don't top post on this list]
On Thu, Mar 03, 2016 at 03:33:34PM +0100, Martine Lenders wrote:
> yes, it can be anywhere in the commit message and I already thought > about using a hook for generating the commit message too, but the > problem is then, that `git rebase` won't pair up the commit for > squashing/fixing up with the original commit.
Huh? With the hook below you just run `git commit --fixup=...` as normal and it appends a "[ci skip]" line to the bottom of the commit message.
Show 37 quoted lines
> Am 03.03.2016 14:21 schrieb "John Keeping" <john@keeping.me.uk>: > > > > On Thu, Mar 03, 2016 at 01:47:00PM +0100, Martine Lenders wrote: > > > I'm not sure if this was already requested somewhere (a quick - but > > > admittedly not thorough - search did not reveal anything in that > > > direction), but I really miss an option to configure the prefixes generated > > > by `git commit (--fixup | --squash) <commit>` and picked up by `git rebase > > > -i --autosquash`. > > > > > > My reasoning is that in our project we use GitHub + Travis to test-build > > > our pull requests, but we don't want to spam the CI server with builds that > > > are just fixups to previous changes (which are uploaded so reviewers can > > > track the changes to the original PR). Now, Travis has the option to not > > > build a commit if there is the string `[ci skip]` in the commit message > > > (sadly also not configurable) so it would be really great for my workflow > > > if I could just add this string to the message generated by `--fixup`. > > > > I am against the feature as you describe it, because it has the > > potential to break `git rebase --autosquash` with shared fixups if two > > people are using a different prefix. > > > > However, it sounds like Travis will recognize "[ci skip]" anywhere in > > the commit message. Would a feature to allow autogenerated content in > > fixup/squash commit message bodies work? > > > > In fact, this can already be achieved with a prepare-commit-msg hook > > like this (untested, but shows the principle): > > > > -- >8 -- > > #!/bin/sh > > case "$(head -n 1 "$1")" in > > "fixup! "*|"squash! "*) > > cat >>"$1" <<-\EOF > > > > [ci skip] > > EOF > > esac