From: Junio C Hamano <gitster@pobox.com>
To: Daniel Barkalow <barkalow@iabervon.org>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Johan Herland" <johan@herland.net>,
git@vger.kernel.org, "Kristian Høgsberg" <krh@redhat.com>,
"Santi Béjar" <sbejar@gmail.com>
Subject: Re: [PATCH] Fix premature call to git_config() causing t1020-subdirectory to fail
Date: Tue, 26 Feb 2008 17:34:12 -0800 [thread overview]
Message-ID: <7vy79718tn.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <alpine.LNX.1.00.0802261933551.19665@iabervon.org> (Daniel Barkalow's message of "Tue, 26 Feb 2008 19:53:57 -0500 (EST)")
Daniel Barkalow <barkalow@iabervon.org> writes:
> There's nothing in the documentation to suggest that you can use
> GIT_CONFIG to affect how the old repository is read, or that GIT_CONFIG
> doesn't affect the new repository. Actually, as far as I can tell, the
> configuration of a repository you're cloning (local or remote) doesn't
> matter at all. Note that GIT_DIR and GIT_WORK_TREE refer to the new repo,
> so it would be surprising for GIT_CONFIG to refer to the old one.
There was a bit of confusion in this discussion.
GIT_DIR the user may have in the environment may refer to the
old reopsitory before "git clone" is invoked, but it should not
matter at all, as the origin of the cloning comes from the
command line and that is where we will read from. The scripted
version sets GIT_DIR for our own use to point at the new
repository upfront and exports it, so we are safe from bogus
GIT_DIR value the user may have in the environment.
GIT_WORK_TREE naming the new repository feels Ok, as you do not
care about the work tree of the original tree when cloning, and
you may want to have a say in where the work tree associated
with the new repository should go.
GIT_CONFIG the user may have will refer to the old repository
before "git clone" is invoked, as there is no new repository
built yet. But clone does not read from the old config, so "you
can use GIT_CONFIG to read from old repository" may be true, but
it does not matter. We won't use it (we do _not_ want to use
it) to read from the old configuration file.
We would however want to make sure that we write to the correct
configuration file of the new repository and not some random
other place, and that's where the environment variable in the
scripted version comes into the picture.
In the scripted version, the only way to make sure which exact
configuration file is updated is to set and export GIT_CONFIG
when running "git config", so there are a few places that does
exactly that (e.g. call to git-init and setting of core.bare).
Unfortunately many codepaths in the scripted version are utterly
careless (e.g. setting of remote."$origin".fetch); they should
make sure that they protect themselves against GIT_CONFIG the
user may have in the environment that point at random places.
> My current design is to collect some initial information, create
> directories, and then set the work tree and git dir. Then we run fetch,
> configure things, etc., in the new context.
That sounds like a clean design to me.
next prev parent reply other threads:[~2008-02-27 1:35 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-25 21:12 [RFC] Build in clone Daniel Barkalow
2008-02-26 2:21 ` Johan Herland
2008-02-26 11:14 ` Johannes Schindelin
2008-02-26 12:19 ` Johan Herland
2008-02-26 12:58 ` Johan Herland
2008-02-26 13:37 ` Johan Herland
2008-02-26 15:35 ` [PATCH] Fix premature free of ref_lists while writing temporary refs to file Johan Herland
2008-02-26 15:42 ` Johannes Schindelin
2008-02-26 17:17 ` Johan Herland
2008-02-26 23:07 ` Daniel Barkalow
2008-02-26 23:11 ` Johan Herland
2008-02-26 15:40 ` [PATCH] Fix premature call to git_config() causing t1020-subdirectory to fail Johan Herland
2008-02-26 15:47 ` Johannes Schindelin
2008-02-26 22:12 ` Daniel Barkalow
2008-02-26 22:40 ` Johannes Schindelin
2008-02-26 22:49 ` Daniel Barkalow
2008-02-27 0:20 ` Junio C Hamano
2008-02-27 0:53 ` Daniel Barkalow
2008-02-27 1:34 ` Junio C Hamano [this message]
2008-02-27 19:47 ` Daniel Barkalow
2008-02-27 20:09 ` Junio C Hamano
2008-02-27 20:31 ` Daniel Barkalow
2008-02-26 17:36 ` [RFC] Build in clone Daniel Barkalow
2008-02-26 18:53 ` Kristian Høgsberg
2008-03-02 5:57 ` [PATCH] builtin-clone: create remotes/origin/HEAD symref, if guessed Johannes Schindelin
2008-03-02 6:25 ` [PATCH, fixed] " Johannes Schindelin
2008-03-02 7:46 ` [PATCH] builtin clone: support bundles Johannes Schindelin
2008-03-02 16:19 ` Daniel Barkalow
2008-03-03 0:04 ` Santi Béjar
2008-03-02 16:48 ` Daniel Barkalow
2008-03-02 17:34 ` Johannes Schindelin
2008-03-02 17:50 ` Junio C Hamano
2008-03-02 17:54 ` Junio C Hamano
2008-03-03 9:04 ` [PATCH] Add test for cloning with "--reference" repo being a subset of source repo Johan Herland
2008-03-03 16:36 ` Daniel Barkalow
2008-03-03 18:21 ` Daniel Barkalow
2008-03-04 3:02 ` Johan Herland
2008-03-04 3:04 ` [PATCH 1/2] Add test illustrating issues with sha1_file_name() and switching repos Johan Herland
2008-03-04 3:05 ` [PATCH 2/2] Overly simplistic fix for issue " Johan Herland
2008-03-04 23:10 ` [PATCH] Add test for cloning with "--reference" repo being a subset of source repo Daniel Barkalow
2008-03-05 0:24 ` Daniel Barkalow
2008-03-05 23:56 ` Johan Herland
2008-03-03 17:05 ` [PATCH, fixed] builtin-clone: create remotes/origin/HEAD symref, if guessed Kristian Høgsberg
2008-03-03 17:09 ` Pierre Habouzit
2008-03-03 19:55 ` Johannes Schindelin
2008-03-03 17:10 ` Johannes Schindelin
2008-03-03 17:41 ` Johan Herland
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=7vy79718tn.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=johan@herland.net \
--cc=krh@redhat.com \
--cc=sbejar@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 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).