contrib/darcs2hg.py
changeset 2749 d13e4ffaa79d
parent 2588 8210cf2ec19d
child 3673 eb0b4a2d70a9
equal deleted inserted replaced
2748:752b9475a700 2749:d13e4ffaa79d
    90 	changes = filter(lambda l:l.strip().startswith("* "), changes.split("\n"))
    90 	changes = filter(lambda l:l.strip().startswith("* "), changes.split("\n"))
    91 	return len(changes)
    91 	return len(changes)
    92 
    92 
    93 def darcs_pull(hg_repo, darcs_repo, chash):
    93 def darcs_pull(hg_repo, darcs_repo, chash):
    94 	old_tip = darcs_tip(darcs_repo)
    94 	old_tip = darcs_tip(darcs_repo)
    95 	res     = cmd("darcs pull '%s' --all --match='hash %s'" % (darcs_repo, chash), hg_repo)
    95 	res     = cmd("darcs pull \"%s\" --all --match=\"hash %s\"" % (darcs_repo, chash), hg_repo)
    96 	print res
    96 	print res
    97 	new_tip = darcs_tip(darcs_repo)
    97 	new_tip = darcs_tip(darcs_repo)
    98 	if not new_tip != old_tip + 1:
    98 	if not new_tip != old_tip + 1:
    99 		error("Darcs pull did not work as expected: " + res)
    99 		error("Darcs pull did not work as expected: " + res)
   100 
   100 
   108 	fd, tmpfile = tempfile.mkstemp(prefix="darcs2hg_")
   108 	fd, tmpfile = tempfile.mkstemp(prefix="darcs2hg_")
   109 	writefile(tmpfile, text)
   109 	writefile(tmpfile, text)
   110 	old_tip = hg_tip(hg_repo)
   110 	old_tip = hg_tip(hg_repo)
   111 	cmd("hg add -X _darcs", hg_repo)
   111 	cmd("hg add -X _darcs", hg_repo)
   112 	cmd("hg remove -X _darcs --after", hg_repo)
   112 	cmd("hg remove -X _darcs --after", hg_repo)
   113 	res = cmd("hg commit -l %s -u '%s' -d '%s 0'"  % (tmpfile, author, date), hg_repo)
   113 	res = cmd("hg commit -l %s -u \"%s\" -d \"%s 0\""  % (tmpfile, author, date), hg_repo)
       
   114 	os.close(fd)
   114 	os.unlink(tmpfile)
   115 	os.unlink(tmpfile)
   115 	new_tip = hg_tip(hg_repo)
   116 	new_tip = hg_tip(hg_repo)
   116 	if not new_tip == old_tip + 1:
   117 	if not new_tip == old_tip + 1:
   117 		# Sometimes we may have empty commits, we simply skip them
   118 		# Sometimes we may have empty commits, we simply skip them
   118 		if res.strip().lower().find("nothing changed") != -1:
   119 		if res.strip().lower().find("nothing changed") != -1:
   154 		os.mkdir(hg_repo)
   155 		os.mkdir(hg_repo)
   155 	elif skip == None:
   156 	elif skip == None:
   156 		print "Given HG repository must not exist when no SKIP is specified."
   157 		print "Given HG repository must not exist when no SKIP is specified."
   157 		sys.exit(-1)
   158 		sys.exit(-1)
   158 	if skip == None:
   159 	if skip == None:
   159 		cmd("hg init '%s'" % (hg_repo))
   160 		cmd("hg init \"%s\"" % (hg_repo))
   160 		cmd("darcs initialize", hg_repo)
   161 		cmd("darcs initialize", hg_repo)
   161 	# Get the changes from the Darcs repository
   162 	# Get the changes from the Darcs repository
   162 	change_number = 0
   163 	change_number = 0
   163 	for author, date, summary, chash, description in darcs_changes(darcs_repo):
   164 	for author, date, summary, chash, description in darcs_changes(darcs_repo):
   164 		print "== changeset", change_number,
   165 		print "== changeset", change_number,