gpt4 book ai didi

Linux 和 SVN : Need a shelll script to transfer updated files to test server after making an svn update

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:24 24 4
gpt4 key购买 nike

任务/问题是:我们希望使用 SVN 遵循正确的开发方法。这些项目将使用 PHP、Apache 服务器和 Linux 操作系统。流程应该是这样

  1. 开发人员在本地副本(本地计算机)上处理代码。本地副本链接到 SVN 仓库(我们自己的 svn 仓库)
  2. 对于每个已完成的任务,都有一个 SVN 提交。
  3. 有中间层服务器,它有来自同一个SVN repo 的代码。该层仅用于从 repo 获取 SVN 更新,然后将更新的文件传输到测试服务器。

注意:多个项目有多个测试服务器。中间层将在所有项目之间通用。将在此处确定要传输更新文件的目标测试服务器。

我需要第 3 步的帮助。

如何获取/维护不同项目的所有更新文件的列表。然后一个 shell 脚本来选择源目录(在中间层)和目标目录(测试服务器),然后 rsync 测试服务器上的所有更新文件。所有服务器都在同一个网络上。

最佳答案

我必须同意 H2CO3 的评论。话虽如此,有可能svn 实现你所需要的:

svn merge -r BASE:HEAD --dry-run .

将为您提供自上次 svn update 以来已更新的所有文件的列表。在 sedawkperl 的帮助下,您可以轻松地将其合并到适合 rsync< 使用的包含列表中。这是另一个可能有用但更冗长且更难解析的类似命令:

svn log -r BASE:HEAD -v

但是我会质疑 rsync 是否是适合这里工作的工具。为什么不直接在测试服务器上使用 svn 呢?为什么你甚至需要中间的服务器?您已经说过所有服务器都在同一个网络上,所以您可能还有一个没有说明的额外要求?

最后,强烈推荐大家看看git-svn .有loads of good introductory articles在线帮助解决这个问题,因此当您的 git 触手可及时,更多的事情变得可能。我很高兴地使用 git-svn 与一个主要停留在 svn 上的团队合作了一年多,如果我不告诉他们他们就不会更聪明他们是我在做什么。 (我最终也将它们转换为 git,但那是另一回事了 :-)

关于Linux 和 SVN : Need a shelll script to transfer updated files to test server after making an svn update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12172395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com