[devel] git-merge-recursive fails on symlinks

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Окт 10 23:09:06 MSD 2006


/usr/bin/git-merge-recursive:
   266          if stat.S_ISREG(mode):
   267              try:
   268                  os.unlink(path)
   269              except OSError:
   270                  pass
   271              if mode & 0100:
   272                  mode = 0777
   273              else:
   274                  mode = 0666
   275              fd = os.open(path, os.O_WRONLY | os.O_TRUNC | os.O_CREAT, mode)
   276              proc = subprocess.Popen(prog, stdout=fd)
   277              proc.wait()
   278              os.close(fd)
   279          elif stat.S_ISLNK(mode):
   280              linkTarget = runProgram(prog)
   281              os.symlink(linkTarget, path)
   282          else:
   283              assert(False)

os.symlink на строке 281 у меня выпало с ошибкой типа path exists.

--- /usr/bin/git-merge-recursive-	2006-10-06 12:18:27 +0400
+++ /usr/bin/git-merge-recursive	2006-10-10 23:00:45 +0400
@@ -263,11 +263,11 @@ def updateFileExt(sha, mode, path, updat
                     die("Couldn't create directory", p, e.strerror)
 
         prog = ['git-cat-file', 'blob', sha]
+        try:
+            os.unlink(path)
+        except OSError:
+            pass
         if stat.S_ISREG(mode):
-            try:
-                os.unlink(path)
-            except OSError:
-                pass
             if mode & 0100:
                 mode = 0777
             else:
End of patch
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20061010/5d9d3ff5/attachment-0001.bin>


Подробная информация о списке рассылки Devel