所有
我正在逐行读取文件。每行都是具有特定存储库路径的svn update命令。我的代码如下所示:
while read line
do
eval $line 2> /tmp/outputfile
egrep -e "svn: Target path .* does not exist" /tmp/outputfile > /dev/null && echo $line >> /tmp/result
done < $SVN_TMP_FILE
基本上我想记录寻找过时目录的命令。
但是在while循环期间可能会发生冲突,在提示符中显示以下内容:
Conflict discovered in 'blablabla'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: svn: Can't read stdin: End of file found
终止循环,此后的命令不会被执行和记录。我的第一个线索是显示错误(无法读取标准输入)会导致读取行的过程崩溃,原因是两者都可能共享标准输入。有关如何避免此终止的任何想法?
答案 0 :(得分:0)
您可以将冲突解决方案指定为更新命令的一部分。摘自$ svn help update
:
--accept ARG : specify automatic conflict resolution action
('postpone', 'working', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
所以$ svn up --accept tf
会接受来自“他们”的所有更改。