X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/681f805ef4688c7ea450f5e72a15dad818809734..fba895f5f12a652c248b0fd02b7c41f8342cfbdc:/stgit/git.py diff --git a/stgit/git.py b/stgit/git.py index 038aaac..c7cc6a7 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -23,6 +23,7 @@ import sys, os, popen2, re, gitmergeonefile from stgit import basedir from stgit.utils import * from stgit.config import config +from sets import Set # git exception class class GitException(Exception): @@ -808,18 +809,23 @@ def reset(files = None, tree_id = None, check_out = True): __set_head(tree_id) def pull(repository = 'origin', refspec = None): - """Pull changes from the remote repository. At the moment, just - use the 'git-pull' command + """Pull changes from the remote repository. Uses 'git-fetch' + and moves the stack base. """ - # 'git-pull' updates the HEAD + # we update the HEAD __clear_head_cache() args = [repository] if refspec: args.append(refspec) - if __run(config.get('stgit.pullcmd'), args) != 0: - raise GitException, 'Failed "git-pull %s"' % repository + command = config.get('stgit.pullcmd') + if __run(command, args) != 0: + raise GitException, 'Failed "%s %s"' % (command, repository) + + if (config.get('stgit.pull-does-rebase')): + # FIXME! + reset(tree_id = rev_parse(repository)) def repack(): """Repack all objects into a single pack @@ -908,9 +914,9 @@ def remotes_list(): """Return the list of remotes in the repository """ - return set(__remotes_from_config()) | \ - set(__remotes_from_dir('remotes')) | \ - set(__remotes_from_dir('branches')) + return Set(__remotes_from_config()) | \ + Set(__remotes_from_dir('remotes')) | \ + Set(__remotes_from_dir('branches')) def remotes_local_branches(remote): """Returns the list of local branches fetched from given remote