git svn无法获取目录

时间:2013-07-16 14:07:22

标签: git svn

我的svn repo包含一个名为 nativeLibrary 的空目录(等等)。从我当地的git工作区, git svn rebase 不会抓住它。它也没有新的 git svn clone

Subversion确实在我的并行svn本地工作空间中获取了该目录。如果我删除它,然后执行 svn up ,它就会回来。

知道为什么 git svn rebase (或 fetch )没有抓住它?有什么方法可以强迫它吗?任何调试建议?感谢。

2 个答案:

答案 0 :(得分:2)

Git修订文件和SVN修订文件系统。虽然两者都涉及相同的工作领域,但它们的工作方式各不相同。对于大多数情况,这些差异不会扩展到用户,在其他情况下它们会变得明显。

由于没有文件,并且git不能独立地表示目录,因此git不能代表该目录。由于SVN跟踪对目录树(文件系统)的更改,因此svn可以独立地表示目录。因此,当使用git svn时,svn会报告git无法表示的内容,而git必须删除它。这不是一个git bug,考虑到git在其语言中甚至没有“单词”来描述发生的事情,这是一个合理的解决方案。

Git来自一系列基于文件的源代码控制系统。基于文件的源代码控制系统都不能独立地表示目录,它总是作为被跟踪文件的“后影响”来完成。因此,如果您有一个文件(建议使用.gitignore),那么该文件将具有一个目录位置,并且该目录将及时创建以将该文件放在正确的位置。

答案 1 :(得分:0)

我认为这与git svn无关,仅仅归咎于git。 git不跟踪空文件夹。如果你想强制git保留一个文件夹,请在其中放置一些文件,例如.gitignore.keep