blob: 163b9f6f4140d787e3edccd7c13deadff789c3f3 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231git-archimport(1)
2=================
3
4NAME
5----
Junio C Hamano076ffcc2013-02-06 05:13:216git-archimport - Import an 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-----------
17Imports a project from one or more Arch repositories. It will follow branches
18and repositories within the namespaces defined by the <archive/branch>
Junio C Hamano235a91e2006-01-07 01:13:5819parameters supplied. If it cannot find the remote branch a merge comes from
Junio C Hamanoa77a5132007-06-08 16:13:4420it will just import it as a regular commit. If it can find it, it will mark it
21as a merge whenever possible (see discussion below).
Junio C Hamano1a4e8412005-12-27 08:17:2322
Junio C Hamanoa77a5132007-06-08 16:13:4423The script expects you to provide the key roots where it can start the import
24from an 'initial import' or 'tag' type of Arch commit. It will follow and
25import new branches within the provided roots.
Junio C Hamano1a4e8412005-12-27 08:17:2326
Junio C Hamanoa77a5132007-06-08 16:13:4427It expects to be dealing with one project only. If it sees
28branches that have different roots, it will refuse to run. In that case,
29edit your <archive/branch> parameters to define clearly the scope of the
30import.
Junio C Hamano1a4e8412005-12-27 08:17:2331
Junio C Hamano1aa40d22010-01-21 17:46:4332'git archimport' uses `tla` extensively in the background to access the
Junio C Hamano1a4e8412005-12-27 08:17:2333Arch repository.
34Make sure you have a recent version of `tla` available in the path. `tla` must
Junio C Hamano1aa40d22010-01-21 17:46:4335know about the repositories you pass to 'git archimport'.
Junio C Hamano1a4e8412005-12-27 08:17:2336
Junio C Hamano1aa40d22010-01-21 17:46:4337For the initial import, 'git archimport' expects to find itself in an empty
Junio C Hamanoa77a5132007-06-08 16:13:4438directory. To follow the development of a project that uses Arch, rerun
Junio C Hamano1aa40d22010-01-21 17:46:4339'git archimport' with the same parameters as the initial import to perform
Junio C Hamano1a4e8412005-12-27 08:17:2340incremental imports.
41
Junio C Hamano1aa40d22010-01-21 17:46:4342While 'git archimport' will try to create sensible branch names for the
Junio C Hamano076ffcc2013-02-06 05:13:2143archives that it imports, it is also possible to specify Git branch names
44manually. To do so, write a Git branch name after each <archive/branch>
Junio C Hamanoabcd65d2007-03-08 02:43:0045parameter, separated by a colon. This way, you can shorten the Arch
Junio C Hamano076ffcc2013-02-06 05:13:2146branch names and convert Arch jargon to Git jargon, for example mapping a
Junio C Hamano2db3e752010-09-03 21:33:0647"PROJECT{litdd}devo{litdd}VERSION" branch to "master".
Junio C Hamanoabcd65d2007-03-08 02:43:0048
Junio C Hamano076ffcc2013-02-06 05:13:2149Associating multiple Arch branches to one Git branch is possible; the
Junio C Hamanoabcd65d2007-03-08 02:43:0050result will make the most sense only if no commits are made to the first
51branch, after the second branch is created. Still, this is useful to
52convert Arch repositories that had been rotated periodically.
53
54
Junio C Hamano1a4e8412005-12-27 08:17:2355MERGES
56------
Junio C Hamano076ffcc2013-02-06 05:13:2157Patch merge data from Arch is used to mark merges in Git as well. Git
Junio C Hamano1a4e8412005-12-27 08:17:2358does not care much about tracking patches, and only considers a merge when a
59branch incorporates all the commits since the point they forked. The end result
Junio C Hamano076ffcc2013-02-06 05:13:2160is that Git will have a good idea of how far branches have diverged. So the
Junio C Hamano1a4e8412005-12-27 08:17:2361import process does lose some patch-trading metadata.
62
Junio C Hamanoa77a5132007-06-08 16:13:4463Fortunately, when you try and merge branches imported from Arch,
Junio C Hamano076ffcc2013-02-06 05:13:2164Git will find a good merge base, and it has a good chance of identifying
Junio C Hamanoa77a5132007-06-08 16:13:4465patches that have been traded out-of-sequence between the branches.
Junio C Hamano1a4e8412005-12-27 08:17:2366
67OPTIONS
68-------
69
70-h::
71Display usage.
72
73-v::
Junio C Hamanoa77a5132007-06-08 16:13:4474Verbose output.
Junio C Hamano1a4e8412005-12-27 08:17:2375
76-T::
Junio C Hamanoa77a5132007-06-08 16:13:4477Many tags. Will create a tag for every commit, reflecting the commit
Junio C Hamano1a4e8412005-12-27 08:17:2378name in the Arch repository.
79
80-f::
81Use the fast patchset import strategy. This can be significantly
82faster for large trees, but cannot handle directory renames or
83permissions changes. The default strategy is slow and safe.
84
85-o::
86Use this for compatibility with old-style branch names used by
Junio C Hamano1aa40d22010-01-21 17:46:4387earlier versions of 'git archimport'. Old-style branch names
Junio C Hamano2db3e752010-09-03 21:33:0688were category{litdd}branch, whereas new-style branch names are
89archive,category{litdd}branch{litdd}version. In both cases, names given
Junio C Hamanoabcd65d2007-03-08 02:43:0090on the command-line will override the automatically-generated
91ones.
Junio C Hamano1a4e8412005-12-27 08:17:2392
93-D <depth>::
94Follow merge ancestry and attempt to import trees that have been
95merged from. Specify a depth greater than 1 if patch logs have been
96pruned.
97
98-a::
99Attempt to auto-register archives at http://mirrors.sourcecontrol.net
100This is particularly useful with the -D option.
101
102-t <tmpdir>::
103Override the default tempdir.
104
105
106<archive/branch>::
Junio C Hamanoa77a5132007-06-08 16:13:44107Archive/branch identifier in a format that `tla log` understands.
Junio C Hamano1a4e8412005-12-27 08:17:23108
109
Junio C Hamano1a4e8412005-12-27 08:17:23110GIT
111---
Junio C Hamanof7c042d2008-06-06 22:50:53112Part of the linkgit:git[1] suite