【问题标题】:Forking on Google Code (or any other SVN hosting)在 Google 代码(或任何其他 SVN 托管)上分叉
【发布时间】:2009-09-29 05:18:01
【问题描述】:

githubbitbucket 等网站提供了“分叉”项目的出色/有用功能。这允许人们简单地分叉一个项目并开发他们想要的功能(在将其提交给投影仪所有者并获得提交访问权限之前)。

对于SVN 项目(尤其是托管在Google Code 上但仍在使用SVN 的各种项目),如何最好地实现此工作流程?

澄清:我知道 svn diff,但想要一个解决方案,在将更改提交回作者(SVN 存储库的所有者)之前,我可以进行几次间歇性提交。让这个“fork”变得像点击按钮一样简单(我想知道 github/bitbucket 是否会有自动克隆 SVN 存储库的功能)。

【问题讨论】:

    标签: svn git open-source mercurial fork


    【解决方案1】:

    由于您似乎已经熟悉 git,您可以使用git svn。您可以像这样获取 SVN 项目(-s 表示标准的trunk/branches/tags 布局):

    git svn clone url://path/to/repo -s
    

    您可以像这样将每个本地 git 提交作为单独的 svn 提交推送:

    git svn dcommit
    

    在将更改推送到 svn 之前,通常使用 git rebase 命令清理和简化提交历史记录。

    编辑:对于 mercurial,还有 several extensions 可以与 SVN 存储库互操作,但似乎没有一个像 git-svn 那样成熟。

    【讨论】:

    • Sridhar:如果您更熟悉 Mercurial,请不要担心——试试 hgsubversion 看看它是否适合您:bitbucket.org/durin42/hgsubversion 人们每天都在使用它,请在 #hgsubversion 中询问在 irc.freenode.net 上。
    【解决方案2】:

    它是如何实现的?一直都是这样,你这个年轻的打手!

    为什么,在我这一天,在放学回家后(上坡,在雪地里),我们必须创建更改的差异并手动将其提交给维护者(或维护者的邮件列表/组)!

    您会发现命令 svn diff 在此任务中对您有用。它将创建适合上游提交的更改的统一差异。

    【讨论】:

    • 分叉一个 DVCS 可以让一个人进行间歇性提交。而仅依赖 'svn diff' 会使工作副本易受攻击(例如:磁盘崩溃)。
    • 确实如此,但这是工具集强制执行的过程的功能。不管你涂了多少油漆,你都不能让苹果尝起来像橘子。
    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多