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."
)
我正在将 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."
)