def get_committer(self):
return self.__committer
+# dictionary of Commit objects, used to avoid multiple calls to git
+__commits = dict()
#
# Functions
#
+def get_commit(id_hash):
+ """Commit objects factory. Save/look-up them in the __commits
+ dictionary
+ """
+ if id_hash in __commits:
+ return __commits[id_hash]
+ else:
+ commit = Commit(id_hash)
+ __commits[id_hash] = commit
+ return commit
+
def get_conflicts():
"""Return the list of file conflicts
"""
for fs in to_delete:
os.remove(fs[1])
-def fetch(location, head = None, tag = None):
+def pull(location, head = None, tag = None):
"""Fetch changes from the remote repository. At the moment, just
use the 'git fetch' scripts
"""
elif tag:
args += ['tag', tag]
- if __run('git fetch', args) != 0:
+ if __run('git pull', args) != 0:
raise GitException, 'Failed "git fetch %s"' % location
- return read_string(os.path.join(base_dir, 'FETCH_HEAD'))
-
def apply_patch(filename = None):
"""Apply a patch onto the current index. There must not be any
local changes in the tree, otherwise the command fails