mirror of
https://github.com/frej/fast-export.git
synced 2026-02-26 14:30:42 +01:00
Fix data handling
The length should be exactly the same as the data, for example if the data is "hello" only 5 characters should be written on the stream. Thus it should always be `len(data)`, not `len(data)+1` as it currently is in some places. Since the first commit of hg2git.py there was a wtf comment, presumably Rocco was confused about this common discrepancy. We can shuffle the logic around by adding '\n' to the data, and removing +1 to the length. Also, the data should be written without a newline (wr_no_nl). Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
This commit is contained in:
@@ -197,7 +197,7 @@ def refresh_gitmodules(ctx):
|
|||||||
|
|
||||||
if len(gitmodules):
|
if len(gitmodules):
|
||||||
wr(b'M 100644 inline .gitmodules')
|
wr(b'M 100644 inline .gitmodules')
|
||||||
wr(b'data %d' % (len(gitmodules)+1))
|
wr(b'data %d' % (len(gitmodules)))
|
||||||
wr(gitmodules)
|
wr(gitmodules)
|
||||||
|
|
||||||
def export_file_contents(ctx,manifest,files,hgtags,encoding='',plugins={}):
|
def export_file_contents(ctx,manifest,files,hgtags,encoding='',plugins={}):
|
||||||
@@ -315,7 +315,7 @@ def export_commit(ui,repo,revision,old_marks,max,count,authors,
|
|||||||
parents = commit_data['parents']
|
parents = commit_data['parents']
|
||||||
author = commit_data['author']
|
author = commit_data['author']
|
||||||
user = commit_data['committer']
|
user = commit_data['committer']
|
||||||
desc = commit_data['desc']
|
desc = commit_data['desc'] + b'\n'
|
||||||
|
|
||||||
if len(parents)==0 and revision != 0:
|
if len(parents)==0 and revision != 0:
|
||||||
wr(b'reset refs/heads/%s' % branch)
|
wr(b'reset refs/heads/%s' % branch)
|
||||||
@@ -325,9 +325,8 @@ def export_commit(ui,repo,revision,old_marks,max,count,authors,
|
|||||||
if sob:
|
if sob:
|
||||||
wr(b'author %s %d %s' % (author,time,timezone))
|
wr(b'author %s %d %s' % (author,time,timezone))
|
||||||
wr(b'committer %s %d %s' % (user,time,timezone))
|
wr(b'committer %s %d %s' % (user,time,timezone))
|
||||||
wr(b'data %d' % (len(desc)+1)) # wtf?
|
wr(b'data %d' % (len(desc)))
|
||||||
wr(desc)
|
wr(desc)
|
||||||
wr()
|
|
||||||
|
|
||||||
ctx=revsymbol(repo, b"%d" % revision)
|
ctx=revsymbol(repo, b"%d" % revision)
|
||||||
man=ctx.manifest()
|
man=ctx.manifest()
|
||||||
@@ -389,7 +388,7 @@ def export_note(ui,repo,revision,count,authors,encoding,is_first):
|
|||||||
wr(b'N inline :%d' % (revision+1))
|
wr(b'N inline :%d' % (revision+1))
|
||||||
hg_hash=revsymbol(repo,b"%d" % revision).hex()
|
hg_hash=revsymbol(repo,b"%d" % revision).hex()
|
||||||
wr(b'data %d' % (len(hg_hash)))
|
wr(b'data %d' % (len(hg_hash)))
|
||||||
wr_no_nl(hg_hash)
|
wr(hg_hash)
|
||||||
wr()
|
wr()
|
||||||
return checkpoint(count)
|
return checkpoint(count)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user