我想知道工作副本是否适合我的硬盘并且不想浪费时间和带宽。
所以我的问题是:在结账前是否可以确定工作副本的大小?
我确实可以访问存储库,但它的文件大小没有说什么。
答案 0 :(得分:3)
工作副本将大于存储库中相应文件大小的两倍,因为它将每个文件的原始版本存储在.svn
子目录中。 (它也存储其他管理数据,如属性,但这不应该太多。)
您想要一些方法列出存储库中的文件(从您想要检查的子树),它们的大小,并总结它。我不认为svn
命令行工具直接执行此操作,但它会为每个文件执行此操作:
svn ls -v -R file:///d:/svn/edmund/fs/trunk
2891 edmund Oct 23 2009 ./
2867 edmund 140 Aug 14 2009 Makefile
2883 Edmund 12869 Oct 15 2009 block.c
2883 Edmund 9817 Oct 15 2009 file.c
2883 Edmund 7572 Oct 15 2009 fs-internal.h
2884 edmund 6845 Oct 16 2009 fs.c
2891 edmund 1407 Oct 23 2009 fs.h
2891 edmund Oct 23 2009 linux/
2867 edmund 208 Aug 14 2009 linux/Makefile
2891 edmund 6684 Oct 23 2009 linux/main.c
2882 edmund 4822 Oct 15 2009 notes.txt
2891 edmund 7408 Oct 23 2009 operations.c
2891 edmund 3834 Oct 23 2009 special.c
2880 edmund Oct 01 2009 test/
2869 edmund 695 Aug 16 2009 test/Makefile
2880 edmund 11220 Oct 01 2009 test/operations-test.c
2877 edmund 3826 Aug 20 2009 test/tree-test.c
2883 Edmund 23413 Oct 15 2009 tree.c
2883 Edmund Oct 15 2009 win/
2883 Edmund 28590 Oct 15 2009 win/main.c
您可以手动对这些进行求和,或者将其传递给一个scriptlet,该脚本将对第12-26列中的所有值进行求和(例如)。
答案 1 :(得分:1)
使用TortoiseSVN我可以看到repo中文件的大小。但不是目录。这可能有所帮助。
答案 2 :(得分:1)
由于我的声誉,我不能评论Edmund的答案。
我通常使用下面的管道来计算我们的Subversion服务器上某些路径(在本例中为trunk / project)中的内容大小:
svn ls -vR file:///path/to/repo/trunk/project | awk '{if ($3 != "") sum+=$3; i++} END {printf "\n%s: %.0f\n%s: %.0f %s","files qty",i,"wc size",sum/1024/1024/1024,"GB"}'
但是在工作副本的情况下,您还必须包括结帐也将生成的.svn目录的大小。在我的情况下,一个新的工作副本给.svn两倍。因此,对于10GB的内容,我计划为工作副本提供20GB的磁盘空间,以及一些用于未来需求的磁盘空间。
答案 3 :(得分:0)
您无法预先知道尺寸。 如果你认识某人已经检查过,那么你可以问他们。