Re: disallowing push to currently checked-out branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 16, 2009 at 04:43:03PM -0800, Junio C Hamano wrote:

> That sounds similar to saying "I left my editor open without saving my
> changes, and accidentally opened another instance of an editor from a
> different terminal and edited the same file, the result is a mess".  The
> editors protect users from such a situation by locking the file they are
> editing.

It is definitely similar.

> Perhaps operations that detaches HEAD (rebase and perhaps sequencer) can
> all agree to use a single marker file that says "Do not mess with these
> refs via push or fetch" and make receive-pack and fetch honor that?  Then
> the issue you raised in your earlier message about receive-pack having to
> know random states random set of tools leave will be alleviated.  We need
> to make sure that the marker is cleaned up correctly when the command is
> done with the lock, of course.

I think such a marker is a fine idea in general, because it would be
nice to be able to say "what is all state in the repo that I might care
about" (which I think has been talked about several times). In fact, I
have had a similar problem _without_ pushing just by leaving and coming
back in the middle of operations, especially failed ones (e.g., "git
am", realize the patch doesn't apply, forget to --abort, then make more
commits, realize only when you try to "git am" something else, but now
aborting will intermediate work).

I'm not sure that supporting it in receive-pack is necessary. The
current rebase code already detects the situation; it just doesn't
handle it as gracefully as it might. And it doesn't close _all_
possibility for danger, as the example you gave previously shows; the
user can still be surprised by the ref changing.

Whereas improving the local tool support for "rebase --abort" and "am
--abort" to help a user recover from such a situation means that we help
not only the situation of somebody pushing, but also local "I forgot
and changed the repo" situations.

> > I am really just proposing that the "ref was not what we expected"
> > message to better indicate what is going on, and how the user might get
> > out of it. Do you not agree with that?
> 
> The recovery recipe you described looked good.

OK. I'll look at working up a patch.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux