git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [bug] Working files created in bare repository when pushing to a rewound bare repository

From
Jeff King <peff@peff.net>
Date
Dec 31, 2007, 07:26 UTC
Message-ID
<20071231072632.GA11451@coredump.intra.peff.net>
In-Reply-To
<20071231071352.GC4250@coredump.intra.peff.net>
On Mon, Dec 31, 2007 at 02:13:52AM -0500, Jeff King wrote:
> git-reset: refuse to do hard reset in a bare repository
> 
> It makes no sense since there is no working tree. A soft
> reset should be fine, though.

And then on top of this (plus one-liner fix I posted), as Ping Yin suggested, we can do:

-- >8 -- git-reset: default to --soft in a bare repo

--mixed doesn't make sense, since we don't generally have an index.

Signed-off-by: Jeff King <peff@peff.net>
---
This is a bit more contentious. There's no reason you can't have an
index in a bare repo, and this is changing the behavior of those who do.
They can always explicitly specify --mixed (since we haven't disallowed
that), but it might break some scripts.
 builtin-reset.c       |    2 +-
 t/t7103-reset-bare.sh |    9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/builtin-reset.c b/builtin-reset.c
index 10dba60..44e4eb4 100644
--- a/builtin-reset.c
+++ b/builtin-reset.c
@@ -242,7 +242,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 		return read_from_tree(prefix, argv + i, sha1);
 	}
 	if (reset_type == NONE)
-		reset_type = MIXED; /* by default */
+		reset_type = is_bare_repository() ? SOFT : MIXED;
 
 	if (reset_type == HARD && is_bare_repository())
 		die("hard reset makes no sense in a bare repository");
diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh
index b25a77f..c2cdba4 100755
--- a/t/t7103-reset-bare.sh
+++ b/t/t7103-reset-bare.sh
@@ -7,8 +7,10 @@ test_expect_success 'setup non-bare' '
 	echo one >file &&
 	git add file &&
 	git commit -m one &&
+	git tag one &&
 	echo two >file &&
-	git commit -a -m two
+	git commit -a -m two &&
+	git tag two
 '
 
 test_expect_success 'setup bare' '
@@ -25,4 +27,9 @@ test_expect_success 'soft reset is allowed' '
 	test "`git show --pretty=format:%s | head -n 1`" = "one"
 '
 
+test_expect_success 'default to soft reset' '
+	git reset two &&
+	test "`git show --pretty=format:%s | head -n 1`" = "two"
+'
+
 test_done
-- 
1.5.4.rc2.1102.g4735f-dirty
Previous: Jeff KingNext: Junio C Hamano
Message 7 of 9 in “[bug] Working files created in bare repository when pushing to a rewound bare repository”
  1. Ping YinDec 31, 2007
  2. Jeff KingDec 31, 2007
  3. Ping YinDec 31, 2007
  4. Jeff KingDec 31, 2007
  5. Jeff KingDec 31, 2007
  6. Jeff KingDec 31, 2007
  7. Jeff KingDec 31, 2007
  8. Junio C HamanoJan 3, 2008
  9. Junio C HamanoDec 31, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.