定期将修订从一个SVN存储库复制到另一个活动的SVN存储库

时间:2009-04-16 08:26:17

标签: svn version-control data-synchronization

我的公司维护着两个SVN存储库,Repository 1和Repository 2:

  1. 此存储库中包含多个项目,并且只能由公司内的开发人员访问。通过HTTPS进行访问,通过Windows域进行身份验证。
  2. 此存储库中包含一个项目,并由公司内的开发人员和我们客户的开发人员访问。通过svn://访问,并通过passwd文件进行身份验证。
  3. 我们在Repository 1的文件夹中有一些代码,我们希望将其下载到Repository 2的用户。显而易见的答案是使用SVN Externals,但据我所知,这将需要客户端的开发人员来在我们的域名上有帐户,我们的IT人员不喜欢这样。

    因此,我能看到的唯一解决方案是某种cron作业,它定期运行以将必要的文件从Repository 1复制到2.我找到了一个名为Tailor的工具,声称可以做我需要的工作,但到目前为止,我还没有设法让它正常工作。

    在我花更多时间试图让Tailor工作之前,有没有人对另一种方法有任何建议?我的最后一招是打破一个程序为我做,这不应该太难,但如果有的话,最好使用现有的应用程序!

    提前感谢任何帮助/指针!

4 个答案:

答案 0 :(得分:2)

如果SVN外部会起作用,但唯一的绊脚石是访问权限,那么为什么不对存储库进行克隆并将外部指向那个呢?

SVN现在对镜像有很好的支持:

https://www.opends.org/wiki/page/MirroringASubversionRepository

您可以使用您喜欢的任何身份验证方案锁定镜像存储库,例如,匿名只读访问。

但是,您需要确保更新镜像的唯一内容是svn sync命令 - 存储库2的用户将无法将更改提交回存储库1.

此页面包含一些非常有用的信息:

http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt

答案 1 :(得分:1)

我发现你需要从两个存储库进行更改。

您可以使用相同的svnsync构思来构建write-through proxy

使用此方法,镜像存储库将写入请求传递回主代理。现在我不确定身份验证会发生什么,但这可能值得在此进行调查。

也可以查看this info

答案 2 :(得分:0)

您是否需要让外部开发人员更改存储库2中文件夹中的代码,否则您可能根本不需要使用SVN。

通常,拥有两个具有相同代码的SVN的存储库会让人感到困惑。

其他选项

  • 如果您需要外部开发人员 编辑存储库2中的文件, 你能不能拥有外部人员 另一种方式,所以repository1 有一个外部定义 库。
  • 围绕您的IT人员 将所有代码放在存储库中。
  • 使用GIT。

答案 3 :(得分:0)

SVNReplicate,可以自定义以使用单个项目,但这似乎是distributed VCS应该更合适的情况。