aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-12-08 01:41:34 +0100
committerMarcin Kuzminski <marcin@python-works.com>2012-12-08 01:41:34 +0100
commit5a4a5633a698f2d5be1d9822ba7f59ab2973e655 (patch)
tree02c79a83cb425070254e2d78e1cf1760849ab487
parentf5b6a6c447fb6335c01769541d0c8857a282060b (diff)
implemented children for git changesets
--HG-- branch : beta
-rw-r--r--rhodecode/lib/vcs/backends/git/changeset.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/rhodecode/lib/vcs/backends/git/changeset.py b/rhodecode/lib/vcs/backends/git/changeset.py
index 06658ee1..6407cce3 100644
--- a/rhodecode/lib/vcs/backends/git/changeset.py
+++ b/rhodecode/lib/vcs/backends/git/changeset.py
@@ -180,6 +180,21 @@ class GitChangeset(BaseChangeset):
return [self.repository.get_changeset(parent)
for parent in self._commit.parents]
+ @LazyProperty
+ def children(self):
+ """
+ Returns list of children changesets.
+ """
+ so, se = self.repository.run_git_command(
+ "rev-list --all --children | grep '^%s'" % self.raw_id
+ )
+
+ children = []
+ for l in so.splitlines():
+ childs = l.split(' ')[1:]
+ children.extend(childs)
+ return [self.repository.get_changeset(cs) for cs in children]
+
def next(self, branch=None):
if branch and self.branch != branch: