2016-02-28 79 views
0

所以,我正在處理一個bash腳本來管理我通過命令行手動執行的一些版本控制命令。我爲什麼要這麼做是一個漫長的故事,而不僅僅是使用其中的一種SVN工具。簡短的回答:我使用Git和SVN,具有相同的代碼庫,但出於不同的目的。這些腳本允許我一次執行所有命令。Bash&SVN:SVN命令需要用戶反饋時如何處理?

無論如何,我已經把腳本寫得很好。一切都很完美。我關心的是SVN提示用戶輸入的時間。我在想的最大的問題是合併衝突。每當從服務器下載文件時發生衝突,它就會提示用戶對該衝突採取行動。

理想情況下,我想在執行過程中禁止SVN命令的所有輸出,並且如果存在合併衝突,只需推遲它們,然後在最後告訴用戶此類衝突存在(用戶可以進入並解決他們)。

所以,對於這個問題:有沒有辦法使用bash來處理這些用戶輸入提示。爲了檢測它們,對它們做出響應並保持過程正常進行?

爲了討論起見,讓我們來看看這個簡單的SVN命令。假設這個命令是在一個Bash腳本中的,當它被執行時會有一個合併衝突。我可以做什麼,如果有的話?

svn update . 

在此先感謝。

回答

2

我使用

svn update my_checkout_path --accept postpone --config-option config:miscellany:preserved-conflict-file-exts=* 

哪裏--accept postpone是跳過所有衝突自動操作和preserved-conflict-file-exts是dissallow自動合併的所有文件。

瞭解更多:

更新

器檢測衝突情況下,你可以看看Summary of conflicts字符串update輸出(如果你確定有使用英文版)。

+0

太棒了,太棒了。有沒有辦法通過狀態碼或其他方式讓bash檢測到衝突是否存在?我想我可以再做SVN狀態和搜索爲C標記的內容,但我希望的性能更高的方式做到這一點(即,不必再次查詢庫) – user2223059

+0

我有更新的答案 –

相關問題