将代码与两个subversion存储库同步

时间:2009-06-24 21:16:22

标签: svn version-control synchronization

在这里搜索我发现这个问题是already asked,但我认为情况更糟! - (

我是互联网存储库开发的新手。 A book我正在阅读包含一个有趣的示例项目 - ASP.Net中的社交网络。作者将代码作为CodePlex project。我试图通过VisualSVN(颠覆)“获取”版本但失败了。所以我所做的是将代码下载为zip文件(即从项目的存储库中断开),创建我自己的本地存储库,然后开始修改代码。

现在CodePlex的存储库开始变得活跃。我想要做的是不断从CodePlex存储库获取更改到我的本地存储库,并偶尔将我的一些更改提交回CodePlex存储库。

可行吗?

4 个答案:

答案 0 :(得分:1)

我实际做了什么,至少现在和the CodePlex project的流量都很低:

我下载了当前的CodePlex 22875版本(作为zip文件)。幸运的是,在我开始玩这个项目之前,我已经在我的计算机上本地保存了原始的16202 zip文件(但我想我也可以从CodePlex获得它)。

现在我的计算机上有两个文件夹:22875和16202.我所做的是使用Total Commander比较两棵树并找出修改了哪些文件。我手动将少量更改集成到我的代码中。

我认为Beyond Compare在集成方面会更好,但我还不熟悉它,所以我坚持使用TC。

要走另一个方向,我想我必须检查当前的CodePlex主干,手动集成我的更改,并提交更改。

我能说什么 - 太糟糕了。但是我的更改量使得本地存储库比使用CodePlex更有意义。而且,由于CodePlex使用SVN,我喜欢在本地使用SVN工作,我刚刚为VisualSVN支付了49美元,而且我害怕git Unix黑客: - )

答案 1 :(得分:0)

不使用基本的SVN,因为它将每个存储库视为独立的,并且不允许在存储库之间进行合并。然后你必须手动合并。这可能是一种痛苦。

注意:我在问题中错过了你的第一行.. doh ..我已经写完了所有这些..呸..希望它有点帮助...:)

正如您在其他问题中所看到的,有一种称为DVCS(分布式版本控制系统)的新东西,它允许存在多个存储库并允许来回推送/提取。有一些流行的版本,Git,Mercurial和Bazaar。

Git有点难以使用,IMO,但它支持很好地连接到svn-repositories。

迁移到分布式表单时需要学习一些新内容,因为定义的数据模型更复杂。我不知道它是否适合你,但它确实支持你所要求的。

要应用此功能,您将使用自己的本地Git仓库,将不同的svn repos导入该仓库中的本地分支。然后将这些分支中的更改合并到您的主开发分支中,在那里(本地)更改和提交内容,最后将您的更改合并到其中一个或两个svn-branches,然后将Git中的svn-branches推送到svn-repositories作为新的提交。

但是,Git是由Linux内核黑客制作的。被警告。 :)

Mercurial对用户更友好,但从我所听到的情况来看,它的支持并不是那么好。但是我自己没试过。

答案 2 :(得分:0)

如前所述,跨存储库不起作用。

回到最初的问题,您是否尝试使用svn命令行从原始存储库中检出?

从您想要拥有工作副本的目录中: svn checkout svn:// codeplex_repository

然后使用update / commit复制修改并像往常一样使用svn进行同步。

如果不熟悉svn命令行,请下载TortoiseSVN,免费并完成工作。

答案 3 :(得分:0)

你可以看看所描述的解决方案here ...我正在寻求实施相同的策略,并且在阅读左右之后我倾向于使用SVK。 Heres使用svk的synk示例。