diff options
author | Guido Günther <agx@sigxcpu.org> | 2016-04-12 10:02:04 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2016-04-12 10:02:04 +0200 |
commit | 1aa9fc33ac52a16b94723dece6db055760f8f1d6 (patch) | |
tree | 982fcaff42ba29af9240a724b2f22094f1d5c728 | |
parent | 6681989dce6241ccc25bddc5bf4302c70ba2ef06 (diff) |
Add tree filter helpers to DebianGitRepository
-rw-r--r-- | gbp/deb/git.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gbp/deb/git.py b/gbp/deb/git.py index 65ba4f56..a4bb85f9 100644 --- a/gbp/deb/git.py +++ b/gbp/deb/git.py @@ -28,6 +28,30 @@ class DebianGitRepository(GitRepository): super(DebianGitRepository, self).__init__(path) self.pristine_tar = DebianPristineTar(self) + def tree_drop_dirs(self, tree, dirs): + """ + Drop the given top level dirs from the given git tree + returning a new tree object. + """ + objs = self.list_tree(tree) + new_tree_objs = [] + + for m, t, s, n in objs: + if not (n in dirs and t == 'tree'): + new_tree_objs.append((m, t, s, n)) + new_tree = self.make_tree(new_tree_objs) + return new_tree + + def tree_get_dir(self, tree, dir): + """ + Get the SHA1 of directory in a given tree + """ + toplevel = self.list_tree(tree) + for m, t, s, n in toplevel: + if n == dir and t == 'tree': + return s + return None + def find_version(self, format, version): """ Check if a certain version is stored in this repo and return the SHA1 |