Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial源代码管理-分叉的利弊_Version Control_Mercurial_Codeplex_Fork - Fatal编程技术网

Version control Mercurial源代码管理-分叉的利弊

Version control Mercurial源代码管理-分叉的利弊,version-control,mercurial,codeplex,fork,Version Control,Mercurial,Codeplex,Fork,我正在定制以支持自定义本地功能(波斯语日历、RTL主题等) BlogEngine.Net使用mercurial源代码管理,我能够创建一个项目分支,并将我的更改提交给它。但是我想把它作为一个单独的项目发布,因为代码中有一些主要的修改来支持波斯语,我不打算向主项目发送pull请求。好吧,我有两个选择: 我可以下载BlogEngine.Net的源代码,创建新项目,提交原始源文件,然后将更改提交到存储库 我可以分叉主项目并拥有一个克隆存储库。然后我可以在该存储库上提交 现在使用叉子的好处是什么?如果我创

我正在定制以支持自定义本地功能(波斯语日历、RTL主题等)

BlogEngine.Net使用mercurial源代码管理,我能够创建一个项目分支,并将我的更改提交给它。但是我想把它作为一个单独的项目发布,因为代码中有一些主要的修改来支持波斯语,我不打算向主项目发送pull请求。好吧,我有两个选择:

  • 我可以下载BlogEngine.Net的源代码,创建新项目,提交原始源文件,然后将更改提交到存储库
  • 我可以分叉主项目并拥有一个克隆存储库。然后我可以在该存储库上提交 现在使用叉子的好处是什么?如果我创建一个fork,我是否能够像独立项目一样在自己的页面上发布我的项目(选项1)?通过说“它自己的页面”,我的意思是我希望有一个像“FarsiBlogengine.CodePlex.Com”这样的地址,并使二进制版本、源代码版本可供下载、有一个讨论论坛等,就像我不使用forking时的功能一样

    一般来说,使用forking代替下载主项目、创建新项目和提交新项目有什么好处?

    谢谢。

    分叉(aka:cloning)(aka:option#2)的主要好处是,您的存储库将包含父存储库的整个历史记录,允许在需要时从该存储库中推送或拉取。使用选项#1,您将从父存储库的快照开始,并丢失项目历史记录/沿袭

    在确定两个存储库是否相关时,Mercurial将寻找一个共同的祖先-在选项1的情况下,您将不会拥有,在选项2的情况下,您将拥有。即使您明确表示不希望与父repo执行任何同步(推/拉/等)您可能会发现BlogEngine.net发布了一个关键的bug修复程序,您希望将其搁置,偶尔执行一次搁置。选项#1将阻止您这样做,因为它不会找到共同的祖先,但选项#2将允许这样做


    在发布代码方面,我不太清楚“它自己的页面”是什么意思,但我认为发布这两个选项都不会有任何问题。在这两种情况下,您只有一个简单的存储库。在案例2中,您只有一个更大的存储库,有更多的提交和更多的历史记录。

    谢谢您的回答。通过“它自己的页面”“我的意思是,我希望有一个类似“FarsiBlogengine.CodePlex.Com”的地址,并提供二进制版本、可下载的源代码版本、讨论论坛等。就像我不使用forking时的功能一样。有可能吗?@Kamyar:好的,我明白。我不熟悉BlogEngine.net网站/软件,所以我无法为您回答这个问题。从反复无常的角度来看,选项1和选项2之间没有重大区别,所以如果你有问题,那将是BlogEngine.net的问题。祝你好运谢谢dls。然而,我的担心与blogengine.net无关。更好的说法是:我可以在codeplex中创建一个新项目,并将其存储库设置为分叉存储库吗?@Kamyar:我不熟悉codeplex,但我相信Google代码中存在类似的功能,而克隆(分叉)Google代码中的存储库确实会生成一个新的存储库。没有什么能阻止你像对待主回购一样对待分岔回购。试一试-应该很容易测试。谢谢dls。我会把结果贴在这里。