如果使用reposurgeon将它转换为Git,我如何跳过subversion存储库的前两个提交?
第一个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
答案 0 :(得分:0)
我不熟悉reposurgeon
bot如果从命令行克隆,可以指定要克隆的提交数量+要克隆的分支名称。
// Clona last X commits of branchA
git clone ... --depth=X --branch=branchA
现在您可以将此存储库添加到reposurgeon
服务器
答案 1 :(得分:0)
使用以下命令删除前两个svn提交:
<1>..<2> delete
此行表示“选择从旧标识1
到旧标识2
(包括)的提交”并将其删除“。或者,您可以使用以下语法:
<#1>..<#2> delete
这意味着“选择从第一次提交到第二次提交(包括)的提交并删除它们”。此语法适用于非svn输入存储库。小心 - 提交#2可能不是提交#1的子代(例如,它们可能是来自Git存储库的两个根提交。)
1..2
选择器意味着“从第一个到第二个(包括)选择事件并删除它们”。事件与提交事件不同 - 事件包括blob(文件),标记,重置等。因为blob事件必须出现在引用它们的提交之前,1..2
可能会选择blob,而不是提交。