Re: [PATCH 1/2] clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 27 Jun 2008, Johannes Schindelin wrote:

> After initializing the config in the newly-created repository, we
> need to unset GIT_CONFIG so that the global configs are read again.

This seems fine to me. OTOH, I'm not sure the environment variable should 
be needed in the first place; I think the config stuff should look in 
git_path("config") without it, and we set the git dir to the one we're 
initializing. So I think the use of the environment variable is just an 
artifact of how the shell script did it and how I was originally calling 
the init_db stuff.

Just removing the "setenv()" line survives all of the tests for me, and I 
remember some of them failing before I'd gotten some sort of solution for 
the config stuff.

> Noticed by Pieter de Bie.

You'd think I would have noticed this, since I mainly decided to convert 
clone to C so that url.insteadOf in global config would let you do "git 
clone work:modulename", but I clearly never tested it.

> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> ---
> 
> 	On Fri, 27 Jun 2008, Pieter de Bie wrote:
> 
> 	> I sometimes use url.insteadOf to create a shortcut to a central 
> 	> repository. For example, having something like[*1*]
> 	> 
> 	> [url "git://repo.or.cz/git/"]
> 	> 	insteadOf = "repo:"
> 	> 
> 	> in my global gitconfig allows me to do a 'git fetch 
> 	> repo:dscho.git'. I'd also like to use that with git clone :).
> 	> Currently if I try that, I get
> 	> 
> 	> Vienna:~ pieter$ git clone repo:dscho.git
> 	> Initialize dscho/.git
> 	> Initialized empty Git repository in /Users/pieter/dscho/.git/
> 	> ssh: Error resolving hostname repo: nodename nor servname provided,
> 	>	or not known
> 	> fatal: The remote end hung up unexpectedly
> 	> 
> 	> [...]
> 	>
> 	> Is there an easy fix for this?
> 
> 	Yes ;-)
> 
>  builtin-clone.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/builtin-clone.c b/builtin-clone.c
> index 17baa20..965b5fc 100644
> --- a/builtin-clone.c
> +++ b/builtin-clone.c
> @@ -424,6 +424,13 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
>  	fprintf(stderr, "Initialize %s\n", git_dir);
>  	init_db(option_template, option_quiet ? INIT_DB_QUIET : 0);
>  
> +	/*
> +	 * At this point, the config exists, so we do not need the
> +	 * environment variable.  We actually need to unset it, too, to
> +	 * re-enable parsing of the global configs.
> +	 */
> +	unsetenv(CONFIG_ENVIRONMENT);
> +
>  	if (option_reference)
>  		setup_reference(git_dir);
>  
> -- 
> 1.5.6.173.gde14c
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux