X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/c19dc3db115d85537dbdf0b4f12dc8b3bc9481c4..99c529152847b7e20e48dc477925e315918eed5d:/stgit/gitmergeonefile.py diff --git a/stgit/gitmergeonefile.py b/stgit/gitmergeonefile.py index 3b3175b..47ad8b8 100644 --- a/stgit/gitmergeonefile.py +++ b/stgit/gitmergeonefile.py @@ -19,7 +19,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ import sys, os -from stgit.config import config +from stgit import basedir +from stgit.config import config, file_extensions from stgit.utils import append_string @@ -60,18 +61,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) @@ -87,21 +90,10 @@ def __remove_files(orig_hash, file1_hash, file2_hash): os.remove(src2) pass -# GIT_DIR value cached -__base_dir = None - def __conflict(path): """Write the conflict file for the 'path' variable and exit """ - global __base_dir - - if not __base_dir: - if 'GIT_DIR' in os.environ: - __base_dir = os.environ['GIT_DIR'] - else: - __base_dir = __output('git-rev-parse --git-dir') - - append_string(os.path.join(__base_dir, 'conflicts'), path) + append_string(os.path.join(basedir.get(), 'conflicts'), path) # @@ -215,6 +207,8 @@ def merge(orig_hash, file1_hash, file2_hash, return 1 # files are different else: + # reset the index to the current file + os.system('git-update-index -- %s' % path) print >> sys.stderr, \ 'Error: File "%s" added in branches but different' % path __conflict(path)