Re: [PATCH] stgit: fix clone

From: Chuck Lever <cel@citi.umich.edu>
Date: 2006-01-12 09:39:18
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 <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',
> 
> 


-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Thu Jan 12 09:39:55 2006

This archive was generated by hypermail 2.1.8 : 2006-01-12 09:40:04 EST