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:
Simon Hausmann 2007-02-01 08:23:39 +01:00
parent 61b3cf7c47
commit f16255f559

View File

@ -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 ""