From 537e5a4735921277901a1ed7659c0c694e71722b Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 20 Mar 2023 01:58:42 -0600 Subject: [PATCH 1/4] Reorganize export_files No functional changes. Signed-off-by: Felipe Contreras --- git-remote-hg | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index d32b822..e0ceff9 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -288,25 +288,27 @@ def fix_file_path(path): # Git for Windows expects forward return path.replace(os.sep, '/') +def export_file(f): + fid = node.hex(f.filenode()) + + if fid in filenodes: + mark = filenodes[fid] + else: + mark = marks.next_mark() + filenodes[fid] = mark + d = f.data() + + print("blob") + print("mark :%u" % mark) + print_data(d) + + path = fix_file_path(f.path()) + return gitmode(f.flags()), mark, path + def export_files(files): final = [] for f in files: - fid = node.hex(f.filenode()) - - if fid in filenodes: - mark = filenodes[fid] - else: - mark = marks.next_mark() - filenodes[fid] = mark - d = f.data() - - print("blob") - print("mark :%u" % mark) - print_data(d) - - path = fix_file_path(f.path()) - final.append((gitmode(f.flags()), mark, path)) - + final.append(export_file(f)) return final def get_filechanges(repo, ctx, parents, files): From 9c5b8835f46fa1b851593952872b0e16a6154048 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 20 Mar 2023 02:02:11 -0600 Subject: [PATCH 2/4] Get rid of export_files It's not necessary. Signed-off-by: Felipe Contreras --- git-remote-hg | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index e0ceff9..b0cc5b2 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -305,12 +305,6 @@ def export_file(f): path = fix_file_path(f.path()) return gitmode(f.flags()), mark, path -def export_files(files): - final = [] - for f in files: - final.append(export_file(f)) - return final - def get_filechanges(repo, ctx, parents, files): if not parents: return files, [] @@ -529,7 +523,7 @@ def export_ref(repo, name, kind, head): if len(parents) == 0 and rev: print('reset %s/%s' % (prefix, ename)) - modified_final = export_files(c.filectx(f) for f in modified) + modified_final = [export_file(c.filectx(fname)) for fname in modified] print("commit %s/%s" % (prefix, ename)) print("mark :%d" % (marks.get_mark(c.hex()))) From 7cff2c6adb02fbb2d0f6c6a01ed49fc9b805669f Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 20 Mar 2023 02:07:45 -0600 Subject: [PATCH 3/4] Simplify export_file args Signed-off-by: Felipe Contreras --- git-remote-hg | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index b0cc5b2..e500211 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -288,7 +288,8 @@ def fix_file_path(path): # Git for Windows expects forward return path.replace(os.sep, '/') -def export_file(f): +def export_file(ctx, fname): + f = ctx.filectx(fname) fid = node.hex(f.filenode()) if fid in filenodes: @@ -302,7 +303,7 @@ def export_file(f): print("mark :%u" % mark) print_data(d) - path = fix_file_path(f.path()) + path = fix_file_path(fname) return gitmode(f.flags()), mark, path def get_filechanges(repo, ctx, parents, files): @@ -523,7 +524,7 @@ def export_ref(repo, name, kind, head): if len(parents) == 0 and rev: print('reset %s/%s' % (prefix, ename)) - modified_final = [export_file(c.filectx(fname)) for fname in modified] + modified_final = [export_file(c, fname) for fname in modified] print("commit %s/%s" % (prefix, ename)) print("mark :%d" % (marks.get_mark(c.hex()))) From 7908c70efbd0420e21c2b0b7841b61e3b933be51 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 20 Mar 2023 02:08:37 -0600 Subject: [PATCH 4/4] Trivial simplifications Signed-off-by: Felipe Contreras --- git-remote-hg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index e500211..797ebbc 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -297,14 +297,12 @@ def export_file(ctx, fname): else: mark = marks.next_mark() filenodes[fid] = mark - d = f.data() print("blob") print("mark :%u" % mark) - print_data(d) + print_data(f.data()) - path = fix_file_path(fname) - return gitmode(f.flags()), mark, path + return gitmode(f.flags()), mark, fix_file_path(fname) def get_filechanges(repo, ctx, parents, files): if not parents: