* Regression introduced in 03267e8656truct object_id oid;
@ 2023-04-16 17:20 Lars Kellogg-Stedman
2023-04-16 17:30 ` Regression introduced in 03267e8656 Lars Kellogg-Stedman
2023-04-17 16:54 ` Regression introduced in 03267e86 Junio C Hamano
0 siblings, 2 replies; 3+ messages in thread
From: Lars Kellogg-Stedman @ 2023-04-16 17:20 UTC (permalink / raw)
To: git; +Cc: avarab
[This behavior was originally reported in
https://stackoverflow.com/q/76022720/147356.]
Prior to commit 03267e8656, the following sequence would result in an
empty commit:
git init testrepo
date > testrepo/testfile
git -C testrepo add testfile
git -C testrepo commit -m test --allow-empty --only
After commit 03267e8656, the same sequence creates a commit that
contains "testfile". I believe the original behavior was correct,
based on the documentation for the `--only` option:
> If used together with --allow-empty paths are also not required, and
> an empty commit will be created.
A simple change that corrects this behavior would be to prevent git
from refreshing the cache when --only is active:
diff --git a/builtin/commit.c b/builtin/commit.c
index 9d8e1ea91a..8c441548f8 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -995,7 +995,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
struct object_id oid;
const char *parent = "HEAD";
- if (!the_index.cache_nr) {
+ if (!the_index.cache_nr && !only) {
discard_index(&the_index);
if (repo_read_index(the_repository) < 0)
die(_("Cannot read index"));
And while that passes all the tests, I'm not sure if its correct; the
change in 03267e8656 was correcting a memory leak and I'm not sure I
completely understand the details.
--
Lars Kellogg-Stedman <lars@oddbit.com> | larsks @ {irc,twitter,github}
http://blog.oddbit.com/ | N1LKS
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Regression introduced in 03267e8656
2023-04-16 17:20 Regression introduced in 03267e8656truct object_id oid; Lars Kellogg-Stedman
@ 2023-04-16 17:30 ` Lars Kellogg-Stedman
2023-04-17 16:54 ` Regression introduced in 03267e86 Junio C Hamano
1 sibling, 0 replies; 3+ messages in thread
From: Lars Kellogg-Stedman @ 2023-04-16 17:30 UTC (permalink / raw)
To: git
...with apologies for that munged subject: line.
--
Lars Kellogg-Stedman <lars@oddbit.com> | larsks @ {irc,twitter,github}
http://blog.oddbit.com/ | N1LKS
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Regression introduced in 03267e86
2023-04-16 17:20 Regression introduced in 03267e8656truct object_id oid; Lars Kellogg-Stedman
2023-04-16 17:30 ` Regression introduced in 03267e8656 Lars Kellogg-Stedman
@ 2023-04-17 16:54 ` Junio C Hamano
1 sibling, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2023-04-17 16:54 UTC (permalink / raw)
To: avarab, Lars Kellogg-Stedman; +Cc: git
Lars Kellogg-Stedman <lars@oddbit.com> writes:
> [This behavior was originally reported in
> https://stackoverflow.com/q/76022720/147356.]
>
> Prior to commit 03267e8656, the following sequence would result in an
> empty commit:
>
> git init testrepo
> date > testrepo/testfile
> git -C testrepo add testfile
> git -C testrepo commit -m test --allow-empty --only
>
> After commit 03267e8656, the same sequence creates a commit that
> contains "testfile". I believe the original behavior was correct,
> based on the documentation for the `--only` option:
It looks like a convoluted way (aka use of an obscure option) to
create something useless (aka an empty root commit), but it should
be allowed and the last step should do what you expected.
> And while that passes all the tests, I'm not sure if its correct; the
> change in 03267e8656 was correcting a memory leak and I'm not sure I
> completely understand the details.
Yeah, figuring out how 03267e86 (commit: discard partial cache
before (re-)reading it, 2022-11-08) broke the behaviour is a good
first step.
Thanks for reporting.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-04-17 16:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-16 17:20 Regression introduced in 03267e8656truct object_id oid; Lars Kellogg-Stedman
2023-04-16 17:30 ` Regression introduced in 03267e8656 Lars Kellogg-Stedman
2023-04-17 16:54 ` Regression introduced in 03267e86 Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).