GIT-ARCHIMPORT(1)
π¦ GIT-ARCHIMPORT(1) π¦
okay bestie, so this is the git-archimport page from the Git Manual β yes, that Git, and yes, this one's about dragging your whole GNU Arch situation kicking and screaming into Git π
β¨ NAME β¨
git-archimport β literally the tool that imports a GNU Arch repository into Git π
πΈ SYNOPSIS πΈ
git archimport [-h] [-v] [-o] [-a] [-f] [-T] [-D <depth>] [-t <tempdir>]
<archive>/<branch>[:<git-branch>]...
π DESCRIPTION π
So this imports a project from one or more GNU Arch repositories. It'll follow branches and repositories inside the namespaces that your <archive>/<branch> parameters define β like, wherever you point it, it goes π
If it can't find the remote branch a merge came from, no stress β it just imports it as a regular commit. But if it can find it, it'll mark it as a merge whenever possible (there's a whole discussion about this below, keep reading π«Ά).
The script wants you to hand it the key roots β the spots where it can start the import from an initial import or a tag type of Arch commit. From there it follows and imports new branches within the roots you gave it.
It also expects to be dealing with one project only. If it sees branches with different roots, it straight up refuses to run. π In that case, fix your <archive>/<branch> parameters so the scope of the import is crystal clear.
git archimport uses tla extensively in the background to access the Arch repository. So make sure you have a recent version of tla available in the path β and tla has to actually know about the repositories you pass to git archimport. No cap.
For the initial import, git archimport expects to find itself in an empty directory. And then, to follow the development of a project that uses Arch, you just rerun git archimport with the same parameters as the initial import to do incremental imports π
Now here's the cute part: while git archimport will try to create sensible branch names for the archives it imports, you can also specify Git branch names manually β¨ To do that, write a Git branch name after each <archive>/<branch> parameter, separated by a colon. This way you can shorten those Arch branch names and convert Arch jargon to Git jargon β for example mapping a "PROJECT--devo--VERSION" branch to "master" π
And yes, you can associate multiple Arch branches to one Git branch. It'll only really make the most sense if no commits are made to the first branch after the second branch is created. Still useful though β perfect for converting Arch repositories that had been rotated periodically π
π MERGES π
Patch merge data from Arch is used to mark merges in Git as well. But Git does not care much about tracking patches β it only considers a merge when a branch incorporates all the commits since the point where they forked. The end result? Git has a good idea of how far branches have diverged. So yeah, 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. slay πβ¨
π OPTIONS π
-hβ display usage π-vβ verbose output, so you can actually see what's going on π-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 it 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 ofgit archimport. Old-style branch names werecategory--branch, whereas new-style branch names arearchive,category--branch--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 than1if patch logs have been pruned πͺ-aβ attempt to auto-register archives athttp://mirrors.sourcecontrol.net. This is particularly useful with the-Doption π«Ά-t <tmpdir>β override the default tempdir π<archive>/<branch>β the<archive>/<branch>identifier, in a format thattla logunderstands π§
lowkey important: -f is the fast-and-loose one β it cannot handle directory renames or permissions changes. The default is slow and safe for a reason, bestie π
π GIT π
Part of the git(1) suite πΈ
okay that's the whole page, ily, go import something iconic π
Git 2.56.0 Β· 2026-09-27 β that's the version and date, mwah π«Άπ
π¦ where this page comes from
- arch rolling: git 2.56.0-1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms