summaryrefslogtreecommitdiff
path: root/lorry
diff options
context:
space:
mode:
authorBen Hutchings <ben.hutchings@codethink.co.uk>2020-10-03 17:40:05 +0000
committerBen Hutchings <ben.hutchings@codethink.co.uk>2020-10-03 17:40:05 +0000
commit64182a57a49203cf87c9d6e99d9a29d47e229bf0 (patch)
tree5664b912674f6d8d6fb200375a91fcccb212d626 /lorry
parent641ebd75f9868753ba472e780062a7f2aed5abbb (diff)
parent9b3e1939465593b72957b882765623ae416d7796 (diff)
downloadlorry-64182a57a49203cf87c9d6e99d9a29d47e229bf0.tar.gz
Merge branch 'bwh/fix-author-ids' into 'master'
lorry: Install and use fudge_user_ids plugin for hg-fast-export Closes #11 See merge request CodethinkLabs/lorry/lorry!20
Diffstat (limited to 'lorry')
-rwxr-xr-xlorry24
1 files changed, 23 insertions, 1 deletions
diff --git a/lorry b/lorry
index 81fdeb3..0e047db 100755
--- a/lorry
+++ b/lorry
@@ -766,8 +766,30 @@ class Lorry(cliapp.Application):
self.prune_unreachable_marks(gitdir,
os.path.join(gitdir, 'hg2git-marks'))
+ # Enable the fudge_user_ids plugin if possible
+ plugin_options = []
+ exit, out, _ = self.runcmd_unchecked(['hg-fast-export', '--help'])
+ if exit == 0 and b'--plugin' in out:
+ for plugin_path in [
+ # Check under same directory as us, in case we are
+ # not yet installed
+ os.path.join(os.path.dirname(__file__),
+ 'hg-fast-export/plugins'),
+ # Try walking from <prefix>/bin/lorry to
+ # <prefix>/share/lorry/...
+ os.path.join(os.path.dirname(__file__),
+ '../share/lorry/hg-fast-export/plugins')
+ ]:
+ if os.path.exists(plugin_path):
+ plugin_options += [
+ '--plugin-path', plugin_path,
+ '--plugin', 'fudge_user_ids'
+ ]
+ break
+
self.progress('.. fast-exporting into git')
- self.run_program(['hg-fast-export', '-r', '../hg', '--quiet', '--force'],
+ self.run_program(['hg-fast-export', '-r', '../hg', '--quiet', '--force',
+ *plugin_options],
cwd=gitdir)
def gitify_archive(self, archive_type, project_name, dirname, gitdir, spec):