从 Subversion 获取最新标签

从 Subversion 获取最新标签

有没有办法确定颠覆中的最新标签?

对于我部署的应用程序,客户需要有另一台服务器,以便在实时服务器发生故障时可以访问。已经有一个自动系统将数据库复制到备份服务器。应用程序代码位于 Subversion 存储库中,我想编写一个脚本,自动将代码从 Subversion 复制到备份服务器。我有一个脚本可以执行此操作,但是,我需要手动告诉它要检索什么标签。有没有办法让这一切完全自动化。

该服务器运行的是 Redhat。

答案1

如果您的标签在排序时会按顺序列出,您可以按照如下方式获取最新的标签名称:

svn ls .../path/to/repo/tags | tail -n 1

如果您的项目的标签结构不是那么严格,svn ls则需要传递-v(详细)选项的结果并根据输出中的日期进行排序。

答案2

这个 shell 命令输出您的目录中最近创建的标签tags

svn log -v --limit 1 tagsURL | awk '/^   A/ { print $2 }'

如果您从签出的存储库中调用该命令,则可以使用相对 svn 路径标记^

svn log -v --limit 1 ^/tags | awk '/^   A/ { print $2 }'

答案3

我的理解是,标签只是您使用“svn copy”命令创建的主分支的副本。所以,如果您这样做,您不是给这些标签指定版本号吗?只需获取最高数字即可?

也许你指的是仓库的最新修订号?在这种情况下,它应该是这样的:

svn info https://www.myDomain.com/svn/myRepo | grep Revision | awk '{print $2}'

或者你可能想要:

svn ls https://www.myDomain.com/svn/myRepo/tags

然后,您可以对每个目录执行 svn info,其中具有最高“上次更改修订号”的目录将成为最新标签。

答案4

如果你有好的版本号

svn ls https://www.myDomain.com/svn/myRepo | sort -V | tail -n 1

相关内容