2013-02-26 36 views
3

我在写一个bash脚本,需要从几个远程subversion存储库中获取源代码。我使用svn checkout -q来避免显示混乱输出的长文件列表,但现在我正在寻找一种干净的方式在每个svn checkout期间向用户显示进度信息。 wgetcurl的进展指标。我将在OSX和Linux中拥有用户。 pv可用于目前为止,但我还没有找到如何使用svn checkout。我还应该说,我不是在寻找使用GUI窗口的工具,而是使用纯文本工具。在文本模式下svn结帐的进度条

任何建议将非常欢迎!谢谢!

+0

您是否希望通过字节数报告进展情况,或者通过文件算什么? – alroc 2013-02-26 17:14:52

+0

@alroc我在想整个下载的百分比,但我没有找到任何简单的方法来确定'svn'的总结帐尺寸。总字节数将是下一个最好的事情。 – Dominique 2013-02-26 17:22:32

+0

使用SVN并不容易得到字节数;我不认为服务器将这些数据作为流程的一部分提供给客户端。文件计数是我认为你最好的选择。 – alroc 2013-02-26 17:41:07

回答

0

尝试:

svn list -v -R URL 

可以解析的结果,并通过做文件数的进度。

+0

准确地说,我正在建议。 – alroc 2013-02-26 17:40:18

+0

那么如何获得已获取内容的文件数?使用'stat'? – Dominique 2013-02-26 19:05:37

+0

svn co> URL 然后做一个循环与 wc -l文件 – 2013-02-26 20:09:38

0

最近的事情,我发现:http://www.danielkraaij.nl/2014/03/30/subversion-progressbar-in-bash/

n=$(svn info -R svn://svn/project/trunk | grep "URL: " | uniq | wc -l) 

n=$(svn info -R svn://svn/project/trunk | grep "URL: " | uniq | wc -l) 
i=1 
while read line filename 
    do 
    counter=$((100*(++i)/n)) 
    echo -e "($counter %)\n" 
    echo -e "filename: $filename \n" 
done < <(svn co svn://svn/project/trunk /var/www/project) 

dialog --backtitle "Subversion Installer" --title "SVN Checkout" --gauge "Getting total file count" 7 120 < <(
    n=$(svn info -R svn://svn/project/trunk | grep "URL: " | uniq | wc -l) 
    i=1 
    while read line filename 
     do 
     counter=$((100*(++i)/n)) 
     echo "XXX" 
     echo "$counter" 
     echo "filename: $filename" 
     echo "XXX" 

    done < <(svn co svn://svn/project/trunk /var/www/project) 
)