2

使用 reposurgeon 将 subversion 存储库转换为 Git 时,如何跳过前两次提交?

第一次 svn 提交使用错误的分支布局 ( trunk, tags, branches) 导入代码,第二次提交将其全部删除。

第三次提交是对正确分支布局 ( subdir/trunk, subdir/tags, subdir/branches) 的导入。

这个错误的开始似乎让 reposurgeon 感到困惑,因为生成的 Git 存储库只有一个提交:最初的错误开始。以后的所有提交都将被忽略。

这是我尝试过的:

# installed reposurgeon 3.29
mkdir foo
cd foo
repotool initialize foo svn git
# edited the Makefile and set REMOTE_URL
make stubmap
# edited the resulting authors map (foo.map)
echo "1..2 delete" >>foo.lift
make
4

2 回答 2

0

reposurgeon如果您从命令行克隆,我不熟悉bot,您可以指定要克隆的提交次数 + 要克隆的分支名称。

// Clona last X commits of branchA
git clone ... --depth=X --branch=branchA

现在您可以将此存储库添加到您的reposurgeon服务器

于 2015-12-19T23:16:00.620 回答
0

使用以下命令删除前两个 svn 提交:

<1>..<2> delete

此行的意思是“选择从旧 ID1到旧 ID 2(包括)的提交并删除它们”。或者,您可以使用以下语法:

<#1>..<#2> delete

这意味着“选择从第一次提交到第二次(包括)的提交并删除它们”。此语法适用于非 svn 输入存储库。注意——提交 #2 可能不是提交 #1 的子提交(例如,它们可能是来自 Git 存储库的两个根提交)。

选择器的1..2意思是“选择从第一个到第二个(包括)的事件并删除它们”。事件与提交不同——事件包括 blob(文件)、标记、重置等。因为 blob 事件必须出现在引用它们的提交之前,1..2所以很可能选择 blob,而不是提交。

于 2016-01-09T23:36:53.840 回答