Mercurial > hg > hg-fastimport
annotate hgext3rd/fastimport/__init__.py @ 96:7eb15a5c4cad
Be consitent in how we use strings
Everywhere else uses "string", so change to this in __init__.py
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Fri, 22 Jan 2021 00:03:52 +0000 |
| parents | 3b398a887b95 |
| children | cde0e1d24e58 |
| rev | line source |
|---|---|
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
1 """ import Git fast-import streams """ |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
2 from __future__ import absolute_import |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
3 |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
4 from mercurial import ( |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
5 commands, |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
6 encoding, |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
7 error, |
|
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
8 pycompat, |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
9 ) |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
10 |
|
50
b027552d517b
Do sort options just like hgext.convert.
Greg Ward <greg-hg@gerg.ca>
parents:
47
diff
changeset
|
11 from mercurial.i18n import _ |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
12 |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
13 from hgext.convert import ( |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
14 convcmd, |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
15 hg, |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
16 ) |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
17 |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
18 from .hgimport import fastimport_source |
|
0
d107c6d36780
Add the start of the hg fastimport command
Paul Crowley <paul@lshift.net>
parents:
diff
changeset
|
19 |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
20 __version__ = b"0.1.0" |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
21 testedwith = b"5.6.1" |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
22 minimumhgversion = b"4.1" |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
23 |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
24 cmdtable = {} |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
25 try: |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
26 from mercurial import registrar |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
27 command = registrar.command(cmdtable) |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
28 except (ImportError, AttributeError): |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
29 from mercurial import cmdutil |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
30 command = cmdutil.command(cmdtable) |
|
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
31 |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
32 @command(b"fastimport", |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
33 [(b"", b"branchsort", None, _(b"try to sort changesets by branches")), |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
34 (b"", b"datesort", None, _(b"try to sort changesets by date")), |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
35 (b"", b"sourcesort", None, _(b"preserve source changesets order")), |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
36 (b"", b"blobpath", b"", _(b"path for persistent blob data"))], |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
37 _(b"hg fastimport SOURCE ..."), |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
38 norepo=False) |
|
0
d107c6d36780
Add the start of the hg fastimport command
Paul Crowley <paul@lshift.net>
parents:
diff
changeset
|
39 |
|
14
f6f0fd01b34a
Preliminary support for reading multiple input files.
Greg Ward <greg-hg@gerg.ca>
parents:
1
diff
changeset
|
40 def fastimport(ui, repo, *sources, **opts): |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
41 """Convert a git fastimport dump into Mercurial changesets. |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
42 |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
43 Reads a series of SOURCE fastimport dumps and adds the resulting |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
44 changes to the current Mercurial repository. |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
45 """ |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
46 # Would be nice to just call hgext.convert.convcmd.convert() and let |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
47 # it take care of things. But syntax and semantics are just a |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
48 # little mismatched: |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
49 # - fastimport takes multiple source paths (mainly because cvs2git |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
50 # produces 2 dump files) |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
51 # - fastimport's dest is implicitly the current repo |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
52 # |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
53 # So for the time being, I have copied bits of convert() over here. |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
54 # Boo, hiss. |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
55 |
|
72
6b716ecb1cf3
Allow empty source argument
Dennis Schridde <devurandom@gmx.net>
parents:
66
diff
changeset
|
56 if not sources: |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
57 sources = (b"-") |
|
72
6b716ecb1cf3
Allow empty source argument
Dennis Schridde <devurandom@gmx.net>
parents:
66
diff
changeset
|
58 |
|
95
3b398a887b95
Use a sqlite3 database to store the blob data if available
Roy Marples <roy@marples.name>
parents:
80
diff
changeset
|
59 opts = pycompat.byteskwargs(opts) |
|
3b398a887b95
Use a sqlite3 database to store the blob data if available
Roy Marples <roy@marples.name>
parents:
80
diff
changeset
|
60 |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
61 # assume fastimport metadata (usernames, commit messages) are |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
62 # encoded UTF-8 |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
63 convcmd.orig_encoding = encoding.encoding |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
64 encoding.encoding = b"UTF-8" |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
65 |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
66 # sink is the current repo, src is the list of fastimport streams |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
67 destc = hg.mercurial_sink(ui, b"hg", repo.root) |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
68 srcc = fastimport_source(ui, b"fastimport", repo, sources, opts[b"blobpath"]) |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
69 |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
70 defaultsort = b"branchsort" # for efficiency and consistency |
|
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
71 sortmodes = (b"branchsort", b"datesort", b"sourcesort") |
|
50
b027552d517b
Do sort options just like hgext.convert.
Greg Ward <greg-hg@gerg.ca>
parents:
47
diff
changeset
|
72 sortmode = [m for m in sortmodes if opts.get(m)] |
|
b027552d517b
Do sort options just like hgext.convert.
Greg Ward <greg-hg@gerg.ca>
parents:
47
diff
changeset
|
73 if len(sortmode) > 1: |
|
96
7eb15a5c4cad
Be consitent in how we use strings
Roy Marples <roy@marples.name>
parents:
95
diff
changeset
|
74 raise error.Abort(_(b"more than one sort mode specified")) |
|
74
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
75 if sortmode: |
|
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
76 sortmode = sortmode[0] |
|
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
77 else: |
|
a4f13dc5e3f7
Support Mercurial 5.6 and Python-3.6
Roy Marples <roy@marples.name>
parents:
73
diff
changeset
|
78 sortmode = defaultsort |
|
73
a99e5c6c8e1c
Fix compatibility with 4.6+
Daniel Johnson <daniel@daniel-johnson.org>
parents:
72
diff
changeset
|
79 |
|
47
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
80 # not implemented: filemap, revmapfile |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
81 revmapfile = destc.revmapfile() |
|
7ff36dc9f0b1
Massive rework to use infrastructure provided by convert extension.
Greg Ward <greg-hg@gerg.ca>
parents:
34
diff
changeset
|
82 c = convcmd.converter(ui, srcc, destc, revmapfile, opts) |
|
50
b027552d517b
Do sort options just like hgext.convert.
Greg Ward <greg-hg@gerg.ca>
parents:
47
diff
changeset
|
83 c.convert(sortmode) |
