问题描述
有一个我想分叉的开源项目.它有一个公共的SVN存储库,我想从中检出源代码,将其克隆到我的私有存储库中,然后开始进行更改.如果可能的话,我希望将来能够合并来自上游存储库的更改.到目前为止,我已经能够做到这一点:
There is an open source project I would like to fork. It has a public SVN repository from which I would like to check out the source, clone it into my private repository, and begin making changes. If possible I would like to be able to merge changes from the upstream repository in the future. So far I've been able to do it like so:
- 在我自己的存储库中为此项目创建一个文件夹.
- 签出此空文件夹.
- 将原始项目签到另一个位置.
- 删除此新位置中的所有.svn子目录.
- 将文件复制到我的私有存储库的工作副本中,提交一次,然后开始进行更改.
这有效,但是看起来很丑,我一点也不确信合并将正确地进行.有更好的方法吗?
This works but it seems ugly and I'm not at all convinced that merge will work correctly. Is there a better way?
要排除对仅提交补丁"的答复,只需说这是我在应用程序中需要的功能即可,但是由于它故意破坏了与现有功能的兼容性,因此上游不接受.
To preclude replies of "just submit a patch", suffice it to say this is for a feature I need in my application but because it deliberately breaks compatibility with the existing functionality, it will not be accepted upstream.
推荐答案
我建议您看看Git.
是的,该项目正在使用Subversion,但是Git有一个方便的小技巧,可以将修订版本从Subversion中提取出来,允许您将Git用于自己的个人版本控制,然后将所做的更改提交回Subversion.
Yes, the project is using Subversion, but Git has a handy little trick of pulling a revision out of Subversion, allowing you to use Git for your own personal versioning, and then committing your changes back into Subversion.
这将使您能够与Subversion保持同步,并且仍然可以充分利用版本控制系统.
That would allow you to remain in sync with Subversion, and still take full advantage of a revision control system.
看看 git svn .
如果您不想学习Git(由于大多数开放源代码项目都在学习Git,那么您不妨学习一下),可以看看 svk .
If you don't want to learn Git (you might as well since most open source projects are moving to it), you can take a look at svk.
这篇关于正确的工作流程来管理私有Subversion分支:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!