2009-07-24 104 views
4

我想创建一个公共svn仓库的私人分支。由此,我的意思是有一个公共的,开源的(codeplex)存储库,我需要做我自己的,自定义的更改。这些更改不会被接受回树中。我想:如何构建公共SVN存储库的私有分支?

  • 检入我对自己的源代码管理所做的更改,以便保存和更新版本。
  • 保留一些与原始链接,以便我可以轻松地合并“官方”更改。

我明白,git可以做到这一点,但我无法弄清楚如何用SVN做到这一点。

如果不行,我该怎么做上面的某些方面 - 就像在我的存储库中彻底地完成代码并保留官方树的“干净”副本,我可以轻松地区分这两棵树?

谢谢, 詹姆斯

+0

你不使用Git的原因是什么? git-svn非常适合你的要求。 – thedz 2009-07-24 19:44:02

回答

0

我想你已经回答了你自己的问题,两次。

使用DVCS或保持一个干净的副本,并合并到你自己的svn回购。

5

Google git-svn。适合我。

1

您可以导出要从中分支的修订版本,将其导入到您自己的存储库中,然后进行处理。稍后,您可以将原始导入的修订和头部之间的差异合并到主库中。

是的,这是一个拐杖。你为什么不尝试git-svn?

1

你不能。我已经看到了这个问题的两种不同的方式工作围绕:

  1. 使用DVCS与SVN集成像BZR-SVN或混帐SVN。这些集成特别针对您希望保留本地分支但仍能够通过SVN与上游源进行交互的情况进行设计。使用Piston。活塞自动将供应商源树添加到项目的过程中,以便您可以进行自己的更改,并定期从源回购库中提取和合并更新。

1

一个可以帮助的工具是svnsync(尽管如其他人所建议的那样转移到DVCS可能更可取)。

0

另一个工具是tailorhttp://wiki.darcs.net/Tailor)。它可以在多种类型的资源库之间移动更改。如果你习惯于颠覆,你甚至可以创建一个本地svn服务器,其中包含来自上游的更改以及你的私人更改,并且随着codeplex的更改而更新本地服务器。

1

正如其他人所说,使用与Subversion协同工作的分布式版本系统可能是您最好的选择。 git的替代方案是Mercurial及其options之一,hgsubversion或hgsvn。这实际上是两者之间的个人选择,但如果你是一个普通的Subversion用户,Mercurial可能会更好。它有一个类似于Subversion的命令行,如果你在Windows上,它的命令行类似于TortoiseSVN。

相关问题