On Mon, Aug 12, 2013 at 6:23 AM, Duy Nguyen <pclo...@gmail.com> wrote:
> That would annoy me as I often work on top of detached HEAD on purpose
> and only create a branch when I want to save something. If the warning
> is to be moved, it should warn at the next checkout.

Yes, you're absolutely right ...

My point about the current checkout warning is that it's crying wolf,
and nullifying the value of the warning. Most of the time I checkout a
ref, I'm not doing anything dangerous because I'm not going to check
anything in. The warning would be more effective if it warns in as
narrow a situation as possible. You're correct that the clobber is
even more narrow than the checkin.

The warning on clobber would be similar to (but shorter than) the one
which could be removed from checkout..

Clobbered detached HEAD 'cce40d6'!

   git log cce40d6 ^master      # log detached changes vs master
   git branch <name> cc340d6    # name the changes with a branch

Personally, I'd prefer for explicit action to discard a detached head.
It's true that this is an explicit step, but for me it generally takes
a heck of alot less time to explicitly discard than it did to checkout
the detached head, make changes (or apply a patch), and then decide to
throw them away.

My "ephemeral branch" idea was a way to make this explicit discard as
passive and lazy as possible. Basically, never stop you from doing
your work, assume you know what you are doing. If the user
names-the-branch it disappears. If the user merges or rebases the
detached head, it disappears. The only time the "ephemeral branch"
would survive is if the user really clobbered a detached head and then
didn't do anything about it. Even if they missed the warning (in the
middle of a script or automated process), eventually they would see
the ephemeral branch lying around.

Clobbering a detached head with "ephemeral branches" could show no
warning at all, or a warning like:

Clobbered detached HEAD.

   git log cce40d6 ^master           # log detached changes vs master
   git branch -D tmp/cce40d6         # Discard these changes
   git branch tmp/cce40d6 <newname>  # name this branch
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to