Documentation / git-archimport.txton commit rebase -r: do not (re-)generate root commits with `--root` *and* `--onto` (e1fac53)
   1git-archimport(1)
   2=================
   3
   4NAME
   5----
   6git-archimport - Import a GNU Arch repository into Git
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]
  13               <archive/branch>[:<git-branch>] ...
  14
  15DESCRIPTION
  16-----------
  17Imports a project from one or more GNU Arch repositories.
  18It will follow branches
  19and repositories within the namespaces defined by the <archive/branch>
  20parameters supplied. If it cannot find the remote branch a merge comes from
  21it 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).
  23
  24The 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.
  27
  28It 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.
  32
  33'git archimport' uses `tla` extensively in the background to access the
  34Arch repository.
  35Make sure you have a recent version of `tla` available in the path. `tla` must
  36know about the repositories you pass to 'git archimport'.
  37
  38For the initial import, 'git archimport' expects to find itself in an empty
  39directory. To follow the development of a project that uses Arch, rerun
  40'git archimport' with the same parameters as the initial import to perform
  41incremental imports.
  42
  43While 'git archimport' will try to create sensible branch names for the
  44archives 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>
  46parameter, separated by a colon.  This way, you can shorten the Arch
  47branch names and convert Arch jargon to Git jargon, for example mapping a
  48"PROJECT{litdd}devo{litdd}VERSION" branch to "master".
  49
  50Associating multiple Arch branches to one Git branch is possible; the
  51result 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
  56MERGES
  57------
  58Patch merge data from Arch is used to mark merges in Git as well. Git
  59does 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
  61is that Git will have a good idea of how far branches have diverged. So the
  62import process does lose some patch-trading metadata.
  63
  64Fortunately, when you try and merge branches imported from Arch,
  65Git will find a good merge base, and it has a good chance of identifying
  66patches that have been traded out-of-sequence between the branches.
  67
  68OPTIONS
  69-------
  70
  71-h::
  72        Display usage.
  73
  74-v::
  75        Verbose output.
  76
  77-T::
  78        Many tags. Will create a tag for every commit, reflecting the commit
  79        name in the Arch repository.
  80
  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
  88        earlier versions of 'git archimport'.  Old-style branch names
  89        were category{litdd}branch, whereas new-style branch names are
  90        archive,category{litdd}branch{litdd}version.  In both cases, names given
  91        on the command-line will override the automatically-generated
  92        ones.
  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::
 100        Attempt to auto-register archives at `http://mirrors.sourcecontrol.net`
 101        This is particularly useful with the -D option.
 102
 103-t <tmpdir>::
 104        Override the default tempdir.
 105
 106
 107<archive/branch>::
 108        Archive/branch identifier in a format that `tla log` understands.
 109
 110
 111GIT
 112---
 113Part of the linkgit:git[1] suite