我的svn repo包含一个名为 nativeLibrary 的空目录(等等)。从我当地的git工作区, git svn rebase 不会抓住它。它也没有新的 git svn clone 。
Subversion确实在我的并行svn本地工作空间中获取了该目录。如果我删除它,然后执行 svn up ,它就会回来。
知道为什么 git svn rebase (或 fetch )没有抓住它?有什么方法可以强迫它吗?任何调试建议?感谢。
答案 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
。