Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] (trivial) add helpful "use --soft" for bare reset

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:51:32

David Fries [off-list ref] writes:
quoted hunk
diff --git a/builtin/reset.c b/builtin/reset.c
index 98bca04..d0d4d66 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -332,7 +332,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 		setup_work_tree();
 
 	if (reset_type == MIXED && is_bare_repository())
-		die(_("%s reset is not allowed in a bare repository"),
+		die(_("%s reset is not allowed in a bare repository, see update-ref"),
 		    _(reset_type_names[reset_type]));
There still is one thing that worries me remains here, even though I may
be worried too much. I tend to think that giving an incorrect advice is
far worse than not giving one.

Are you absolutely sure that the user wanted to update only the tip of a
ref without affecting the index nor the working tree, when a mixed reset
is issued in a bare repository, and there is _no other_ explanation why
the user issued a forbidden command?

For example, I have ~/git.git and /pub/scm/git/git.git on a single machine
somewhere. The former is with a working tree and the latter is a bare
repository. I usually live in ~/git.git/ on that machine, but sometimes I
would do things like:

	$ git repack -a -d ;# working area
	$ cd /pub/scm/git/git.git ;# clean up from time to time ...
        $ git repack -a -d ;# ... the public one as well

I may disconnect from my screen session to the machine after I do this,
and I may have forgotten where I was the next time I come back to the
machine.  After I reconnect to the same screen session, I may say "git
reset" to get back to a known state, which is what I often want to do in
the working area repository ~/git.git, mistakenly thinking that I am in my
usual ~/git.git directory.

In such a scenario, the mistake is not that I used a wrong command "reset"
in an attempt to update the tip of the branch. The mistake is that I tried
to use the right command to update the index, but I did it in a wrong
place. "Did you mean to do that somewhere else?" would be a much more
appropriate advice in that case.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help