summaryrefslogtreecommitdiffstats
path: root/source-builder/sb
diff options
context:
space:
mode:
Diffstat (limited to 'source-builder/sb')
-rw-r--r--source-builder/sb/download.py12
-rw-r--r--source-builder/sb/git.py3
2 files changed, 11 insertions, 4 deletions
diff --git a/source-builder/sb/download.py b/source-builder/sb/download.py
index 17d1d7e..16aa251 100644
--- a/source-builder/sb/download.py
+++ b/source-builder/sb/download.py
@@ -423,10 +423,6 @@ def _git_downloader(url, local, config, opts):
log.notice('git: checkout: %s => %s' % (us[0], _as[1]))
if _do_download(opts):
repo.checkout(_as[1])
- elif _as[0] == 'pull':
- log.notice('git: pull: %s' % (us[0]))
- if _do_download(opts):
- repo.pull()
elif _as[0] == 'submodule':
if len(_as) != 2:
raise error.general('invalid git submodule: %s' % (_as))
@@ -437,6 +433,14 @@ def _git_downloader(url, local, config, opts):
log.notice('git: fetch: %s -> %s' % (us[0], rlp))
if _do_download(opts):
repo.fetch()
+ elif _as[0] == 'merge':
+ log.notice('git: merge: %s' % (us[0]))
+ if _do_download(opts):
+ repo.merge()
+ elif _as[0] == 'pull':
+ log.notice('git: pull: %s' % (us[0]))
+ if _do_download(opts):
+ repo.pull()
elif _as[0] == 'reset':
arg = []
if len(_as) > 1:
diff --git a/source-builder/sb/git.py b/source-builder/sb/git.py
index d115845..19fbed0 100644
--- a/source-builder/sb/git.py
+++ b/source-builder/sb/git.py
@@ -78,6 +78,9 @@ class repo:
def fetch(self):
ec, output = self._run(['fetch'], check = True)
+ def merge(self):
+ ec, output = self._run(['merge'], check = True)
+
def pull(self):
ec, output = self._run(['pull'], check = True)