Mercurial - 克隆后拉变化

时间:2016-03-12 16:32:04

标签: mercurial

说我克隆了一个远程存储库并将其称为" A"
然后我克隆了另一个远程存储库并将其命名为" B"

" B" 包含.hg文件夹和src文件夹,以及" A" 只有.hg文件夹。

如果我将更改从" B" 更改为" A" ,现在应该" A& #34; 还包含src文件夹?因为那正是我所做的,而且没有

2 个答案:

答案 0 :(得分:0)

您混合了'存储库'的概念。使用工作目录,实际签出的变更集,它指示特定版本的存储库状态。

如果两个存储库 A B 被拉入一个存储库,则所有更改集都存在于那里,但它们存在于不同的更改集中。如果要将它们组合在一起,则必须合并两个变更集;很可能你想要合并你拥有的两个头,一个来自存储库 A ,另一个来自存储库 B 。例如:

# check heads:
hg heads --template="{rev}:{node|short} {desc}\n"
2332:d69c8aaf6db6 Doc: Changelog as it should have been
2128:6f38df710194 Added tag 0.2.5 for changeset 6d89bb9ad3f6

更新到一个头然后合并另一个头。请务必使用实际修订版:

hg up -r2332
hg merge -r2128

是否有效且没有任何冲突取决于 A B 的外观。

答案 1 :(得分:0)

src是否包含任何文件?您无法将空目录添加到mercurial仓库。如果您尝试hg add src并且src为空,则不会出现错误,但没有任何反应。如果这真的是你想要的,there are ways,但听起来你只是在尝试。

更具体地说:您只能添加文件,并且隐式添加包含它们的目录。在src中创建文件后,add将文件添加到repo并commit更改(以及您可能想要带来的任何其他内容)。现在您有一个变更集可以推送或拉到存储库“B”。

一旦变更集成为“B”的历史记录的一部分(请与hg log核对),您需要更新到它(hg update);或者,如果您最终得到了一个分支,请将其合并到您当前的分支。