aboutsummaryrefslogtreecommitdiffhomepage
path: root/gbp/git/repository.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2012-05-31 14:40:12 +0200
committerGuido Günther <agx@sigxcpu.org>2012-05-31 17:00:04 +0200
commit25fc07047b9abf915d300d0072734296bbaa5d82 (patch)
tree1dc8d1a6e0a89fa20d519ff917052f0265a56198 /gbp/git/repository.py
parent829eea6abab9e28894f50f3766b7bd67110a5d53 (diff)
gbp.git.repository: Add GitRepository.write_file
Signed-off-by: Guido Günther <agx@sigxcpu.org>
Diffstat (limited to 'gbp/git/repository.py')
-rw-r--r--gbp/git/repository.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index 43a8c46d..1c6fc34d 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -917,6 +917,31 @@ class GitRepository(object):
else:
return []
+
+ def write_file(self, filename, filters=True):
+ """
+ Hash a single file and write it into the object database
+
+ @param filename: the filename to the content of the file to hash
+ @type filename: C{str}
+ @param filters: whether to run filters
+ @type filters: C{bool}
+ @return: the hash of the file
+ @rtype: C{str}
+ """
+ args = GitArgs('-w', '-t', 'blob')
+ args.add_false(filters, '--no-filters')
+ args.add(filename)
+
+ sha1, stderr, ret = self._git_inout('hash-object',
+ args.args,
+ capture_stderr=True)
+ if not ret:
+ return sha1.strip()
+ else:
+ raise GbpError("Failed to hash %s: %s" % (filename, stderr))
+#}
+
#{ Comitting
def _commit(self, msg, args=[], author_info=None):