From: Chuck Lever Date: Wed, 11 Jan 2006 22:39:18 GMT Subject: Re: [PATCH] stgit: fix clone 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: > "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 > > --- > 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