X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-merge-recursive.py;h=01292335509bfd1460e12e0e1d86c4fcd1f265a4;hb=562051809589574576971c53c23aad93f8c395d9;hp=21f1e924f01fa69523bbc6f96873930da4172c99;hpb=857f26d2f41e16170e48076758d974820af685ff;p=git.git diff --git a/git-merge-recursive.py b/git-merge-recursive.py index 21f1e924..01292335 100755 --- a/git-merge-recursive.py +++ b/git-merge-recursive.py @@ -3,11 +3,13 @@ # Copyright (C) 2005 Fredrik Kuivinen # -import sys, math, random, os, re, signal, tempfile, stat, errno, traceback +import sys +sys.path.append('''@@GIT_PYTHON_PATH@@''') + +import math, random, os, re, signal, tempfile, stat, errno, traceback from heapq import heappush, heappop from sets import Set -sys.path.append('''@@GIT_PYTHON_PATH@@''') from gitMergeCommon import * outputIndent = 0 @@ -243,7 +245,7 @@ def updateFileExt(sha, mode, path, updateCache, updateWd): try: createDir = not stat.S_ISDIR(os.lstat(p).st_mode) - except: + except OSError: createDir = True if createDir: @@ -291,6 +293,10 @@ def removeFile(clean, path): except OSError, e: if e.errno != errno.ENOENT and e.errno != errno.EISDIR: raise + try: + os.removedirs(os.path.dirname(path)) + except OSError: + pass def uniquePath(path, branch): def fileExists(path): @@ -304,13 +310,13 @@ def uniquePath(path, branch): raise branch = branch.replace('/', '_') - newPath = path + '_' + branch + newPath = path + '~' + branch suffix = 0 while newPath in currentFileSet or \ newPath in currentDirectorySet or \ fileExists(newPath): suffix += 1 - newPath = path + '_' + branch + '_' + str(suffix) + newPath = path + '~' + branch + '_' + str(suffix) currentFileSet.add(newPath) return newPath