if 条件检查 tortoiseSVN 更新为 linux bash

if condition for checking a tortoiseSVN update into a linux bash

我正在将 SVN 服务器用于 linux computer.I 我正在尝试开发 bash 代码以进行自动编译。问题是如果我的 SVN 服务器没有更新,我不想编译这些文件。所以我做的第一件事就是检查更新。

这样:

if svn update; then

...

fi

问题是,即使没有更新,它也会进入 if 条件,因为它必须检查更新。我想知道是否有一种方法可以检查是否发生了更新。

谢谢。

我建议使用 svn 挂钩而不是临时脚本,但您需要将它们放在服务器端。

这就是说,如果您仍然需要构建自己的脚本,您需要注意如果没有发生错误,svn update 命令将计算为真。这与是否真正更新文件的命令无关。因此,您需要检查当前的 svn 版本和远程存储库的 svn 版本。如果它们不同,那么您可以执行 svn update 和任何其他所需的命令。

#!/bin/bash

REMOTE_REPO="svn://path/to/remote/repo"
LOCAL_REPO="/path/to/local/repo"

REMOTE_REV=$(svn info $REMOTE_REPO | grep '^Revision:' | awk {' print  '})
LOCAL_REV=$(svn info $LOCAL_REPO | grep '^Revision:' | awk {' print  '})

if [ $REMOTE_REV -ne $LOCAL_REV ]; then
    cd $LOCAL_REPO
    svn up

    # Add any other command here
fi

最简单的方法:

[ $(svn up|wc -l) != 2 ] && (
  echo "Your code here"
) || (
  echo "No changes."
)