| Index: git_cl.py
 | 
| diff --git a/git_cl.py b/git_cl.py
 | 
| index 4dfb609eb42ad9adda546b18fb2c00a6262af0f2..2ed721e83f4e26ac8f1819504032edbd58b73e15 100755
 | 
| --- a/git_cl.py
 | 
| +++ b/git_cl.py
 | 
| @@ -69,13 +69,17 @@ def RunCommand(args, error_ok=False, error_message=None, **kwargs):
 | 
|  
 | 
|  def RunGit(args, **kwargs):
 | 
|    """Returns stdout."""
 | 
| -  return RunCommand(['git', '--no-pager'] + args, **kwargs)
 | 
| +  return RunCommand(['git'] + args, **kwargs)
 | 
|  
 | 
|  
 | 
|  def RunGitWithCode(args):
 | 
|    """Returns return code and stdout."""
 | 
|    try:
 | 
| -    out, code = subprocess2.communicate(['git', '--no-pager'] + args,
 | 
| +    env = os.environ.copy()
 | 
| +    # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +    env['GIT_PAGER'] = 'cat'
 | 
| +    out, code = subprocess2.communicate(['git'] + args,
 | 
| +                                        env=env,
 | 
|                                          stdout=subprocess2.PIPE)
 | 
|      return code, out[0]
 | 
|    except ValueError:
 | 
| @@ -225,6 +229,8 @@ def print_stats(similarity, find_copies, args):
 | 
|    env = os.environ.copy()
 | 
|    if 'GIT_EXTERNAL_DIFF' in env:
 | 
|      del env['GIT_EXTERNAL_DIFF']
 | 
| +  # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +  env['GIT_PAGER'] = 'cat'
 | 
|  
 | 
|    if find_copies:
 | 
|      similarity_options = ['--find-copies-harder', '-l100000',
 | 
| @@ -233,7 +239,7 @@ def print_stats(similarity, find_copies, args):
 | 
|      similarity_options = ['-M%s' % similarity]
 | 
|  
 | 
|    return subprocess2.call(
 | 
| -      ['git', '--no-pager',
 | 
| +      ['git',
 | 
|         'diff', '--no-ext-diff', '--stat'] + similarity_options + args,
 | 
|        env=env)
 | 
|  
 | 
| @@ -301,11 +307,15 @@ class Settings(object):
 | 
|        # regexp matching the git-svn line that contains the URL.
 | 
|        git_svn_re = re.compile(r'^\s*git-svn-id: (\S+)@', re.MULTILINE)
 | 
|  
 | 
| +      env = os.environ.copy()
 | 
| +      # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +      env['GIT_PAGER'] = 'cat'
 | 
| +
 | 
|        # We don't want to go through all of history, so read a line from the
 | 
|        # pipe at a time.
 | 
|        # The -100 is an arbitrary limit so we don't search forever.
 | 
| -      cmd = ['git', '--no-pager', 'log', '-100', '--pretty=medium']
 | 
| -      proc = subprocess2.Popen(cmd, stdout=subprocess2.PIPE)
 | 
| +      cmd = ['git', 'log', '-100', '--pretty=medium']
 | 
| +      proc = subprocess2.Popen(cmd, stdout=subprocess2.PIPE, env=env)
 | 
|        url = None
 | 
|        for line in proc.stdout:
 | 
|          match = git_svn_re.match(line)
 | 
| @@ -684,13 +694,17 @@ or verify this branch is set up to track another (via the --track argument to
 | 
|      if not self.GitSanityChecks(upstream_branch):
 | 
|        DieWithError('\nGit sanity check failure')
 | 
|  
 | 
| -    root = RunCommand(['git', '--no-pager', 'rev-parse', '--show-cdup']).strip()
 | 
| +    env = os.environ.copy()
 | 
| +    # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +    env['GIT_PAGER'] = 'cat'
 | 
| +
 | 
| +    root = RunCommand(['git', 'rev-parse', '--show-cdup'], env=env).strip()
 | 
|      if not root:
 | 
|        root = '.'
 | 
|      absroot = os.path.abspath(root)
 | 
|  
 | 
|      # We use the sha1 of HEAD as a name of this change.
 | 
| -    name = RunCommand(['git', '--no-pager', 'rev-parse', 'HEAD']).strip()
 | 
| +    name = RunCommand(['git', 'rev-parse', 'HEAD'], env=env).strip()
 | 
|      # Need to pass a relative path for msysgit.
 | 
|      try:
 | 
|        files = scm.GIT.CaptureStatus([root], '.', upstream_branch)
 | 
| @@ -711,9 +725,10 @@ or verify this branch is set up to track another (via the --track argument to
 | 
|        # If the change was never uploaded, use the log messages of all commits
 | 
|        # up to the branch point, as git cl upload will prefill the description
 | 
|        # with these log messages.
 | 
| -      description = RunCommand(['git', '--no-pager',
 | 
| +      description = RunCommand(['git',
 | 
|                                  'log', '--pretty=format:%s%n%n%b',
 | 
| -                                '%s...' % (upstream_branch)]).strip()
 | 
| +                                '%s...' % (upstream_branch)],
 | 
| +                               env=env).strip()
 | 
|  
 | 
|      if not author:
 | 
|        author = RunGit(['config', 'user.email']).strip() or None
 | 
| @@ -1751,14 +1766,19 @@ def CMDpatch(parser, args):
 | 
|    except subprocess2.CalledProcessError:
 | 
|      DieWithError('Git patch mungling failed.')
 | 
|    logging.info(patch_data)
 | 
| +  env = os.environ.copy()
 | 
| +  # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +  env['GIT_PAGER'] = 'cat'
 | 
| +
 | 
|    # We use "git apply" to apply the patch instead of "patch" so that we can
 | 
|    # pick up file adds.
 | 
|    # The --index flag means: also insert into the index (so we catch adds).
 | 
| -  cmd = ['git', '--no-pager', 'apply', '--index', '-p0']
 | 
| +  cmd = ['git', 'apply', '--index', '-p0']
 | 
|    if options.reject:
 | 
|      cmd.append('--reject')
 | 
|    try:
 | 
| -    subprocess2.check_call(cmd, stdin=patch_data, stdout=subprocess2.VOID)
 | 
| +    subprocess2.check_call(cmd, env=env,
 | 
| +                           stdin=patch_data, stdout=subprocess2.VOID)
 | 
|    except subprocess2.CalledProcessError:
 | 
|      DieWithError('Failed to apply the patch')
 | 
|  
 | 
| @@ -1780,7 +1800,11 @@ def CMDrebase(parser, args):
 | 
|    # git svn dcommit.
 | 
|    # It's the only command that doesn't use parser at all since we just defer
 | 
|    # execution to git-svn.
 | 
| -  return subprocess2.call(['git', '--no-pager', 'svn', 'rebase'] + args)
 | 
| +  env = os.environ.copy()
 | 
| +  # 'cat' is a magical git string that disables pagers on all platforms.
 | 
| +  env['GIT_PAGER'] = 'cat'
 | 
| +
 | 
| +  return subprocess2.call(['git', 'svn', 'rebase'] + args, env=env)
 | 
|  
 | 
|  
 | 
|  def GetTreeStatus():
 | 
| 
 |