如何检查文件是否在 svn 中更改并在脚本中根据它决定下一步操作

How to check if a file is changed in svn and decide the next action based on it in a script

我想编写一个 bash 脚本,如果文件发生更改,我将提交。 是否有 returns true 或 false 的命令,以便我可以在我的“如果文件已更改?”

中检查它

我有:

如果 ???

svn --trust-server-cert --non-interactive --username MYUSERNAME --password MYPASSWORD 提交。 -m “我的评论”`;

我创建了一个 .sh 文件,这里的内容只是为了测试返回的 svn 状态,即使文件没有变化,它 returns "$SVNST 不为空":

#!/bin/bash
echo "Hello world"
SVNST=$`svn status MYFILE`
echo $SVNST
if [ -z "$SVNST" ]
then
      echo "$SVNST is empty"
else
      echo "$SVNST is NOT empty"
fi

您在 svn 调用之前有一个额外的 $,这导致您的 -z 零检查始终为假,因为总是有 $$SVNST 的开头。变化:

SVNST=$`svn status MYFILE`

至:

SVNST=`svn status MYFILE`

您的脚本将按预期运行。