Simplify the incremental import by elimination the need for a temporary import branch.
It turns out that git fast-import can "resume" from an existing branch just fine. Signed-off-by: Simon Hausmann <hausmann@kde.org>
This commit is contained in:
parent
61b3cf7c47
commit
f16255f559
@ -7,11 +7,7 @@
|
|||||||
#
|
#
|
||||||
# TODO:
|
# TODO:
|
||||||
# - support integrations (at least p4i)
|
# - support integrations (at least p4i)
|
||||||
# - support incremental imports
|
|
||||||
# - create tags
|
|
||||||
# - instead of reading all files into a variable try to pipe from
|
|
||||||
# - support p4 submit (hah!)
|
# - support p4 submit (hah!)
|
||||||
# - don't hardcode the import to master
|
|
||||||
#
|
#
|
||||||
import os, string, sys, time
|
import os, string, sys, time
|
||||||
import marshal, popen2
|
import marshal, popen2
|
||||||
@ -26,8 +22,7 @@ if len(sys.argv) != 2:
|
|||||||
print ""
|
print ""
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
master = "refs/heads/p4"
|
branch = "refs/heads/p4"
|
||||||
branch = "refs/heads/p4-import"
|
|
||||||
prefix = sys.argv[1]
|
prefix = sys.argv[1]
|
||||||
changeRange = ""
|
changeRange = ""
|
||||||
try:
|
try:
|
||||||
@ -74,24 +69,18 @@ def getUserMap():
|
|||||||
users = getUserMap()
|
users = getUserMap()
|
||||||
topMerge = ""
|
topMerge = ""
|
||||||
|
|
||||||
incremental = 0
|
|
||||||
# try incremental import
|
|
||||||
if len(changeRange) == 0:
|
if len(changeRange) == 0:
|
||||||
try:
|
try:
|
||||||
sout, sin, serr = popen2.popen3("git-name-rev --tags `git-rev-parse %s`" % master)
|
sout, sin, serr = popen2.popen3("git-name-rev --tags `git-rev-parse %s`" % branch)
|
||||||
output = sout.read()
|
output = sout.read()
|
||||||
tagIdx = output.index(" tags/p4/")
|
tagIdx = output.index(" tags/p4/")
|
||||||
caretIdx = output.index("^")
|
caretIdx = output.index("^")
|
||||||
revision = int(output[tagIdx + 9 : caretIdx]) + 1
|
revision = int(output[tagIdx + 9 : caretIdx]) + 1
|
||||||
changeRange = "@%s,#head" % revision
|
changeRange = "@%s,#head" % revision
|
||||||
topMerge = os.popen("git-rev-parse %s" % master).read()[:-1]
|
topMerge = os.popen("git-rev-parse %s" % branch).read()[:-1]
|
||||||
incremental = 1
|
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if incremental == 0:
|
|
||||||
branch = master
|
|
||||||
|
|
||||||
output = os.popen("p4 changes %s...%s" % (prefix, changeRange)).readlines()
|
output = os.popen("p4 changes %s...%s" % (prefix, changeRange)).readlines()
|
||||||
|
|
||||||
changes = []
|
changes = []
|
||||||
@ -181,8 +170,4 @@ gitStream.close()
|
|||||||
gitOutput.close()
|
gitOutput.close()
|
||||||
gitError.close()
|
gitError.close()
|
||||||
|
|
||||||
if incremental == 1:
|
|
||||||
os.popen("git rebase p4-import p4")
|
|
||||||
os.popen("git branch -d p4-import")
|
|
||||||
|
|
||||||
print ""
|
print ""
|
||||||
|
Loading…
Reference in New Issue
Block a user