2013-02-26 54 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) 
)