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