+ # reset the cache to the first branch
+ os.system('git-update-index --cacheinfo %s %s %s'
+ % (file1_mode, file1_hash, path))
+
+ if config.get('stgit.autoimerge') == 'yes':
+ try:
+ interactive_merge(path)
+ except GitMergeException, ex:
+ # interactive merge failed
+ print >> sys.stderr, str(ex)
+ if str(keeporig) != 'yes':
+ __remove_files(orig_hash, file1_hash,
+ file2_hash)
+ __conflict(path)
+ return 1
+ # successful interactive merge
+ os.system('git-update-index -- %s' % path)
+ __remove_files(orig_hash, file1_hash, file2_hash)
+ return 0
+ else:
+ # no interactive merge, just mark it as conflict
+ if str(keeporig) != 'yes':
+ __remove_files(orig_hash, file1_hash, file2_hash)
+ __conflict(path)
+ return 1