mirror of
https://github.com/frej/fast-export.git
synced 2025-11-01 17:05:46 +01:00
bugfix: Avoid starting incremental conversions from scratch
Keys and values in the state cache are byte strings, therefore a lookup of 'tip' will always fail. The failure makes the conversion start over from the beginning, but as fast-export is deterministic the results are the same, just very inefficient. The bug has existed since the port to Python 3. This patch switches the 'tip' lookup to use a byte string which should make incremental conversions restart at the last converted commit. As 'x' == b'x' in Python 2, this should be a backwards compatible change. Bug reported and fix suggested by Tomas Kolda. Fixes #258.
This commit is contained in:
@@ -547,7 +547,7 @@ def hg2git(repourl,m,marksfile,mappingfile,headsfile,tipfile,
|
||||
except AttributeError:
|
||||
tip=len(repo)
|
||||
|
||||
min=int(state_cache.get('tip',0))
|
||||
min=int(state_cache.get(b'tip',0))
|
||||
max=_max
|
||||
if _max<0 or max>tip:
|
||||
max=tip
|
||||
@@ -580,8 +580,8 @@ def hg2git(repourl,m,marksfile,mappingfile,headsfile,tipfile,
|
||||
for rev in range(min,max):
|
||||
c=export_note(ui,repo,rev,c,authors, encoding, rev == min and min != 0)
|
||||
|
||||
state_cache['tip']=max
|
||||
state_cache['repo']=repourl
|
||||
state_cache[b'tip']=max
|
||||
state_cache[b'repo']=repourl
|
||||
save_cache(tipfile,state_cache)
|
||||
save_cache(mappingfile,mapping_cache)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user