Svn复制目录使用的磁盘空间?

时间:2014-09-08 10:12:53

标签: svn diskspace

我正在使用svn。 我有一个名为插件的目录,我已经完成了对svn的承诺,而不是我的结帐。

在Svn之前,目录占用了913M:

# du -chs *
913M    addons

结帐到目录addons_svn:

# svn co http:..../addons addons_svn
# du -chs *
1.9G    addons_svn

这个空间的差异是正常的吗?

由于

2 个答案:

答案 0 :(得分:1)

这是完全正常的。 SVN持有版本化文件的副本,以便能够快速检查更改。

取自https://gcc.gnu.org/wiki/SvnSetup(由我标记):

  

在撰写本文时,GCC快照占用大约320Mb的空间。使用Subversion 1.3,典型的GCC工作副本需要640Mb到700Mb的空间(取决于文件系统,例如reiserfs优于ext3)。 “浪费”空间是因为SVN保留了每个文件的双重副本,以使常见操作完全脱机,因此非常快速的svn diff svn status等。)。 Subversion 1.4可能会有一种方法来压缩这个副本,以便浪费更少的空间(或完全禁用它,但你可能不希望这样)。

答案 1 :(得分:1)

您没有说出您正在使用的SVN版本。

SVN维护每个文件的最新版本,以便它可以快速执行差异和状态等操作。这也意味着它可以快速生成上传的增量,而无需与服务器通信。不幸的是,这意味着它需要两倍的空间来检查目录。在现代光盘上,这不会被视为一个问题,与即使消费者SSD提供的千兆字节存储相比,回购中的来源也很小。请注意,这不是网络传输的成本,因为文件只下载一次并写出两次 - 一次供您使用,一次用于SVN,以便在编辑文件之前查看文件。

旧版本的SVN将这些“工作基础”文件存储在名为.svn的隐藏目录中,每个目录一个。

SVN 1.7 uses a SQLite DB to store these files,此数据库的位置通常位于根结帐级别。