Re: [PATCH] stgit: fix clone
- From
- Chuck Lever <cel@citi.umich.edu>
- Date
- Jan 11, 2006, 22:39 UTC
- Message-ID
- <43C58916.6030409@citi.umich.edu>
- In-Reply-To
- <1137017966.10975.8.camel@dv>
hi pavel-
exactly where does the clone operation fail? is it at the checkout step?
seems to me the "git clone" script should create an environment where "git-rev-parse --git-dir" ought to work correctly.
Pavel Roskin wrote:
Show 54 quoted lines
> "stg clone" is currently broken:
>
> $ stg clone http://homepage.ntlworld.com/cmarinas/stgit.git
> stg clone: git-rev-parse --git-dir failed
>
> This happens with current git. "git-rev-parse --git-dir" doesn't work
> in an empty directory. The patch avoids running "git-rev-parse
> --git-dir" when the requested command doesn't assume existence of git
> repository.
>
> Signed-off-by: Pavel Roskin <proski@gnu.org>
>
> ---
> Warning: this is my first non-trivial patch to StGIT and the first patch
> to a Python program.
>
> diff --git a/stgit/git.py b/stgit/git.py
> index a7b1c3f..0e63f69 100644
> --- a/stgit/git.py
> +++ b/stgit/git.py
> @@ -82,13 +82,16 @@ __commits = dict()
> # Functions
> #
>
> -def get_base_dir():
> +def get_base_dir(assume_top = False):
> """Different start-up variables read from the environment
> """
> if 'GIT_DIR' in os.environ:
> return os.environ['GIT_DIR']
> else:
> - return _output_one_line('git-rev-parse --git-dir')
> + if assume_top:
> + return '.git'
> + else:
> + return _output_one_line('git-rev-parse --git-dir')
>
> def get_commit(id_hash):
> """Commit objects factory. Save/look-up them in the __commits
> diff --git a/stgit/stack.py b/stgit/stack.py
> index 8b7c296..1c080b3 100644
> --- a/stgit/stack.py
> +++ b/stgit/stack.py
> @@ -263,7 +263,7 @@ class Series:
> self.__name = git.get_head_file()
>
> if self.__name:
> - base_dir = git.get_base_dir()
> + base_dir = git.get_base_dir(assume_top = (name == 'master'))
> self.__patch_dir = os.path.join(base_dir, 'patches',
> self.__name)
> self.__base_file = os.path.join(base_dir, 'refs', 'bases',
>
> begin:vcard fn:Chuck Lever n:Lever;Charles org:Network Appliance, Incorporated;Open Source NFS Client Development adr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA email;internet:cel@citi.umich.edu title:Member of Technical Staff tel;work:+1 734 763-4415 tel;fax:+1 734 763 4434 tel;home:+1 734 668-1089 x-mozilla-html:FALSE url:http://troy.citi.umich.edu/u/cel/ version:2.1 end:vcard