cache_files += [('C', filename) for filename in conflicts]
# the rest
- for line in _output_lines(['git-diff-index', '-r', tree_id] + files):
+ for line in _output_lines(['git-diff-index', tree_id] + files):
fs = tuple(line.rstrip().split(' ',4)[-1].split('\t',1))
if fs[1] not in conflicts:
cache_files.append(fs)
raise GitException, 'Unknown revision: %s' % git_id
def branch_exists(branch):
- """Existance check for the named branch
+ """Existence check for the named branch
"""
for line in _output_lines(['git-rev-parse', '--symbolic', '--all']):
if line.strip() == branch:
__set_head(tree_id)
-def reset(files = None, tree_id = None):
+def reset(files = None, tree_id = 'HEAD'):
"""Revert the tree changes relative to the given tree_id. It removes
any local changes
"""
- if not tree_id:
- tree_id = get_head()
-
- cache_files = __tree_status(files, tree_id)
- rm_files = [x[1] for x in cache_files if x[0] in ['D']]
-
checkout(files, tree_id, True)
- # checkout doesn't remove files
- map(os.remove, rm_files)
# if the reset refers to the whole tree, switch the HEAD as well
- if not files:
+ if tree_id and not files:
__set_head(tree_id)
def pull(repository = 'origin', refspec = None):