check_conflicts()
check_head_top_equal()
- orig_head = git_id('base')
-
+ # pop all patches
+ applied = crt_series.get_applied()
+ if len(applied) > 0:
+ print 'Popping all patches...',
+ sys.stdout.flush()
+ crt_series.pop_patch(applied[0])
+ print 'done'
+
+ # pull the remote changes
print 'Pulling from "%s"...' % location
- new_head = git.fetch(location, options.head, options.tag)
+ git.pull(location, options.head, options.tag)
print 'done'
- if new_head == orig_head:
- print 'Branch already up-to-date'
- else:
- write_string(os.path.join(git.base_dir, 'ORIG_HEAD'), orig_head)
-
- applied = crt_series.get_applied()
-
- if len(applied) > 0:
- print 'Popping all patches...',
- sys.stdout.flush()
- crt_series.pop_patch(applied[0])
+ # push the patches back
+ if options.nopush:
+ applied = []
+ for p in applied:
+ print 'Pushing patch "%s"...' % p,
+ sys.stdout.flush()
+ crt_series.push_patch(p)
+ if crt_series.empty_patch(p):
+ print 'done (empty patch)'
+ else:
print 'done'
- git.switch(new_head)
-
- if options.nopush:
- applied = []
- for p in applied:
- print 'Pushing patch "%s"...' % p,
- sys.stdout.flush()
- crt_series.push_patch(p)
- if crt_series.empty_patch(p):
- print 'done (empty patch)'
- else:
- print 'done'
-
print_crt_patch()
for fs in to_delete:
os.remove(fs[1])
-def fetch(location, head = None, tag = None):
+def pull(location, head = None, tag = None):
"""Fetch changes from the remote repository. At the moment, just
use the 'git fetch' scripts
"""
elif tag:
args += ['tag', tag]
- if __run('git fetch', args) != 0:
+ if __run('git pull', args) != 0:
raise GitException, 'Failed "git fetch %s"' % location
- return read_string(os.path.join(base_dir, 'FETCH_HEAD'))
-
def apply_patch(filename = None):
"""Apply a patch onto the current index. There must not be any
local changes in the tree, otherwise the command fails