【问题标题】:Svn - get the list of all repos on a server so I can svnsyncSvn - 获取服务器上所有 repos 的列表,以便我可以 svnsync
【发布时间】:2010-05-11 17:29:16
【问题描述】:

我正在尝试创建客户现有 svn 存储库的备份,该存储库可通过 http 公开获得。

如果可能的话,我希望能够从任何计算机自动创建新的存储库,而不必将控制台访问服务器的权限授予外部方(即用户可以在我的 svn repo 目录上执行ls )

我的问题是我需要知道服务器上的 svn 存储库列表 - 这不是一个固定列表,因为用户会随着时间的推移添加新的存储库。

我可以通过 Apache 的 mod_dav_svn 模块,使用 SVNListParentPath On 指令在 html 页面上列出存储库。我得到了这个页面:http://svn.ohwr.org/

我的问题是:获取此类存储库的可用列表的最简单方法是什么?我需要解析该列表以进行同步,可能使用 shell 命令。

我必须使用 shell 命令解析 HTML,还是有更好的方法来获取该列表?

【问题讨论】:

  • 第一个问题:为什么要创建这么多存储库?一个就够了。为什么服务器这么老? (1.4.X?svn.ohwr.org)。为什么不在有权访问存储库文件夹的服务器上制作备份脚本。
  • ohwr 站点托管不同的软件项目(想想 google 项目或 github)。我需要每个项目的存储库。我们使用的是默认存储库(ubuntu 8.0.4 LTS)附带的 SVN 服务器。备份可以在多个外部服务器上进行。如果可能的话,我希望避免每次添加新的备份服务器时都必须更改主服务器。

标签: html svn svnsync


【解决方案1】:

我最终创建了自己的解决方案。

我已经设置了一个 cron 任务,它在 svn 文件夹上创建一个 ls 并将其输出重定向到服务器上的一个公开可用的文件。该文件没有 html 标记,它是一个纯文本文件,只有存储库的名称。

这样,客户端可以很容易地获取该文件并迭代存储库名称。

我对这个实现不是很满意;虽然它有效,但它有点“hacky”。我宁愿使用SVN或Apache自己提供的东西。

如果有人发布更好的解决方案,我会接受。同时,这是我最好的答案。

【讨论】:

  • 你能发布你的解决方案吗?
  • 当然:ls -1 path/to/svn/folders > myfile.txt
猜你喜欢
  • 2011-01-10
  • 1970-01-01
  • 2020-08-23
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多