Skip to content

git-archimport

将 GNU Arch 存储库导入 Git

概要

bash
git archimport [-h] [-v] [-o] [-a] [-f] [-T] [-D <depth>] [-t <tempdir>]
	       <archive>/<branch>[:<git-branch>]...

描述

从一个或多个 GNU Arch 存储库导入项目。它将跟踪由提供的 <archive>/<branch> 参数定义的命名空间内的分支和存储库。如果它找不到合并来源的远程分支,它将只将其作为常规提交导入。如果能找到,它将在可能时将其标记为合并(见下文讨论)。

该脚本期望你提供可以从 'initial import' 或 'tag' 类型的 Arch 提交开始导入的密钥根。它将跟踪并在提供的根内导入新分支。

它期望只处理一个项目。如果它看到具有不同根的分支,它将拒绝运行。在这种情况下,编辑你的 <archive>/<branch> 参数以明确定义导入范围。

'git archimport' 在后台广泛使用 tla 来访问 Arch 存储库。确保你有最新版本的 tla 可用。tla 必须知道你传递给 'git archimport' 的存储库。

对于初始导入,'git archimport' 期望自己处于空目录中。要跟踪使用 Arch 的项目的开发,请使用与初始导入相同的参数重新运行 'git archimport' 以执行增量导入。

虽然 'git archimport' 会尝试为导入的存档创建合理的分支名称,但也可以手动指定 Git 分支名称。为此,在每个 <archive>/<branch> 参数后写入 Git 分支名称,用冒号分隔。这样,你可以缩短 Arch 分支名称并将 Arch 术语转换为 Git 术语。

将多个 Arch 分支关联到一个 Git 分支是可能的;只有在创建第二个分支后没有对第一个分支进行提交时,结果才最有意义。不过,这对于转换定期轮换的 Arch 存储库很有用。

合并

来自 Arch 的补丁合并数据也用于在 Git 中标记合并。Git 不太关心跟踪补丁,只在分支包含自它们分叉以来的所有提交时才考虑合并。最终结果是 Git 将很好地了解分支分歧的程度。因此导入过程确实会丢失一些补丁交换元数据。

幸运的是,当你尝试合并从 Arch 导入的分支时,Git 将找到良好的合并基础,并且有很大机会识别在分支之间乱序交换的补丁。

选项

-h

显示用法。

-v

详细输出。

-T

多标签。将为每个提交创建一个标签,反映 Arch 存储库中的提交名称。

-f

使用快速补丁集导入策略。对于大型树来说,这可能显著更快,但无法处理目录重命名或权限更改。默认策略是缓慢而安全的。

-o

用于与早期版本 'git archimport' 使用的旧式分支名称兼容。旧式分支名称为 category--branch,而新式分支名称为 archive,category--branch--version。在两种情况下,命令行上给出的名称将覆盖自动生成的名称。

-D <depth>

跟踪合并祖先并尝试导入已从中合并的树。如果补丁日志已被修剪,请指定大于 1 的深度。

-a

尝试在 http://mirrors.sourcecontrol.net 自动注册存档。这与 -D 选项特别有用。

-t <tmpdir>

覆盖默认临时目录。

<archive>/<branch>

tla log 理解的格式的 <archive>/<branch> 标识符。

Git

git(1) 套件的一部分

基于 CC BY-NC-SA 3.0 许可发布