2016-02-28 39 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

我有更新的答案 –

相关问题