- bSHA1, bMode):
- prog = ['git-update-index', '-z', '--index-info']
- proc = subprocess.Popen(prog, stdin=subprocess.PIPE)
- pipe = proc.stdin
- # Clear stages first.
- pipe.write("0 " + ("0" * 40) + "\t" + path + "\0")
- # Set stages
- pipe.write("%o %s %d\t%s\0" % (oMode, oSHA1, 1, path))
- pipe.write("%o %s %d\t%s\0" % (aMode, aSHA1, 2, path))
- pipe.write("%o %s %d\t%s\0" % (bMode, bSHA1, 3, path))
- pipe.close()
- proc.wait()
+ bSHA1, bMode,
+ clear=True):
+ istring = []
+ if clear:
+ istring.append("0 " + ("0" * 40) + "\t" + path + "\0")
+ if oMode:
+ istring.append("%o %s %d\t%s\0" % (oMode, oSHA1, 1, path))
+ if aMode:
+ istring.append("%o %s %d\t%s\0" % (aMode, aSHA1, 2, path))
+ if bMode:
+ istring.append("%o %s %d\t%s\0" % (bMode, bSHA1, 3, path))
+
+ runProgram(['git-update-index', '-z', '--index-info'],
+ input="".join(istring))