我们在一些本地目录中保留当前版本代码的图像,并且为了构建代码,我们使用此目录中的代码。在构建脚本中,我需要一种方法来确定image目录中的代码是否与存储库中的当前版本分支同步。如果是这样,我将在脚本中进行svn更新。修订号是否可以某种方式用于检测不同步条件?如果是这样的话?
Vadiraj
答案 0 :(得分:12)
svn status -u
添加工作修订版和服务器过时信息。
如果目录中没有非版本化文件,那么仅当status命令没有返回任何内容时它才是最新的。 否则*意味着它不是最新的,?表示非版本化,M修饰等。
换句话说,当且仅当以下内容返回0时,它才是最新的:
svn status -u | grep -E -c "^\s+[^\?]"
答案 1 :(得分:0)
快速直接的方式:
repoVersion="$(svn status -u --depth empty <myWCdir> | awk '{print $NF}')"
wcVersion="$(svn info --show-item revision <myWCdir>)"
然后,您可以将这两个数字进行比较,如下所示:
if [[ $repoVersion -eq $wcVersion ]]; then
echo "<myWCdir> is up to date"
else
echo "<myWCdir> is out of date"
fi
注意:简单的svn status -u
是一种方法。如果任何内容(在任何深度)发生更改,SVN都会破坏目录的rev#。