Subject: Re: Working copy revision and push pain

From: Johan Herland <[email-masked]>
Date: Sun, 23 Mar 2008 17:20:44 +0100

On Sunday 23 March 2008, Johannes Schindelin wrote:
> On Sun, 23 Mar 2008, Jonathan Watt wrote:
> > Elijah Newren wrote:
> If you want to push into non-bare repositories, then please, please, 
> please read the tutorials on that subject.

I have personally no problem with the current default behaviour of push (in the few cases I push into non-bare repos, I've set up the proper hooks to do what I want), but I frequently get questions from colleagues about why Git behaves like this.

I'm starting to think it's worth changing the default behaviour of push as follows:

Upon receiving a push into a non-bare repository, if the working copy is on the same branch as is being pushed, then refuse the push with a helpful message describing why the push was refused, and how to resolve this issue (i.e. referring to the tutorials you mention).

This would:
- Not clobber the working copy
- Tell newbies what happened and why
- Hopefully make this issue pop up less frequently
- Not affect you if you only push into bare repos
- Not affect you if you take care to never push into a checked-out branch

Of course, you should be able to set a config option to get the old behaviour, and from there you can write hooks to either update the working copy, or detach HEAD, or whatever you please.

Is this acceptable to people?

...Johan

-- 
Johan Herland, <[email-masked]>
www.herland.net