blob: a595a0ffeee56d8426907c9297078fac6977e5a3 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231git-archimport(1)
2=================
3
4NAME
5----
Junio C Hamano32a75272018-10-16 07:37:356git-archimport - Import a GNU Arch repository into Git
Junio C Hamano1a4e8412005-12-27 08:17:237
8
9SYNOPSIS
10--------
Junio C Hamano235a91e2006-01-07 01:13:5811[verse]
Junio C Hamanofce7c7e2008-07-02 03:06:3812'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]
Junio C Hamanoabcd65d2007-03-08 02:43:0013 <archive/branch>[:<git-branch>] ...
Junio C Hamano1a4e8412005-12-27 08:17:2314
15DESCRIPTION
16-----------
Junio C Hamano32a75272018-10-16 07:37:3517Imports a project from one or more GNU Arch repositories.
18It will follow branches
Junio C Hamano1a4e8412005-12-27 08:17:2319and repositories within the namespaces defined by the <archive/branch>
Junio C Hamano235a91e2006-01-07 01:13:5820parameters supplied. If it cannot find the remote branch a merge comes from
Junio C Hamanoa77a5132007-06-08 16:13:4421it will just import it as a regular commit. If it can find it, it will mark it
22as a merge whenever possible (see discussion below).
Junio C Hamano1a4e8412005-12-27 08:17:2323
Junio C Hamanoa77a5132007-06-08 16:13:4424The script expects you to provide the key roots where it can start the import
25from an 'initial import' or 'tag' type of Arch commit. It will follow and
26import new branches within the provided roots.
Junio C Hamano1a4e8412005-12-27 08:17:2327
Junio C Hamanoa77a5132007-06-08 16:13:4428It expects to be dealing with one project only. If it sees
29branches that have different roots, it will refuse to run. In that case,
30edit your <archive/branch> parameters to define clearly the scope of the
31import.
Junio C Hamano1a4e8412005-12-27 08:17:2332
Junio C Hamano1aa40d22010-01-21 17:46:4333'git archimport' uses `tla` extensively in the background to access the
Junio C Hamano1a4e8412005-12-27 08:17:2334Arch repository.
35Make sure you have a recent version of `tla` available in the path. `tla` must
Junio C Hamano1aa40d22010-01-21 17:46:4336know about the repositories you pass to 'git archimport'.
Junio C Hamano1a4e8412005-12-27 08:17:2337
Junio C Hamano1aa40d22010-01-21 17:46:4338For the initial import, 'git archimport' expects to find itself in an empty
Junio C Hamanoa77a5132007-06-08 16:13:4439directory. To follow the development of a project that uses Arch, rerun
Junio C Hamano1aa40d22010-01-21 17:46:4340'git archimport' with the same parameters as the initial import to perform
Junio C Hamano1a4e8412005-12-27 08:17:2341incremental imports.
42
Junio C Hamano1aa40d22010-01-21 17:46:4343While 'git archimport' will try to create sensible branch names for the
Junio C Hamano076ffcc2013-02-06 05:13:2144archives that it imports, it is also possible to specify Git branch names
45manually. To do so, write a Git branch name after each <archive/branch>
Junio C Hamanoabcd65d2007-03-08 02:43:0046parameter, separated by a colon. This way, you can shorten the Arch
Junio C Hamano076ffcc2013-02-06 05:13:2147branch names and convert Arch jargon to Git jargon, for example mapping a
Junio C Hamano2db3e752010-09-03 21:33:0648"PROJECT{litdd}devo{litdd}VERSION" branch to "master".
Junio C Hamanoabcd65d2007-03-08 02:43:0049
Junio C Hamano076ffcc2013-02-06 05:13:2150Associating multiple Arch branches to one Git branch is possible; the
Junio C Hamanoabcd65d2007-03-08 02:43:0051result will make the most sense only if no commits are made to the first
52branch, after the second branch is created. Still, this is useful to
53convert Arch repositories that had been rotated periodically.
54
55
Junio C Hamano1a4e8412005-12-27 08:17:2356MERGES
57------
Junio C Hamano076ffcc2013-02-06 05:13:2158Patch merge data from Arch is used to mark merges in Git as well. Git
Junio C Hamano1a4e8412005-12-27 08:17:2359does not care much about tracking patches, and only considers a merge when a
60branch incorporates all the commits since the point they forked. The end result
Junio C Hamano076ffcc2013-02-06 05:13:2161is that Git will have a good idea of how far branches have diverged. So the
Junio C Hamano1a4e8412005-12-27 08:17:2362import process does lose some patch-trading metadata.
63
Junio C Hamanoa77a5132007-06-08 16:13:4464Fortunately, when you try and merge branches imported from Arch,
Junio C Hamano076ffcc2013-02-06 05:13:2165Git will find a good merge base, and it has a good chance of identifying
Junio C Hamanoa77a5132007-06-08 16:13:4466patches that have been traded out-of-sequence between the branches.
Junio C Hamano1a4e8412005-12-27 08:17:2367
68OPTIONS
69-------
70
71-h::
72Display usage.
73
74-v::
Junio C Hamanoa77a5132007-06-08 16:13:4475Verbose output.
Junio C Hamano1a4e8412005-12-27 08:17:2376
77-T::
Junio C Hamanoa77a5132007-06-08 16:13:4478Many tags. Will create a tag for every commit, reflecting the commit
Junio C Hamano1a4e8412005-12-27 08:17:2379name in the Arch repository.
80
81-f::
82Use the fast patchset import strategy. This can be significantly
83faster for large trees, but cannot handle directory renames or
84permissions changes. The default strategy is slow and safe.
85
86-o::
87Use this for compatibility with old-style branch names used by
Junio C Hamano1aa40d22010-01-21 17:46:4388earlier versions of 'git archimport'. Old-style branch names
Junio C Hamano2db3e752010-09-03 21:33:0689were category{litdd}branch, whereas new-style branch names are
90archive,category{litdd}branch{litdd}version. In both cases, names given
Junio C Hamanoabcd65d2007-03-08 02:43:0091on the command-line will override the automatically-generated
92ones.
Junio C Hamano1a4e8412005-12-27 08:17:2393
94-D <depth>::
95Follow merge ancestry and attempt to import trees that have been
96merged from. Specify a depth greater than 1 if patch logs have been
97pruned.
98
99-a::
Junio C Hamanobeca3402017-04-27 02:21:51100Attempt to auto-register archives at `http://mirrors.sourcecontrol.net`
Junio C Hamano1a4e8412005-12-27 08:17:23101This is particularly useful with the -D option.
102
103-t <tmpdir>::
104Override the default tempdir.
105
106
107<archive/branch>::
Junio C Hamanoa77a5132007-06-08 16:13:44108Archive/branch identifier in a format that `tla log` understands.
Junio C Hamano1a4e8412005-12-27 08:17:23109
110
Junio C Hamano1a4e8412005-12-27 08:17:23111GIT
112---
Junio C Hamanof7c042d2008-06-06 22:50:53113Part of the linkgit:git[1] suite