| git-archimport(1) | |
| ================= | |
| NAME | |
| ---- | |
| git-archimport - Import a GNU Arch repository into Git | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| 'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D <depth>] [-t <tempdir>] | |
| <archive>/<branch>[:<git-branch>]... | |
| DESCRIPTION | |
| ----------- | |
| Imports a project from one or more GNU Arch repositories. | |
| It will follow branches | |
| and repositories within the namespaces defined by the <archive>/<branch> | |
| parameters supplied. If it cannot find the remote branch a merge comes from | |
| it will just import it as a regular commit. If it can find it, it will mark it | |
| as a merge whenever possible (see discussion below). | |
| The script expects you to provide the key roots where it can start the import | |
| from an 'initial import' or 'tag' type of Arch commit. It will follow and | |
| import new branches within the provided roots. | |
| It expects to be dealing with one project only. If it sees | |
| branches that have different roots, it will refuse to run. In that case, | |
| edit your <archive>/<branch> parameters to define clearly the scope of the | |
| import. | |
| 'git archimport' uses `tla` extensively in the background to access the | |
| Arch repository. | |
| Make sure you have a recent version of `tla` available in the path. `tla` must | |
| know about the repositories you pass to 'git archimport'. | |
| For the initial import, 'git archimport' expects to find itself in an empty | |
| directory. To follow the development of a project that uses Arch, rerun | |
| 'git archimport' with the same parameters as the initial import to perform | |
| incremental imports. | |
| While 'git archimport' will try to create sensible branch names for the | |
| archives that it imports, it is also possible to specify Git branch names | |
| manually. To do so, write a Git branch name after each <archive>/<branch> | |
| parameter, separated by a colon. This way, you can shorten the Arch | |
| branch names and convert Arch jargon to Git jargon, for example mapping a | |
| "PROJECT{litdd}devo{litdd}VERSION" branch to "master". | |
| Associating multiple Arch branches to one Git branch is possible; the | |
| result will make the most sense only if no commits are made to the first | |
| branch, after the second branch is created. Still, this is useful to | |
| convert Arch repositories that had been rotated periodically. | |
| MERGES | |
| ------ | |
| Patch merge data from Arch is used to mark merges in Git as well. Git | |
| does not care much about tracking patches, and only considers a merge when a | |
| branch incorporates all the commits since the point they forked. The end result | |
| is that Git will have a good idea of how far branches have diverged. So the | |
| import process does lose some patch-trading metadata. | |
| Fortunately, when you try and merge branches imported from Arch, | |
| Git will find a good merge base, and it has a good chance of identifying | |
| patches that have been traded out-of-sequence between the branches. | |
| OPTIONS | |
| ------- | |
| -h:: | |
| Display usage. | |
| -v:: | |
| Verbose output. | |
| -T:: | |
| Many tags. Will create a tag for every commit, reflecting the commit | |
| name in the Arch repository. | |
| -f:: | |
| Use the fast patchset import strategy. This can be significantly | |
| faster for large trees, but cannot handle directory renames or | |
| permissions changes. The default strategy is slow and safe. | |
| -o:: | |
| Use this for compatibility with old-style branch names used by | |
| earlier versions of 'git archimport'. Old-style branch names | |
| were category{litdd}branch, whereas new-style branch names are | |
| archive,category{litdd}branch{litdd}version. In both cases, names given | |
| on the command-line will override the automatically-generated | |
| ones. | |
| -D <depth>:: | |
| Follow merge ancestry and attempt to import trees that have been | |
| merged from. Specify a depth greater than 1 if patch logs have been | |
| pruned. | |
| -a:: | |
| Attempt to auto-register archives at `http://mirrors.sourcecontrol.net` | |
| This is particularly useful with the -D option. | |
| -t <tmpdir>:: | |
| Override the default tempdir. | |
| <archive>/<branch>:: | |
| <archive>/<branch> identifier in a format that `tla log` understands. | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |