git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 4/4] config: allow including config from repository blobs
Date: Thu, 26 Jan 2012 19:49:02 -0500	[thread overview]
Message-ID: <20120127004902.GA15257@sigill.intra.peff.net> (raw)
In-Reply-To: <7vsjj20yog.fsf@alter.siamese.dyndns.org>

On Thu, Jan 26, 2012 at 04:35:59PM -0800, Junio C Hamano wrote:

> Jeff King <peff@peff.net> writes:
> 
> > So yeah, if you are just going to copy it once, or even periodically, it
> > is not that big an advantage. And the example I gave using "git tag" did
> > just that. But I also wanted to allow more complex things, like this:
> >
> >   # clone and inspect
> >   git clone git://example.com/project.git
> >   cd project
> >   git show origin:devtools/std_gitconfig
> >
> >   # well, that looks pretty good. But I'd like to tweak something.
> >   git checkout -b config origin
> >   $EDITOR devtools/std_gitconfig
> >   git commit -a -m "drop the foo option, which I hate"
> >
> >   # OK, let's use it now.
> >   git config include.ref config:devtools/std_gitconfig
> >
> >   # Weeks pass. Somebody else updates the std_gitconfig.
> >   git fetch
> >   # let's inspect the changes
> >   git checkout config
> >   git diff @{u} -- devtools/std_gitconfig
> >   # looks good, let's merge (not copy!) them in
> >   git merge @{u}
> >
> > This is obviously an advanced thing to be doing.
> 
> The "which *I* hate" in the log message makes it sound as if it is a
> personal preference, but in fact this is more about maintaining the
> recommended configuration among participants, no?

No, I meant it explicitly to be about this single user hating it. Note
how the resulting commits are never pushed. It is purely a local
override, but with the added bonus that history is tracked so you can
merge in further changes from upstream.

Of course, you could also share it with others, or do whatever. Once
it's tracked by git, you can be as flexible as you like.

> And if you have the source of the configuration on a branch so that
> people can work on it among themselves, then "config.path =
> ../devtools/std_gitconfig" should be sufficient, no?

Yes, you _could_ just keep it in a branch, merge upstream's changes into
the branch, and then periodically copy it out to your .git directory.
But this removes that final step.

It also does allow "[include]ref = origin/meta:gitconfig" if you want to
live dangerously. I consider that a feature, because it lets the user
make the security tradeoff they deem appropriate. Yes, I want to have
git be secure by default, and yes I want to encourage awareness of the
issues in the documentation for the feature. But I suspect in practice
that many people fetch changes and run "make" without looking at them,
which is basically the exact same hole. If a user has already accepted
that risk, why deny them the convenience of accepting it somewhere else?

> The pros-and-cons between the volume of the change to read include from
> blobs and the benefit illustrated in the use case did not look too good to
> me, at least from the messages in this thread so far.

I didn't think the read-from-blob code was very big or complex (most of
the refactoring was to support parsing an arbitrary buffer, but I think
that may be a good thing to have in the long run, anyway).

But I guess that is all a matter of opinion.

-Peff

  reply	other threads:[~2012-01-27  0:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-26  7:35 [RFC/PATCH 0/4] config include directives Jeff King
2012-01-26  7:37 ` [PATCH 1/4] config: add include directive Jeff King
2012-01-26  9:16   ` Johannes Sixt
2012-01-26 16:54     ` Jeff King
2012-01-26 20:42       ` Junio C Hamano
2012-01-26 22:25         ` Jeff King
2012-01-26 22:43           ` Jeff King
2012-01-26 20:58   ` Junio C Hamano
2012-01-26 22:51     ` Jeff King
2012-01-27  5:23       ` Junio C Hamano
2012-01-27  5:55         ` Jeff King
2012-01-27 17:03       ` Jens Lehmann
2012-01-27  0:02   ` Ævar Arnfjörð Bjarmason
2012-01-27  0:32     ` Jeff King
2012-01-27  9:33       ` Ævar Arnfjörð Bjarmason
2012-01-27  5:07   ` Michael Haggerty
2012-01-27  5:54     ` Jeff King
2012-01-26  7:38 ` [PATCH 2/4] config: factor out config file stack management Jeff King
2012-01-26  7:40 ` [PATCH 3/4] config: support parsing config data from buffers Jeff King
2012-01-26  7:42 ` [PATCH 4/4] config: allow including config from repository blobs Jeff King
2012-01-26  9:25   ` Johannes Sixt
2012-01-26 17:22     ` Jeff King
2012-01-27  3:47     ` Nguyen Thai Ngoc Duy
2012-01-27  5:57       ` Jeff King
2012-01-26 21:14   ` Junio C Hamano
2012-01-26 23:00     ` Jeff King
2012-01-27  0:35       ` Junio C Hamano
2012-01-27  0:49         ` Jeff King [this message]
2012-01-27  5:30           ` Junio C Hamano
2012-01-27  5:42             ` Jeff King
2012-01-27  7:27               ` Johannes Sixt
2012-01-27 23:10                 ` Junio C Hamano
2012-01-27  4:01   ` Nguyen Thai Ngoc Duy
2012-01-27  5:59     ` Jeff King
2012-01-27  9:51 ` [RFC/PATCH 0/4] config include directives Ævar Arnfjörð Bjarmason
2012-01-27 17:34   ` Jeff King

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=20120127004902.GA15257@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.
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).