Subject: Re: [StGit PATCH 9/9] Use the default git colouring scheme rather than specific scripts

From: Shinya Kuribayashi <[email-masked]>
Date: Sat, 30 May 2009 09:36:27 +0900

Catalin Marinas wrote:
> That's probably a better option. I changed the patch to this (only
> showing the relevant parts):
> 
> --- a/stgit/commands/common.py
> +++ b/stgit/commands/common.py
> @@ -97,6 +97,15 @@ def git_commit(name, repository, branch_name = None):
>      except libgit.RepositoryException:
>          raise CmdException('%s: Unknown patch or revision name' % name)
> 
> +def color_diff_flags():
> +    """Return the git flags for coloured diff output if the configuration and
> +    stdout allows."""
> +    stdout_is_tty = (sys.stdout.isatty() and 'true') or 'false'
> +    if config.get_colorbool('color.diff', stdout_is_tty) == 'true':
> +        return ['--color']
> +    else:
> +        return []
> +
>  def check_local_changes():
>      if git.local_changes():
>          raise CmdException('local changes in the tree. Use "refresh" or'
> 
> --- a/stgit/config.py
> +++ b/stgit/config.py
> @@ -109,16 +110,18 @@ class GitConfig:
>              if m:
>                  result.append(m.group(1))
>          return result
> +
> +    def get_colorbool(self, name, stdout_is_tty):
> +        """Invoke 'git config --get-colorbool' and return the result."""
> +        return Run('git', 'config', '--get-colorbool', name,
> +                   stdout_is_tty).output_one_line()
> 
>  config=GitConfig()

Proposed branch now works for me only with color.ui=auto.

Thanks!
--
Shinya Kuribayashi