4
我们在本地目录中保留当前发布代码的图像,并且构建我们在此目录中使用代码的代码。在构建脚本中,我需要一种方法来确定图像目录中的代码是否与存储库中的当前版本分支同步。如果是这样的话,我会在脚本中做一个svn更新。修订版号可以用来检测不同步条件吗?如果是这样如何?我如何知道我的工作副本是否不同步
Vadiraj
我们在本地目录中保留当前发布代码的图像,并且构建我们在此目录中使用代码的代码。在构建脚本中,我需要一种方法来确定图像目录中的代码是否与存储库中的当前版本分支同步。如果是这样的话,我会在脚本中做一个svn更新。修订版号可以用来检测不同步条件吗?如果是这样如何?我如何知道我的工作副本是否不同步
Vadiraj
svn status -u
增加了工作修订版本和服务器过期信息。
如果在目录中没有非版本化的文件,那么只有当状态命令不返回任何内容时,它才是最新的。 否则*表示它不是最新的?是指非版本中,M - 修改等
换句话说,它是最新的当且仅当下面的返回值为0:
svn status -u | grep -E -c "^\s+[^\?]"
我在标题对不起,我写的工作副本。它不是实际的工作副本,而是源代码的图像。我们不会在这里修改任何文件,并且一切都是版本化的。所以,如果我做svn status -u和grep for *,并且发现* s意味着它不同步,那么我会做一个svn更新。但是当我进行svn更新时,会出现冲突。我们在这个本地目录中没有M个文件。如果出现冲突,我将如何通过脚本解决它? – vadiraj
做svn checkout也会带来最新的文件吧? svn结帐和svn更新有什么区别? – vadiraj
如果您不修改副本,而只是定期更新副本 - 那么不会有任何冲突 –