远程开发人员使用一个repo,我们将使用自己的repo来构建和部署

时间:2010-10-04 13:45:35

标签: svn

美好的一天。这是我们的要求。我们有一个使用自己的svn存储库的远程开发人员团队。他们正在对/ trunk进行所有更改。我们想要获取他们的回购的每晚快照并将其导入我们的。我们想要创建分支和标签来识别版本,我们将在我们这边构建和部署。

最初,我想使用svnsync,但不确定这是否是正确的工具,因为构建将创建新文件(不需要将其提交回远程仓库)。此外,我们的标签和分支也不需要返回。

似乎我们想要从他们的回购承诺到我们的回购,然后能够像往常一样管理我们的回购。馊主意?执行不好?

3 个答案:

答案 0 :(得分:1)

SVN是一个集中存储库。它的目的不是在多个存储库中应用更改。

使用git(或mercurial或bazaar等),这个模型是自然的工作方式,所以如果你可以使用其中一个,那就这样做。

如果您无法完全使用它们,仍可以使用git-svn作为兼容层。然后,您的远程开发人员将使用git,您可以根据需要进行更改。

但是如果你致力于SVN,那么在你的中央存储库中为一个分支(或一组分支)分配一个分支(或一组分支)会更好

看看为什么要考虑多个存储库。如果是由于延迟问题,也许write-through-proxy可能是更好的解决方案。如果它是安全/控制,SVN允许您很好地管理身份验证和授权,特别是如果您通过apache托管。

答案 1 :(得分:1)

正如Jim指出的那样,分布式版本控制将是最佳选择。但是,让我试着用svn回答你的问题。

正如您所提到的那样,提交只会发生在远程位置的开发人员,为什么不只是使用相同的存储库检出工作副本并在同一个上执行构建?如果您正在尝试解决网络性能问题,那么您可能希望使用svnsync和write-through-proxy。以下SO链接有一些关于实施的详细答案。

Mirror SVN Repository [Write-through proxying]

此外,您可以查看SVN edge他们的路线图试图获得类似于您所寻找的内容。

答案 2 :(得分:0)

我假设你不想扩展他们的存储库以包含你的构建/工作区域,或者打开你的本地存储库并让他们将你的更改提交给你的;据推测,远程团队是一个合同资源(或类似的),他们有自己的工作实践,你只想在最新版本的源代码中过夜。

你可以让他们的存储库成为你自己的外部资源,我想 - 基本上你构建了一个'虚拟'项目,它引用了他们的 - 或者使用hotcopy功能来拍摄他们的'实时'快照。然后将其导入您自己的存储库......