chiark / gitweb /
Get rid of an unused variable
[stgit] / gitmergeonefile.py
index 99a6a7ce79805fbc03e7c65c76ce6ad4c2bdff17..1cba19366d33c73975154eed2d83fce1f0ff9977 100755 (executable)
@@ -20,6 +20,19 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 """
 
 import sys, os
+
+# Try to detect where it is run from and set prefix and the search path.
+# It is assumed that the user installed StGIT using the --prefix= option
+prefix, bin = os.path.split(sys.path[0])
+
+if bin == 'bin' and prefix != sys.prefix:
+    major, minor = sys.version_info[0:2]
+    local_path = [os.path.join(prefix, 'lib', 'python'),
+                  os.path.join(prefix, 'lib', 'python%s.%s' % (major, minor)),
+                  os.path.join(prefix, 'lib', 'python%s.%s' % (major, minor),
+                               'site-packages')]
+    sys.path = local_path + sys.path
+
 from stgit.config import config
 from stgit.utils import append_string
 
@@ -129,12 +142,12 @@ if orig_hash:
     if file1_hash and file2_hash:
         # if modes are the same (git-read-tree probably dealed with it)
         if file1_hash == file2_hash:
-            if os.system('git-update-cache --cacheinfo %s %s %s'
+            if os.system('git-update-index --cacheinfo %s %s %s'
                          % (file1_mode, file1_hash, path)) != 0:
-                print >> sys.stderr, 'Error: git-update-cache failed'
+                print >> sys.stderr, 'Error: git-update-index failed'
                 __conflict()
-            if os.system('git-checkout-cache -u -f -- %s' % path):
-                print >> sys.stderr, 'Error: git-checkout-cache failed'
+            if os.system('git-checkout-index -u -f -- %s' % path):
+                print >> sys.stderr, 'Error: git-checkout-index failed'
                 __conflict()
             if file1_mode != file2_mode:
                 print >> sys.stderr, \
@@ -148,14 +161,14 @@ if orig_hash:
                                            'output': path }) == 0
 
             if merge_ok:
-                os.system('git-update-cache -- %s' % path)
+                os.system('git-update-index -- %s' % path)
                 __remove_files()
                 sys.exit(0)
             else:
                 print >> sys.stderr, \
                       'Error: three-way merge tool failed for file "%s"' % path
                 # reset the cache to the first branch
-                os.system('git-update-cache --cacheinfo %s %s %s'
+                os.system('git-update-index --cacheinfo %s %s %s'
                           % (file1_mode, file1_hash, path))
                 if keeporig != 'yes':
                     __remove_files()
@@ -166,19 +179,19 @@ if orig_hash:
         if os.path.exists(path):
             os.remove(path)
         __remove_files()
-        sys.exit(os.system('git-update-cache --remove -- %s' % path))
+        sys.exit(os.system('git-update-index --remove -- %s' % path))
 # file does not exist in origin
 else:
     # file added in both
     if file1_hash and file2_hash:
         # files are the same
         if file1_hash == file2_hash:
-            if os.system('git-update-cache --add --cacheinfo %s %s %s'
+            if os.system('git-update-index --add --cacheinfo %s %s %s'
                          % (file1_mode, file1_hash, path)) != 0:
-                print >> sys.stderr, 'Error: git-update-cache failed'
+                print >> sys.stderr, 'Error: git-update-index failed'
                 __conflict()
-            if os.system('git-checkout-cache -u -f -- %s' % path):
-                print >> sys.stderr, 'Error: git-checkout-cache failed'
+            if os.system('git-checkout-index -u -f -- %s' % path):
+                print >> sys.stderr, 'Error: git-checkout-index failed'
                 __conflict()
             if file1_mode != file2_mode:
                 print >> sys.stderr, \
@@ -198,12 +211,12 @@ else:
         else:
             mode = file2_mode
             obj = file2_hash
-        if os.system('git-update-cache --add --cacheinfo %s %s %s'
+        if os.system('git-update-index --add --cacheinfo %s %s %s'
                      % (mode, obj, path)) != 0:
-            print >> sys.stderr, 'Error: git-update-cache failed'
+            print >> sys.stderr, 'Error: git-update-index failed'
             __conflict()
         __remove_files()
-        sys.exit(os.system('git-checkout-cache -u -f -- %s' % path))
+        sys.exit(os.system('git-checkout-index -u -f -- %s' % path))
 
 # Un-handled case
 print >> sys.stderr, 'Error: Un-handled merge conflict'