结账前是否可以确定工作副本的大小?

时间:2010-06-02 07:55:37

标签: svn

我想知道工作副本是否适合我的硬盘并且不想浪费时间和带宽。

所以我的问题是:在结账前是否可以确定工作副本的大小?

我确实可以访问存储库,但它的文件大小没有说什么。

4 个答案:

答案 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)

您无法预先知道尺寸。 如果你认识某人已经检查过,那么你可以问他们。