代码之家  ›  专栏  ›  技术社区  ›  guerda

是否可以在签出前确定工作副本的大小?

svn
  •  5
  • guerda  · 技术社区  · 14 年前

    我想看看工作副本是否适合我的硬盘,不想浪费时间和带宽。

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

    我确实可以访问存储库,但它的文件大小并没有说明任何问题。

    4 回复  |  直到 7 年前
        1
  •  3
  •   Edmund    14 年前

    工作副本的大小将略大于存储库中相应文件的两倍,因为它将每个文件的原始版本存储在 .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
    

    您可以手动求和这些值,或者通过管道连接到一个脚本,该脚本将求和第12-26列中的所有值(例如)。

        2
  •  1
  •   High Performance Mark    14 年前

    使用Tortoissesvn,我可以看到repo中文件的大小。但不是目录。这可能会有所帮助。

        3
  •  1
  •   Remik    7 年前

    因为我的名誉,我不能评论埃德蒙的回答。

    我通常使用下面的管道计算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的磁盘空间作为工作副本,再加上一些用于将来的需要。

        4
  •  0
  •   VoodooChild    14 年前

    你不能事先知道尺寸。 如果你认识一个签过的人,你可以问他们……