In the initial version, 'git fetch' was used but its interface might
change in the future.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
check_conflicts()
check_head_top_equal()
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
print 'Pulling from "%s"...' % location
- new_head = git.fetch(location, options.head, options.tag)
+ git.pull(location, options.head, options.tag)
- 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:
- 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'
-
for fs in to_delete:
os.remove(fs[1])
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
"""
"""Fetch changes from the remote repository. At the moment, just
use the 'git fetch' scripts
"""
elif tag:
args += ['tag', tag]
elif tag:
args += ['tag', tag]
- if __run('git fetch', args) != 0:
+ if __run('git pull', args) != 0:
raise GitException, 'Failed "git fetch %s"' % location
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
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