0

我的 svn repo 包含(除其他外)一个名为nativeLibrary的空目录。从我本地的 git 工作区中,git svn rebase没有抓取它。它也没有附带新的git svn clone

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

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

4

2 回答 2

2

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

由于没有文件,而且git不独立代表目录,所以git不能代表目录。由于 SVN 跟踪对目录树(文件系统)的更改,因此 svn 可以独立地表示目录。所以,在使用时git svn,svn 会报告一些 git 无法表示的东西,git 必须丢弃它。这不是一个 git 错误,它是一个合理的解决方案,因为 git 在其语言中甚至没有一个“词”来描述发生的事情。

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

于 2013-07-16T14:24:37.923 回答
0

我想这无关紧要,git svn只能怪罪于git自己。git 不跟踪空文件夹。如果您想强制 git 保留一个文件夹,请在其中放置一些文件,例如.gitignore.keep.

于 2013-07-16T14:15:13.693 回答