假设有人拥有的存储库只有一个与master
兼容的Python 2.7.X
主机代码。我想通过对新分支new_branch
的更改来为该存储库做出贡献,以提供与Python 3
兼容的存储库变体。
我按照here:
步骤进行了操作new_branch
以上工作但它执行了从"my_account:new_branch"
到"official_account:master"
的拉取请求。这不是我想要的,因为Python 2.7.x
和Python 3
彼此不兼容。我想要做的是在官方存储库中为新分支创建一个PR(例如,使用相同的名称"new_branch"
)。我怎样才能做到这一点?这有可能吗?
答案 0 :(得分:2)
你真的不想这样做。但首先我会解释如何做,然后我会回来解释为什么不这样做。
GitHub上的Using Pull Requests有一个非常好的概述,特别是“更改分支范围和目标存储库”一节。如果您使用主题分支,并且让上游所有者创建同名的主题分支,这是最简单的;然后你只需在菜单中下拉“base:master”,然后选择就在那里,他只需点击“合并”按钮即可,不会有任何意外。
那么,你为什么不想这样做呢?
首先,它不适合GitHub模型。主题分支与主分支并行生存,并且具有多个分支,这使得维护和可视化更加困难。
其次,您需要git URL和https URL代码。您需要人们能够从树顶部共享链接pip install
,只需克隆存储库而不是克隆,然后检出不同的分支等。这意味着您的代码必须位于主分支上。
第三,如果您希望人们能够在PyPI上安装3.x版本,在readthedocs等处找到文档,则需要一个包含单个源树的项目。大多数此类网站都有一个最新版本,而不是每个Python版本的最新版本,绝对不是同一版本的多个版本。 (你可以完全安装fork项目,并创建一个单独的foo3
项目。但是人们能够pip install foo
比让他们尝试更容易,失败,来到SO并问为什么它不起作用,并告诉他们可能有Python 3而需要pip install foo3
代替。)
如何将两个版本合并到一个包中? porting docs应该提供最新的建议,但是简单地说:如果可以创建在两个版本上运行的单个代码库,那么这是理想的;如果没有,并且如果您无法通过在安装时运行2to3
或3to2
来使工作正常,请为3.x代码创建并行目录(例如,foo3
旁边的foo
{1}})并在安装时选择适当的目录。 (你总是可以从那开始,逐步向统一的代码库努力。)