Re: Scripted clone generating an incomplete, unusable .git/config
- From
Stefan Naewe <stefan.naewe@atlas-elektronik.com>
- Date
- Nov 11, 2010, 07:55 UTC
- Message-ID
- <4CDBA15A.6090301@atlas-elektronik.com>
- In-Reply-To
- <AANLkTik7-QzrMKDpV=W4dqpuguZsAr5yrMELmHu5NZMd@mail.gmail.com>
On 11/11/2010 12:21 AM, Dun Peal wrote:
Show 36 quoted lines
> This is a weird issue I ran into while scripting some Git operations
> with git 1.7.2 on a Linux server.
>
> When running the git-clone command manually from the command line, the
> resulting repo/.git/config had all three required sections: core,
> remote (origin), branch (master).
>
> When running the exact same git-clone command manually from the Python
> scripted, the resulting repo/.git/config was missing the `core` and
> `remote` sections.
>
> Here's a bash log fully demonstrating the issue:
>
> $ python -c "import os; os.popen('git clone
> git@git.domain.com:repos/repo.git')"
> [...]
> $ cat repo/.git/config
> [branch "master"]
> remote = origin
> merge = refs/heads/master
> $ rm -Rf repo
> $ git clone git@git.domain.com:repos/repo.git
> $ cat repo/.git/config
> [core]
> repositoryformatversion = 0
> filemode = true
> bare = false
> logallrefupdates = true
> [remote "origin"]
> fetch = +refs/heads/*:refs/remotes/origin/*
> url = git@git.domain.com:repo/repo.git
> [branch "master"]
> remote = origin
> merge = refs/heads/master
>
> What's causing this? Is it a bug?Same for me with git version 1.7.3.2 on Debian Etch. Seems to be a problem with the popen() returning too early or the interpreter dying too early.
This works though:
$ python -c "import subprocess; subprocess.call(['git', 'clone', 'git://host/repoo.git'])"
Regards, Stefan
-- ---------------------------------------------------------------- /dev/random says: I is knot dain bramaged!