Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么SVN占用这么多空间?_Svn - Fatal编程技术网

为什么SVN占用这么多空间?

为什么SVN占用这么多空间?,svn,Svn,我正在从事一个规模约为1020MB的大型项目。这是因为,除了代码之外,版本控制中还有其他资源,如图形、XML配置等 .svn基本文件的大小约为998MB,使总签出大小约为2GB。据我所知,svn库是元信息,它的大小不应该太大 为什么SVN需要这么多空间?这样SVN revert就不需要联系服务器了 SVN实际上在本地存储文件的另一个副本。这就是为什么.svndir总结起来几乎与项目代码本身一样。对于二进制数据,svn在每个新版本上存储整个副本,而不是增量。因此,随着时间的推移,您将获得大型存储库

我正在从事一个规模约为1020MB的大型项目。这是因为,除了代码之外,版本控制中还有其他资源,如图形、XML配置等

.svn基本文件的大小约为998MB,使总签出大小约为2GB。据我所知,svn库是元信息,它的大小不应该太大


为什么SVN需要这么多空间?

这样
SVN revert
就不需要联系服务器了


SVN实际上在本地存储文件的另一个副本。这就是为什么
.svn
dir总结起来几乎与项目代码本身一样。

对于二进制数据,svn在每个新版本上存储整个副本,而不是增量。因此,随着时间的推移,您将获得大型存储库
.svn base
存储工作副本的原始状态-如果您有一个大的工作副本,那么您拥有相同大小的原始数据。

如果您的工作副本有许多更新,那么它的大小可能会增加,甚至超过签出内容可能显示的大小。运行
svn cleanup
将再次释放此空间。

那么文件的早期版本将全部存储?@kshitizzarma这是怎么回事?如果没有原始值作为起点,它应该如何计算这个差值呢?请注意,没有跟踪修改的方法,因为您可以以数百万种方式修改签出中的文件。@Mehrdad:这是错误的。您可以使用Git进行浅层签出,Git还可以压缩原始副本
git clone--depth 1
@KshitizSharma:如果你在Windows上,试试利用NTFS的压缩功能吧?除此之外,我不确定…@Mehrdad没问题。我将发布一个关于SVN网络压缩的单独问题。我想这个问题已经解决了。svn存储文本和二进制数据的增量。见:“颠覆,[…]使用二进制差分算法表示文件之间的差异,而不管它们是包含文本数据还是二进制数据。@PeterParker-这是一本书和理论,我尝试了存储库和实践。您可以使用一些二进制数据文件创建repo,提交一些有小改动的修订,然后测量repo大小-它将是
~size*N_提交
,而不是
SIZE+N*SMALLDELTA
不,我自己尝试过。唯一的问题是压缩数据,比如docx、jar或其他东西,但是如果你有一个.ppt(例如)并删除一些幻灯片,然后提交,提交的大小将不是整个ppt的大小。@PeterParker-我有一个混合数据(很多小文件,*.txt+*.bmp).Unversioned tree-3 MB,整个项目的大小:
“磁盘空间使用率:2 GB的107 MB”
存储库中的问题是目录树不平衡,单个目录中有2000个小文件。因此SVN需要为每个(小)文件编写更改为重写同一目录中的所有条目。这会在每个修订版中将ab添加到大约100KB。有关更多详细信息,请参阅我使用此从一个非常旧但非常活跃的本地存储库中回收了6GB!:)非常值得知道。我使用eclipse插件,如何进行svn清理?在不到24小时后,我有大约500MB用于一个非常小的项目工作时间。