“svn:无法读取标准输入:发现文件结尾”会导致shell中的文件读取崩溃

时间:2012-06-08 19:50:43

标签: svn shell

所有

我正在逐行读取文件。每行都是具有特定存储库路径的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

终止循环,此后的命令不会被执行和记录。我的第一个线索是显示错误(无法读取标准输入)会导致读取行的过程崩溃,原因是两者都可能共享标准输入。有关如何避免此终止的任何想法?

1 个答案:

答案 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会接受来自“他们”的所有更改。