我想用最新的SVN版本号开始标记我已部署的二进制文件.
但是,因为SVN是基于文件而不是基于目录/项目的,所以我需要扫描所有目录和子目录的文件,以确定最高版本号.
svn info在root上使用不起作用(它只报告该目录的版本,而不是子目录中的文件):
我想知道是否有使用该svn命令执行此操作的快捷方式.否则,任何人都可以建议一个网络效率的简单脚本(我更喜欢它根本没有点击远程服务器)?
我也明白,一个可供选择的方法是保持一个版本的文件与svn:keywords.这工作(我已经在其他项目上使用过它),但我厌倦了确保文件是脏的并处理不可避免的合并冲突.
回答我svn up在调用svn info根目录之前看到我的问题在于没有做正确的事情:
$ svn info
Path: .
...
Last Changed Author: fak
Last Changed Rev: 713
Last Changed Date: 2008-08-29 00:40:53 +0300 (Fri, 29 Aug 2008)
$ svn up
At revision 721.
$ svn info
Path: .
...
Revision: 721
Last Changed Author: reuben
Last Changed Rev: 721
Last Changed Date: 2008-08-31 22:55:22 +0300 (Sun, 31 Aug 2008)
Run Code Online (Sandbox Code Playgroud) 喜欢这个问题,但不需要实际查询SVN服务器.这是一个基于Web的项目,所以我想我将只使用存储库作为公共视图(除非有人可以告诉我为什么这是一个坏主意).我假设这个信息在某个文件.svn夹的文件中,但是在哪里,我该如何解析呢?我想做一些像SO那样的事情,在右下角进行修改.
Python或PHP代码如果你手头有它,或者只是朝着正确的方向发展,那就很受欢迎了.
请注意,在本页的右下角,它有SVN修订版ID?我假设这是动态的.
我希望将它添加到我的一些网站,就像在源代码中的注释,以确保代码推送正在进行.
注意:您还可以假设相关站点的工作目录是有问题的repo的svn签出.
编辑:我正在寻找全球修订号,而不是我正在查看的文件的修订号.
我知道这个问题已经弹出好几次了,就像这里一样:将subversion存储库编号转换为代码.
但要么我理解太复杂,要么对我的项目来说过于复杂.这是我的简要设置:几个开发人员使用visual studio 2012和ankhsvn连接到我们的subversion存储库,开发一个.net Web应用程序.开发服务器使用cruisecontrol.net同步存储库中的最新文件.测试服务器,手动复制特定修订版以进行QA.
请求是在站点上显示最新版本,以便测试人员知道他们正在查看的版本.
什么是最简单的方法?是否有一些直接从代码中获取它的方法(最佳方案)?可以在cruisecontrol.net上为我做这件事(但是这会离开手动部署的测试服务器).我搜索和搜索了许多解决方案似乎很麻烦,我只是想知道在我开始构建一个精心设计的装置之前是否有更简单的方法.