我使用Git导入了SVN存储库:
git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git
Run Code Online (Sandbox Code Playgroud)
它最终确实取得了成功,虽然它在几次失败的情况下失败并且我不得不"重新启动"
git svn fetch
Run Code Online (Sandbox Code Playgroud)
然而,最终似乎一切都很好.(虽然现在写作时我开始怀疑我是否应该提供--preserve-empty-dirs额外的fetches?编辑: 不,我不应该.请看我的评论.)
然后我想创造.gitignore,所以我做了
git svn create-ignore
Run Code Online (Sandbox Code Playgroud)
这也成功了.
但最终的结果并不令人满意.它确实.gitignore在许多文件夹中生成了大量文件.似乎每次SVN都有svn:ignore属性时Git创建了相应的.gitignore文件.
虽然我想将它们合并到一个根.gitignore文件中.这可以通过git实现,因为它更加灵活,忽略允许在带有通配符(或没有通配符)的子目录中忽略.无论如何,我认为可以在根处自动将这些"子.gitignore"转换为单个"子".
而且我想拥有它,因为"SVN人"对我承诺超过二十个.gitignore文件感到不满意......
Ada*_*ura 25
我找到了解决方案.您必须使用show-ignore而不是create-ignore将输出保存到文件.
因此,在克隆存储库后执行以下命令:
git svn show-ignore > .gitignore
Run Code Online (Sandbox Code Playgroud)
从您拥有该.git目录的存储库根目录.