git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff Hostetler <git@jeffhostetler.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, gitster@pobox.com,
	Jeff Hostetler <jeffhost@microsoft.com>
Subject: Re: [PATCH v3 0/5] Add --no-ahead-behind to status
Date: Fri, 5 Jan 2018 11:46:24 -0500	[thread overview]
Message-ID: <2887ad5a-5de9-3c5b-92c3-40b19120e604@jeffhostetler.com> (raw)
In-Reply-To: <20180104230630.GA2599@sigill.intra.peff.net>



On 1/4/2018 6:06 PM, Jeff King wrote:
> On Wed, Jan 03, 2018 at 09:47:28PM +0000, Jeff Hostetler wrote:
> 
>> Config values of true and false control non-porcelain formats
>> for compatibility reasons as previously discussed.  In the
>> last commit I added a new value of 2 for the config setting
>> to allow porcelain formats to inherit the new setting.  I've
>> marked this experimental for now or so that we can discuss
>> it.
> 
> I'm mildly negative on this "level 2" config. If influencing the
> porcelain via config creates compatibility headaches, then why would we
> allow it here? And if it doesn't, then why do we need to protect against
> it? This seems to exist in a funny middle ground that cannot decide
> whether it is bad or not.
> 
> It's like we're inserting a foot-gun, but putting it just far enough out
> of reach that we can blame the user when they shoot themselves with it.
> 
> Is there a compelling use case for this? From the previous discussion,
> this is the strawman I came up with:
> 
>    Scripted callers like Visual Studio don't want to unconditionally pass
>    --no-ahead-behind, because it makes sense only for large repositories
>    (and small ones would prefer the more exact answer, if we can get it
>    cheaply). So we'd like the user to trigger "this is large" on a
>    per-repo basis, and accept the consequences of possibly broken
>    porcelain callers.
> 
> I think we could have the best of both worlds, though, if the existing
> config option were coupled with a command-line option to say "yes, I
> understand no-ahead-behind, so use it for the porcelain if applicable".
> IOW, the user does:
> 
>    git config status.aheadbehind false
> 
> and VS does:
> 
>    git status --ahead-behind=maybe
> 
> and together both sides have assented to the "quick" thing.
> 
> -Peff

I kinda trying to serve 2 masters here.  As we discussed earlier, we
don't want config options to change porcelain formats, hence the
true/false thing only affecting non-porcelain formats.  On the other
hand, VS and git.exe are on different release schedules.  Normally,
I'd just have VS emit a "git status --no-ahead-behind --porcelain=v2"
and be done, but that requires that git.exe gets updated before VS.
We do control some of that, but if VS gets updated first, that causes
an error, whereas "git -c status.aheadbehind=<x> status --porcelain=v2"
does not.  It is respected if/when git is updated and ignored until
then.  Likewise, if they update git first, we can tell them to set a
config setting on the repo and inherit it for porcelain v2 output
without VS knowing about it.  Sorry, if that's too much detail.

It is OK with me if we omit the last commit in the patch series (that
does the experimental =2 extension) and I'll deal with this separately
(maybe differently) in the gvfs fork.

Thanks,
Jeff

  

  reply	other threads:[~2018-01-05 16:46 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-03 21:47 [PATCH v3 0/5] Add --no-ahead-behind to status Jeff Hostetler
2018-01-03 21:47 ` [PATCH v3 1/5] stat_tracking_info: return +1 when branches not equal Jeff Hostetler
2018-01-04 21:41   ` Junio C Hamano
2018-01-03 21:47 ` [PATCH v3 2/5] status: add --[no-]ahead-behind to status and commit for V2 format Jeff Hostetler
2018-01-04 22:05   ` Junio C Hamano
2018-01-05 16:31     ` Jeff Hostetler
2018-01-03 21:47 ` [PATCH v3 3/5] status: update short status to respect --no-ahead-behind Jeff Hostetler
2018-01-03 21:47 ` [PATCH v3 4/5] status: support --no-ahead-behind in long format Jeff Hostetler
2018-01-03 21:47 ` [PATCH v3 5/5] status: add status.aheadBehind value for porcelain output Jeff Hostetler
2018-01-04 23:06 ` [PATCH v3 0/5] Add --no-ahead-behind to status Jeff King
2018-01-05 16:46   ` Jeff Hostetler [this message]
2018-01-05 19:56     ` Junio C Hamano
2018-01-08  6:37     ` Jeff King
2018-01-08 14:22       ` Jeff Hostetler

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=2887ad5a-5de9-3c5b-92c3-40b19120e604@jeffhostetler.com \
    --to=git@jeffhostetler.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jeffhost@microsoft.com \
    --cc=peff@peff.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).