]>
Commit | Line | Data |
---|---|---|
215a7ad1 JH |
1 | git-archimport(1) |
2 | ================= | |
5077fa9c JH |
3 | |
4 | NAME | |
5 | ---- | |
c2632796 | 6 | git-archimport - Import a GNU Arch repository into Git |
5077fa9c JH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
353ce815 | 11 | [verse] |
b1889c36 | 12 | 'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir] |
d9cb5399 | 13 | <archive/branch>[:<git-branch>] ... |
5077fa9c JH |
14 | |
15 | DESCRIPTION | |
16 | ----------- | |
c2632796 FE |
17 | Imports a project from one or more GNU Arch repositories. |
18 | It will follow branches | |
a4c5f9aa | 19 | and repositories within the namespaces defined by the <archive/branch> |
89438677 | 20 | parameters supplied. If it cannot find the remote branch a merge comes from |
a6080a0a JH |
21 | it will just import it as a regular commit. If it can find it, it will mark it |
22 | as a merge whenever possible (see discussion below). | |
5077fa9c | 23 | |
a6080a0a JH |
24 | The script expects you to provide the key roots where it can start the import |
25 | from an 'initial import' or 'tag' type of Arch commit. It will follow and | |
26 | import new branches within the provided roots. | |
5077fa9c | 27 | |
a6080a0a JH |
28 | It expects to be dealing with one project only. If it sees |
29 | branches that have different roots, it will refuse to run. In that case, | |
30 | edit your <archive/branch> parameters to define clearly the scope of the | |
31 | import. | |
a4c5f9aa | 32 | |
0b444cdb | 33 | 'git archimport' uses `tla` extensively in the background to access the |
f73ae1fc | 34 | Arch repository. |
a4c5f9aa | 35 | Make sure you have a recent version of `tla` available in the path. `tla` must |
0b444cdb | 36 | know about the repositories you pass to 'git archimport'. |
a4c5f9aa | 37 | |
0b444cdb | 38 | For the initial import, 'git archimport' expects to find itself in an empty |
a6080a0a | 39 | directory. To follow the development of a project that uses Arch, rerun |
0b444cdb | 40 | 'git archimport' with the same parameters as the initial import to perform |
f73ae1fc | 41 | incremental imports. |
a4c5f9aa | 42 | |
0b444cdb | 43 | While 'git archimport' will try to create sensible branch names for the |
2de9b711 TA |
44 | archives that it imports, it is also possible to specify Git branch names |
45 | manually. To do so, write a Git branch name after each <archive/branch> | |
d9cb5399 | 46 | parameter, separated by a colon. This way, you can shorten the Arch |
2de9b711 | 47 | branch names and convert Arch jargon to Git jargon, for example mapping a |
28394787 | 48 | "PROJECT{litdd}devo{litdd}VERSION" branch to "master". |
d9cb5399 | 49 | |
2de9b711 | 50 | Associating multiple Arch branches to one Git branch is possible; the |
d9cb5399 PB |
51 | result will make the most sense only if no commits are made to the first |
52 | branch, after the second branch is created. Still, this is useful to | |
53 | convert Arch repositories that had been rotated periodically. | |
54 | ||
55 | ||
a5c500b7 ML |
56 | MERGES |
57 | ------ | |
2de9b711 | 58 | Patch merge data from Arch is used to mark merges in Git as well. Git |
a4c5f9aa ML |
59 | does not care much about tracking patches, and only considers a merge when a |
60 | branch incorporates all the commits since the point they forked. The end result | |
2de9b711 | 61 | is that Git will have a good idea of how far branches have diverged. So the |
a4c5f9aa ML |
62 | import process does lose some patch-trading metadata. |
63 | ||
a6080a0a | 64 | Fortunately, when you try and merge branches imported from Arch, |
2de9b711 | 65 | Git will find a good merge base, and it has a good chance of identifying |
a6080a0a | 66 | patches that have been traded out-of-sequence between the branches. |
5077fa9c JH |
67 | |
68 | OPTIONS | |
69 | ------- | |
5077fa9c | 70 | |
a4c5f9aa ML |
71 | -h:: |
72 | Display usage. | |
73 | ||
74 | -v:: | |
a6080a0a | 75 | Verbose output. |
a4c5f9aa ML |
76 | |
77 | -T:: | |
a6080a0a | 78 | Many tags. Will create a tag for every commit, reflecting the commit |
a4c5f9aa ML |
79 | name in the Arch repository. |
80 | ||
42f4570c EW |
81 | -f:: |
82 | Use the fast patchset import strategy. This can be significantly | |
83 | faster for large trees, but cannot handle directory renames or | |
84 | permissions changes. The default strategy is slow and safe. | |
85 | ||
86 | -o:: | |
87 | Use this for compatibility with old-style branch names used by | |
0b444cdb | 88 | earlier versions of 'git archimport'. Old-style branch names |
28394787 JH |
89 | were category{litdd}branch, whereas new-style branch names are |
90 | archive,category{litdd}branch{litdd}version. In both cases, names given | |
d9cb5399 PB |
91 | on the command-line will override the automatically-generated |
92 | ones. | |
42f4570c EW |
93 | |
94 | -D <depth>:: | |
95 | Follow merge ancestry and attempt to import trees that have been | |
96 | merged from. Specify a depth greater than 1 if patch logs have been | |
97 | pruned. | |
98 | ||
99 | -a:: | |
6c0c7042 | 100 | Attempt to auto-register archives at `http://mirrors.sourcecontrol.net` |
42f4570c EW |
101 | This is particularly useful with the -D option. |
102 | ||
a4c5f9aa ML |
103 | -t <tmpdir>:: |
104 | Override the default tempdir. | |
105 | ||
106 | ||
107 | <archive/branch>:: | |
a6080a0a | 108 | Archive/branch identifier in a format that `tla log` understands. |
5077fa9c JH |
109 | |
110 | ||
5077fa9c JH |
111 | GIT |
112 | --- | |
9e1f0a85 | 113 | Part of the linkgit:git[1] suite |