Raz*_*can 3 import merge mercurial branch repository
我有一个名为"我的项目"的存储库,它位于一个名为"framework"的框架中.它们中的每一个都有它的存储库,它们之间没有关系,每个分支和标签.我想在我的存储库中接收"框架"的更新,但只能从"默认"分支而不是其他分支.当然,我不希望在我的存储库中有"框架"标签,因为它是一个完全不同的项目.
我有Mercurial HG,我希望能够从"管理存储库"页面直接从"框架"存储库中提取更改.
此外,我只想下载最新的变更集,因为我不久前开始了我的项目.如果我可以将"框架"的默认分支重命名为我的仓库中的其他名称,例如"Framework Changesets",那将是完美的.
注意:我没有"框架"存储库的写入权限.
我试着做什么mercurial wiki说:
hg pull -f -r default "framework"
Run Code Online (Sandbox Code Playgroud)
没关系,直到我意识到我从"框架"存储库下载了所有标签,然后我从远程存储库下载了所有的变更集.此外,在TortoiseHG-> Configuration-> Synchronization中,我将"框架"存储库作为该项目的远程存储库,并从远程存储库中取出,我从该存储库获得了所有分支.
当然我无法更改默认分支名称,并更新了我的默认分支,即使我尝试使用hg convert --branchmap(但我不知道如何使用它).
我的问题有什么解决方案吗?甚至是部分解决方案?
我认为你可以通过以下方式解决这个问题:
使用命令行: hg pull -r <branch name>
使用TortoiseHg v1.1.X:
您始终可以手动编辑.hgtags文件以删除在"框架"分支上创建的标记,但我不知道如何在没有标记的情况下提取变更集.
使用mq扩展,您可以更改新"框架"更改集所在的命名分支.有关如何在TortoiseHg v1.1.X中执行此操作的说明以及CLI,请参阅" 在分支中应用修补程序 "的答案.这里的基本思想是使用您想要的名称创建一个命名分支,将您拉入补丁队列的所有"框架"变更集导入,然后将它们应用于新的命名分支.他们将从"框架"中删除分支名称,并使用您应用它们的分支的分支名称.
如果您要多次从"框架"中提取,则需要使用修补程序队列在每次拉动时仅移动新的变更集.您应该很容易看到尚未移动的更改集.