My main reason is for the automatic invocation of the interactive merge
when I don't know what patch I have to deal with. The other reasons is
for people working over slow filesystems (NFS) where a three-way merging
may take a significant amount of time.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
"""Attempt to push the named patch. If this results in conflicts,
halts the transaction. If index+worktree are given, spill any
conflicts to them."""
"""Attempt to push the named patch. If this results in conflicts,
halts the transaction. If index+worktree are given, spill any
conflicts to them."""
+ out.start('Pushing patch "%s"' % pn)
orig_cd = self.patches[pn].data
cd = orig_cd.set_committer(None)
oldparent = cd.parent
orig_cd = self.patches[pn].data
cd = orig_cd.set_committer(None)
oldparent = cd.parent
iw.merge(base, ours, theirs, interactive = interactive)
tree = iw.index.write_tree()
self.__current_tree = tree
iw.merge(base, ours, theirs, interactive = interactive)
tree = iw.index.write_tree()
self.__current_tree = tree
except git.MergeConflictException, e:
tree = ours
merge_conflict = True
self.__conflicts = e.conflicts
except git.MergeConflictException, e:
tree = ours
merge_conflict = True
self.__conflicts = e.conflicts
except git.MergeException, e:
self.__halt(str(e))
cd = cd.set_tree(tree)
except git.MergeException, e:
self.__halt(str(e))
cd = cd.set_tree(tree)
self.head = comm
else:
comm = None
self.head = comm
else:
comm = None
elif not merge_conflict and cd.is_nochange():
elif not merge_conflict and cd.is_nochange():
- s = ' (empty)'
- out.info('Pushed %s%s' % (pn, s))
+ s = 'empty'
+ out.done(s)
def update():
if comm:
self.patches[pn] = comm
def update():
if comm:
self.patches[pn] = comm