def branch_exists(branch):
"""Existence check for the named branch
"""
- for line in _output_lines(['git-rev-parse', '--symbolic', '--all']):
+ for line in _output_lines('git-rev-parse --symbolic --all 2>&1'):
if line.strip() == branch:
return True
+ if re.compile('[ |/]'+branch+' ').search(line):
+ raise GitException, 'Bogus branch: %s' % line
return False
def create_branch(new_branch, tree_id = None):
return result.rstrip()
+def pretty_commit(commit_id = 'HEAD'):
+ """Return a given commit (log + diff)
+ """
+ return _output(['git-diff-tree', '--cc', '--always', '--pretty', '-r',
+ commit_id])
+
def checkout(files = None, tree_id = None, force = False):
"""Check out the given or all files
"""
def pull(repository = 'origin', refspec = None):
"""Pull changes from the remote repository. At the moment, just
- use the 'git pull' command
+ use the 'git-pull' command
"""
- # 'git pull' updates the HEAD
+ # 'git-pull' updates the HEAD
__clear_head_cache()
args = [repository]
if refspec:
args.append(refspec)
- if __run('git pull', args) != 0:
- raise GitException, 'Failed "git pull %s"' % repository
+ if __run('git-pull', args) != 0:
+ raise GitException, 'Failed "git-pull %s"' % repository
def apply_patch(filename = None, base = None):
"""Apply a patch onto the current or given index. There must not
def clone(repository, local_dir):
"""Clone a remote repository. At the moment, just use the
- 'git clone' script
+ 'git-clone' script
"""
- if __run('git clone', [repository, local_dir]) != 0:
- raise GitException, 'Failed "git clone %s %s"' \
+ if __run('git-clone', [repository, local_dir]) != 0:
+ raise GitException, 'Failed "git-clone %s %s"' \
% (repository, local_dir)
def modifying_revs(files, base_rev):