我们目前有一个由外包公司开发的软件,它被签入到我们服务器上的 SVN 存储库中。我们将很快结束与他们的合同,并引入了一些开发人员(包括我自己)来接管开发。我们已经获得了一个单独的 SVN 存储库。
外包公司不应该看到我们团队提交的更改,但我们需要接收他们输入的更改。有没有人知道我们可以设置我们的 SVN 服务器的方法,以便他们的更改(立即或每天或其他)提交到我们的存储库,而不会覆盖我们的更改。我很乐意根据需要手动查看任何合并冲突。
任何答案将不胜感激,设置,批处理文件或为包含的产品付费。
我们目前有一个由外包公司开发的软件,它被签入到我们服务器上的 SVN 存储库中。我们将很快结束与他们的合同,并引入了一些开发人员(包括我自己)来接管开发。我们已经获得了一个单独的 SVN 存储库。
外包公司不应该看到我们团队提交的更改,但我们需要接收他们输入的更改。有没有人知道我们可以设置我们的 SVN 服务器的方法,以便他们的更改(立即或每天或其他)提交到我们的存储库,而不会覆盖我们的更改。我很乐意根据需要手动查看任何合并冲突。
任何答案将不胜感激,设置,批处理文件或为包含的产品付费。
您需要供应商分支机构。仅授予外包公司访问您存储库的“供应商”部分的权限(如果他们使用 http 访问,那么您可以锁定.htaccess
文件中的权限,以便他们只能访问此目录)。此位置仅包含他们提交给您的代码。
然后,您在 SVN 的其他地方创建一个区域,使用它们提供的代码对其进行初始化。我们称其为“第三方”目录。您可以自己进行更多更改,但外包商将无法看到此目录。如果外包商在供应商区域提交了新的更改,那么您需要使用供应商分支链接中描述的命令将这些更改合并到您的第三方区域。与其他颠覆合并一样,如果更改与您自己所做的更改不冲突,那么合并非常简单。如果存在冲突,那么您需要以通常的方式手动解决它们。
我没有玩过这个,这只是一个想法。
有 svnrdump 实用程序可以转储远程存储库。如果您将持续将此信息加载到您的存储库中,那么您将能够进行任何分支/合并。
主要问题是 svnrdump 用于用信息填充新存储库,而不是现有存储库,因此可能需要对转储内容进行一些操作......它们可能不是微不足道的 - 您可能需要以某种方式存储修订对应关系。
我还看到了 svn2svn ( http://svn2svn.codeplex.com ) 工具,但它似乎对操作的支持有限,并且开发得不是很活跃......
谢谢大家,我们已经设法通过以下过程解决了这个问题。每天我们都从外包商可以访问的外部 svn 中获取一个转储文件,并将其应用到我们内部 SVN 的主干上。
与此同时,我们一直在开发该 svn 的一个分支,并在那里提交我们所有的更改。
然后我们将分支合并回主干并解决任何冲突。
然后我们分出一个新的分支来工作并等到第二天。
外包商 SVN 不会受到影响,我们可以在不丢失我们自己的情况下获得他们的最新更改,并且不会花费我们太多的精力 - 由于它主要由 svn 控制,因此减少了人为错误的可能性。