Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2013-01-05 12:36:32 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2013-01-05 12:36:32 (GMT)
commit8d761e4130891324d6e522354e8e477acd998b0a (patch)
tree1fc892bfea9d0c35d21dddcfd5e39dec64378a29 /devbot
parent3e36ee3ae1d63b0f8079349e6a13eb6b37f3e6d5 (diff)
Allow to specify revisions when pullin
Diffstat (limited to 'devbot')
-rw-r--r--devbot/build.py9
-rw-r--r--devbot/git.py6
2 files changed, 9 insertions, 6 deletions
diff --git a/devbot/build.py b/devbot/build.py
index ba9adc8..1f486ca 100644
--- a/devbot/build.py
+++ b/devbot/build.py
@@ -33,7 +33,7 @@ def pull_one(module_name):
return False
-def pull(lazy=False):
+def pull(revisions={}, lazy=False):
to_pull = []
for module in config.load_modules():
git_module = git.get_module(module)
@@ -44,7 +44,8 @@ def pull(lazy=False):
print "\n= Pulling =\n"
for module in to_pull:
- if not _pull_module(module):
+ revision = revisions.get(module.name, None)
+ if not _pull_module(module, revision):
return False
return True
@@ -111,13 +112,13 @@ def _unlink_libtool_files():
os.path.walk(config.lib_dir, func, None)
-def _pull_module(module):
+def _pull_module(module, revision=None):
print "* Pulling %s" % module.name
git_module = git.get_module(module)
try:
- git_module.update()
+ git_module.update(revision)
except subprocess.CalledProcessError:
return False
diff --git a/devbot/git.py b/devbot/git.py
index cb361ef..960fd7c 100644
--- a/devbot/git.py
+++ b/devbot/git.py
@@ -46,7 +46,7 @@ class Module:
else:
command.run(["git", "checkout", self._branch])
- def update(self):
+ def update(self, revision=None):
if not os.path.exists(os.path.join(self.local, ".git")):
self._clone()
return
@@ -55,7 +55,9 @@ class Module:
command.run(["git", "fetch"], retry=self._retry)
- if self.tag:
+ if revision:
+ command.run(["git", "checkout", revision])
+ elif self.tag:
command.run(["git", "checkout", self.tag])
else:
command.run(["git", "merge", "--ff-only",