All of lore.kernel.org
 help / color / mirror / Atom feed
From: Taylor Blau <me@ttaylorr.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
	git@vger.kernel.org, Taylor Blau <me@ttaylorr.com>,
	Derrick Stolee <dstolee@microsoft.com>,
	Jonathan Tan <jonathantanmy@google.com>
Subject: Re: [PATCH] experimental: default to fetch.writeCommitGraph=false
Date: Tue, 7 Jul 2020 11:17:35 -0400	[thread overview]
Message-ID: <20200707151735.GA27992@syl.lan> (raw)
In-Reply-To: <xmqq8sfv745r.fsf@gitster.c.googlers.com>

Hi Junio,

On Tue, Jul 07, 2020 at 08:09:36AM -0700, Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
>
> > The fetch.writeCommitGraph feature makes fetches write out a commit
>
> > In other words:
> >
> > - this patch only affects behavior with feature.experimental=true
> >
> > - it makes feature.experimental match the configuration Google has
> >   been using for the last few months, meaning it would leave users in
> >   a better tested state than without it
> >
> > - this should improve testing for other features guarded by
> >   feature.experimental, by making feature.experimental safer to use
>
>
> In other words, fetch.writeCommitGraph in its current form is too
> broken to be recommended even for brave souls with "experimental"
> bit on.
>
> I wonder if we perhaps wnat to add to the documentation for
> writeCommitGraph configuration that its use is currently not
> recommended in a shallow clone or something (I know it is not
> a problem just to use it with shallow but the breakage needs
> to involve unshallowing, but by definition those who do not
> use shallow would not hit the unshallowing bug, so...).

I think this is a good direction if you don't want to take the patch I
sent in [1] for v2.28.0. If you do, though, I don't think that this
would be necessary.

> > Reported-by: Jay Conrod <jayconrod@google.com>
> > Helped-by: Taylor Blau <me@ttaylorr.com>
> > Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> > ---
> > I realize this is late to send.  That said, as described above, I
> > think it's a good way to buy time by minimizing user exposure to
> > fetch.writeCommitGraph=true until a fix for it is well cooked.
> >
> > In other words, I'd like to see this patch in Git 2.28-rc0.
>
> Yes, I do, too.
>
> Thanks.
>
> > diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt
> > index b1a9b1461d3..b20394038d1 100644
> > --- a/Documentation/config/fetch.txt
> > +++ b/Documentation/config/fetch.txt
> > @@ -90,5 +90,4 @@ fetch.writeCommitGraph::
> >  	the existing commit-graph file(s). Occasionally, these files will
> >  	merge and the write may take longer. Having an updated commit-graph
> >  	file helps performance of many Git commands, including `git merge-base`,
> > -	`git push -f`, and `git log --graph`. Defaults to false, unless
> > -	`feature.experimental` is true.
> > +	`git push -f`, and `git log --graph`. Defaults to false.
> > diff --git a/repo-settings.c b/repo-settings.c
> > index dc6817daa95..0918408b344 100644
> > --- a/repo-settings.c
> > +++ b/repo-settings.c
> > @@ -51,14 +51,14 @@ void prepare_repo_settings(struct repository *r)
> >  		UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
> >  		UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);
> >  	}
> > +
> >  	if (!repo_config_get_bool(r, "fetch.writecommitgraph", &value))
> >  		r->settings.fetch_write_commit_graph = value;
> > -	if (!repo_config_get_bool(r, "feature.experimental", &value) && value) {
> > -		UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);
> > -		UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1);
> > -	}
> >  	UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0);
> >
> > +	if (!repo_config_get_bool(r, "feature.experimental", &value) && value)
> > +		UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);
> > +
> >  	/* Hack for test programs like test-dump-untracked-cache */
> >  	if (ignore_untracked_cache_config)
> >  		r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;

Thanks,
Taylor

[1]: https://lore.kernel.org/git/20200707144338.GA26342@syl.lan/T/#t

  reply	other threads:[~2020-07-07 15:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-07  6:20 [PATCH] experimental: default to fetch.writeCommitGraph=false Jonathan Nieder
2020-07-07 13:24 ` Derrick Stolee
2020-07-07 15:09 ` Junio C Hamano
2020-07-07 15:17   ` Taylor Blau [this message]
2020-07-07 16:50     ` Junio C Hamano
2020-07-07 16:53       ` Taylor Blau
2020-07-08  5:47       ` Jonathan Nieder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200707151735.GA27992@syl.lan \
    --to=me@ttaylorr.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=jrnieder@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.