X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/56df21ed4cf5230924b5b6bd69b138da904758d0..5b99888bc11c6ac2c3c940c3c9bb4b9905225754:/stgit/gitmergeonefile.py diff --git a/stgit/gitmergeonefile.py b/stgit/gitmergeonefile.py index c3aaa2a..b35880e 100644 --- a/stgit/gitmergeonefile.py +++ b/stgit/gitmergeonefile.py @@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys, os from stgit import basedir -from stgit.config import config +from stgit.config import file_extensions, ConfigOption from stgit.utils import append_string @@ -31,12 +31,8 @@ class GitMergeException(Exception): # # Options # -try: - merger = config.get('stgit', 'merger') - keeporig = config.get('stgit', 'keeporig') -except Exception, err: - raise GitMergeException, 'Configuration error: %s' % err - +merger = ConfigOption('stgit', 'merger') +keeporig = ConfigOption('stgit', 'keeporig') # # Utility functions @@ -61,18 +57,20 @@ def __checkout_files(orig_hash, file1_hash, file2_hash, """ global orig, src1, src2 + extensions = file_extensions() + if orig_hash: - orig = '%s.older' % path + orig = path + extensions['ancestor'] tmp = __output('git-unpack-file %s' % orig_hash) os.chmod(tmp, int(orig_mode, 8)) os.renames(tmp, orig) if file1_hash: - src1 = '%s.local' % path + src1 = path + extensions['current'] tmp = __output('git-unpack-file %s' % file1_hash) os.chmod(tmp, int(file1_mode, 8)) os.renames(tmp, src1) if file2_hash: - src2 = '%s.remote' % path + src2 = path + extensions['patched'] tmp = __output('git-unpack-file %s' % file2_hash) os.chmod(tmp, int(file2_mode, 8)) os.renames(tmp, src2) @@ -128,10 +126,10 @@ def merge(orig_hash, file1_hash, file2_hash, return 1 # 3-way merge else: - merge_ok = os.system(merger % {'branch1': src1, - 'ancestor': orig, - 'branch2': src2, - 'output': path }) == 0 + merge_ok = os.system(str(merger) % {'branch1': src1, + 'ancestor': orig, + 'branch2': src2, + 'output': path }) == 0 if merge_ok: os.system('git-update-index -- %s' % path) @@ -144,7 +142,7 @@ def merge(orig_hash, file1_hash, file2_hash, # reset the cache to the first branch os.system('git-update-index --cacheinfo %s %s %s' % (file1_mode, file1_hash, path)) - if keeporig != 'yes': + if str(keeporig) != 'yes': __remove_files(orig_hash, file1_hash, file2_hash) __conflict(path) return 1