threads / discuss / 24416

Re: git: please refuse push containing commits marked for autosquash by default

Subject: Re: git: please refuse push containing commits marked for autosquash by default

## tl;dr

2 messages between Jul 16, 2010 and Jul 26, 2010.

replies: 1people: 2as markdown or json

Jonathan Nieder· Jul 16, 2010, 19:04 UTC · lore
Hi Simon,
Simon Richter wrote:
> When using the --autosquash feature, quite a number of temporary commits
> are created that should never be pushed anywhere. It might be a good
> idea to have an option to refuse to transfer commits whose messages
> start with "fixup!" or "squash!", both on the server and client side.

At first glance this looks very useful, as an optional hook rather than on by default[1].

It sounds like a good use for hooks.

Receiving side: an update hook should do the trick. See the githooks manual page, or /usr/share/doc/git/contrib/hooks/update-paranoid for an example.

Sending side: there is no pre-push hook yet, but there was some work towards that about a year and a half ago[2]. Maybe someone interested could revive the topic or figure out what remains to be done.

Jonathan

[1] Sometimes I send works in progress from one machine to another; it would be quite unnerving if this resulted in some puzzling message about how I forgot to rebase first.

[2] http://thread.gmane.org/gmane.comp.version-control.git/92900 http://thread.gmane.org/gmane.comp.version-control.git/128426/focus=128433

Jeff King· Jul 26, 2010, 15:50 UTC · re: Jonathan Nieder · lore
On Fri, Jul 16, 2010 at 02:04:32PM -0500, Jonathan Nieder wrote:
Show 7 quoted lines
> > When using the --autosquash feature, quite a number of temporary commits
> > are created that should never be pushed anywhere. It might be a good
> > idea to have an option to refuse to transfer commits whose messages
> > start with "fixup!" or "squash!", both on the server and client side.
> 
> At first glance this looks very useful, as an optional hook rather
> than on by default[1].

Yeah, from my cursory look, this really seems like policy that should be going in a hook.

> Sending side: there is no pre-push hook yet, but there was some work
> towards that about a year and a half ago[2].  Maybe someone interested
> could revive the topic or figure out what remains to be done.
If somebody is interested in that, they should read this related thread:
  http://thread.gmane.org/gmane.comp.version-control.git/128273

which talks about a "pre-push" hook that could interactively confirm push of specific refs. So ideally any pre-push hook interface would not just be "do the push or not" but would actually be able to munge the list of commits to push.

-Peff

← back to recent threads