Rfaulk has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/87657


Change subject: add - methods _git_commit_list, _dulwich_status.
......................................................................

add - methods _git_commit_list, _dulwich_status.

Change-Id: Idd4e91adbb49a02d81a8151f3b673f268d7c0e98
---
M sartoris/sartoris.py
1 file changed, 24 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/sartoris refs/changes/57/87657/1

diff --git a/sartoris/sartoris.py b/sartoris/sartoris.py
index 7f49428..850b07f 100755
--- a/sartoris/sartoris.py
+++ b/sartoris/sartoris.py
@@ -22,6 +22,7 @@
 
 from dulwich.repo import Repo
 from dulwich.objects import Tag, Commit, parse_timezone
+from dulwich.diff_tree import tree_changes
 
 from config import log, configure, exit_codes, DEFAULT_CLIENT_HOOK, \
     DEFAULT_TARGET_HOOK
@@ -214,7 +215,7 @@
         _repo = Repo(self.config['top_dir'])
 
         try:
-            _repo.refs['HEAD'] = _repo['refs/tags/' + tag].id
+            _repo.refs['HEAD'] = self._get_commit_sha_for_tag(tag)
         except AttributeError:
             raise SartorisError(message=exit_codes[7], exit_code=7)
 
@@ -242,6 +243,15 @@
         if not _repo.head() == commit_id:
             raise SartorisError(message=exit_codes[14], exit_code=14)
 
+    def _dulwich_status(self):
+        """
+        Return the git status
+        """
+        _repo = Repo(self.config['top_dir'])
+        index = _repo.open_index()
+        return list(tree_changes(_repo, index.commit(_repo.object_store),
+                                 _repo['HEAD'].tree))
+
     def _make_tag(self):
         timestamp = datetime.now().strftime(self.DATE_TIME_TAG_FORMAT)
         return '{0}-{1}'.format(self.config['user'], timestamp)
@@ -250,6 +260,19 @@
         return '{0} <{1}>'.format(self.config['user.name'],
                                   self.config['user.email'])
 
+    def _git_commit_list(self):
+        """
+        Generate an in-order list of commits
+        """
+        cmd = 'git log --pretty=oneline'
+        proc = subprocess.Popen(cmd.split(),
+                                stdout=subprocess.PIPE,
+                                stderr=subprocess.PIPE)
+        commits = [i.split()[0] for i in 
proc.communicate()[0][:-1].split('\n')]
+        commits.reverse()
+
+        return commits
+
     def start(self, args):
         """
             * write a lock file

-- 
To view, visit https://gerrit.wikimedia.org/r/87657
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idd4e91adbb49a02d81a8151f3b673f268d7c0e98
Gerrit-PatchSet: 1
Gerrit-Project: sartoris
Gerrit-Branch: master
Gerrit-Owner: Rfaulk <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to