Subversion,但不是Git,允许空文件夹是否正确?

时间:2013-10-06 12:03:08

标签: git svn version-control

令人惊讶的是,大量的谷歌搜索没有找到明确的引用,说明Subversion确实“允许空文件夹”。

广泛的测试似乎表明Git 允许空文件夹,而subversion 允许空文件夹。

任何人都可以提供明确的答案或参考:如果确实git不允许空文件夹。

任何人都可以提供明确的答案或参考:如果Subversion 确实允许空文件夹。 (例如,Subversion书籍,就空文件夹的主题实际上什么也没说,尽管它似乎是一个主要问题!)

3 个答案:

答案 0 :(得分:6)

正如我在this answer中解释的那样:

  • SVN是一个REVISION系统(它将文件和目录存储为revision的一部分,它是“文件系统树的状态”(带有文件和目录),用于计算增量即可。
    (这意味着,是的,允许空目录,因为它们是针对未来修订计算增量值所必需的。)

revision in svn

  • Git的核心是内容跟踪器(最初用于管理Linus Torvalds必须合并到他的Linux树中的数百个补丁)。 它仅跟踪内容,如 snapshots ,以便比较代表所述内容的SHA1(这是一种非常快的检查方式如果两个内容相同或不相同)。

git snapshot

由于空目录没有内容,因此它不是快照的一部分 请注意,这是实施问题,而不是基本的git存储设计问题 有关详情,请参阅“Git Book”。

答案 1 :(得分:3)

来自Git Wiki

  

目前Git索引(暂存区域)的设计只允许列出文件,没有人能够进行更改以允许空目录已经足够关注这种情况来补救它。

来自Subversion book

  

svn add

     

在工作副本中安排文件,目录或符号链接,以便添加到存储库。

答案 2 :(得分:-1)

顺便说一句,如果要在结帐中创建空文件夹,则可以使用子模块来获取它们:

Short

其中的j8 shenanigans只是获取正确数字位数的一种简便方法。唯一重要的部分是40位数字的ID并不全为零。 Checkout会创建一个空的子目录,以准备通过子模块克隆或您要对其进行管理填充的位置。