将代码保存在多个SVN服务器上

5
作为一名自由开发者,我喜欢将所有的开发工作放在自己的SVN服务器上进行,这样可以实现持续集成,并记录每次更改的时间和内容。
现在我正在与一个客户合作,他们也在内部使用SVN,显然希望我在他们的SVN服务器上与他们的开发团队一起工作。
总体来说,这很好,但这也会迫使我放弃自己的工作方式,并失去我的内部记录方法。如果这种情况经常发生,那么我的工作标准将变得松散 - 最终因项目而异(这显然是我不想要的)。
有没有一些创造性的方法可以兼顾两全,让代码同时存在于两个SVN服务器中?我不介意在每次提交/更新时进行一些额外的工作。
svnsync看起来可能是一个不错的选择。有人试过吗?还有其他建议吗?
6个回答

2
我不确定问题出在哪里。你使用了不同的SVN URL,但其他方面都相同。"book-keeping"是什么意思?
也许关键在于代码的所有权 - 如果代码属于他们,他们完全有权要求您使用他们的版本控制系统。而且,由于您似乎正在与开发团队合作,所以他们人数众多。
因为有其他开发人员参与,显然必须从他们的存储库中工作,以确保您始终拥有最新的代码,从而避免冲突等问题。
如果您担心保留代码副本(假设这是合法的),则有许多方法可以实现此目的,例如定期将指向他们服务器的工作文件夹导出到指向您服务器的另一个工作文件夹,并提交。

1
你可以定期(每周?)将客户的代码库进行svndump并导入到自己的服务器上,以便于进行计费或其他分析。
唯一需要考虑的问题是客户是否会同意您这样做。

1

我可以看到这里有两种不同的方法,一种是继续在你的代码库中工作,然后在你觉得你的代码达到了要求时手动将其提交到他们的代码库中。另一种方法是查看svn提交钩子-即每次提交时运行的脚本。从这样的脚本中,我认为你可以轻松地将相同的提交提交到另一个代码库。

我假设你的合同允许你自己保留代码,否则你基本上必须按照客户告诉你的方式处理代码。


0

版本控制系统无疑有助于代码的共享和管理。如果您使用两个存储库,事情很快就会变得非常混乱。我建议您跟随公司的要求并使用他们提供的版本控制系统。


0

如果你只是想列出在Subversion中所做的更改(我猜,每周提交次数,已解决问题列表...),你可以编写一个简单的Java应用程序来查询任何 Subversion 存储库以获取你的更改。之后,只需要将你的应用程序指向正确的存储库即可。

有几个易于使用的Subversion库,我对SvnKit没有特别的问题。


0

使用客户端的代码库

一个解决方案是直接使用客户端的代码库。任何其他与你的记账相关的“东西”,比如项目管理、时间记录等,都可以放在你的本地代码库中。你需要保持两者分开,有两个独立的工作副本,但如果你想要变得更加灵活,你可以在本地代码库中设置一个指向客户端代码库的svn:external

只要你和客户对提交的细节都满意,这种方法就可以运行。你也可以考虑在客户端代码库的一个分支上工作,并在完成工作后合并到主干。这样做的好处(对于客户来说)是客户拥有所有你正在进行的工作的备份,他们可能会喜欢这一点。

git 与 Subversion 集成

另一个解决方案可能是在本地使用git,并利用其与Subversion一起工作的能力。您可以将正在进行的工作保存在轻量级本地分支中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接