mirror of
https://github.com/frej/fast-export.git
synced 2025-11-12 21:55:42 +01:00
avoid fstat for every file
This commit is contained in:
@@ -57,9 +57,6 @@ def p4Cmd(cmd):
|
|||||||
result.update(entry)
|
result.update(entry)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
def p4FileSize(path):
|
|
||||||
return int(p4Cmd("fstat -Ol \"%s\"" % path)["fileSize"])
|
|
||||||
|
|
||||||
def getUserMap():
|
def getUserMap():
|
||||||
users = {}
|
users = {}
|
||||||
|
|
||||||
@@ -121,14 +118,15 @@ for change in changes:
|
|||||||
if action == "delete":
|
if action == "delete":
|
||||||
gitStream.write("D %s\n" % relPath)
|
gitStream.write("D %s\n" % relPath)
|
||||||
else:
|
else:
|
||||||
fileSize = p4FileSize(depotPath)
|
|
||||||
mode = 644
|
mode = 644
|
||||||
if description["type%s" % fnum].startswith("x"):
|
if description["type%s" % fnum].startswith("x"):
|
||||||
mode = 755
|
mode = 755
|
||||||
|
|
||||||
|
data = os.popen("p4 print -q \"%s\"" % depotPath, "rb").read()
|
||||||
|
|
||||||
gitStream.write("M %s inline %s\n" % (mode, relPath))
|
gitStream.write("M %s inline %s\n" % (mode, relPath))
|
||||||
gitStream.write("data %s\n" % fileSize)
|
gitStream.write("data %s\n" % len(data))
|
||||||
gitStream.write(os.popen("p4 print -q \"%s\"" % depotPath).read())
|
gitStream.write(data)
|
||||||
gitStream.write("\n")
|
gitStream.write("\n")
|
||||||
|
|
||||||
fnum = fnum + 1
|
fnum = fnum + 1
|
||||||
|
|||||||
Reference in New Issue
Block a user