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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
Mercurial:使用主存储库中的更改更新Fork_Mercurial - Fatal编程技术网

Mercurial:使用主存储库中的更改更新Fork

Mercurial:使用主存储库中的更改更新Fork,mercurial,Mercurial,我正在关注这篇文章,但它似乎不适合我。由于我是Mercurial的新手,我可能会错过一些东西 脚本 以下是主存储库和my fork的URL。几个月前,我从主存储库创建了一个fork 主Nuget存储库: 我的fork存储库: 问题 我无法使用主存储库中的更改更新我的fork 采取的步骤 以下是我尝试过的步骤,但没有成功 PS C:\michael sync\git\nuget> hg clone https://hg.codeplex.com/forks/michaelsync/msy

我正在关注这篇文章,但它似乎不适合我。由于我是Mercurial的新手,我可能会错过一些东西

脚本 以下是主存储库和my fork的URL。几个月前,我从主存储库创建了一个fork

  • 主Nuget存储库:
  • 我的fork存储库:
问题 我无法使用主存储库中的更改更新我的fork

采取的步骤 以下是我尝试过的步骤,但没有成功

PS C:\michael sync\git\nuget> hg clone https://hg.codeplex.com/forks/michaelsync/msyncwillmakeyoubetter
destination directory: msyncwillmakeyoubetter
requesting all changes
adding changesets
adding manifests
adding file changes
added 2231 changesets with 13584 changes to 3800 files
updating to branch default
1205 files updated, 0 files merged, 0 files removed, 0 files unresolved

PS C:\michael sync\git\nuget> cd .\msyncwillmakeyoubetter

PS C:\michael sync\git\nuget\msyncwillmakeyoubetter> hg pull https://hg.codeplex.com/nuget
pulling from https://hg.codeplex.com/nuget
searching for changes
adding changesets
adding manifests
adding file changes
added 301 changesets with 2574 changes to 838 files (+1 heads)
(run 'hg heads' to see heads)

PS C:\michael sync\git\nuget\msyncwillmakeyoubetter> hg commit -m "sync the changes from main respo to my fork"
nothing changed

PS C:\michael sync\git\nuget\msyncwillmakeyoubetter> hg push
pushing to https://hg.codeplex.com/forks/michaelsync/msyncwillmakeyoubetter
searching for changes
abort: push creates new remote branches: 1.6, 1.6.1, 1.7!
(use 'hg push --new-branch' to create new remote branches)
我不明白的是,为什么从主存储库中提取代码后没有任何更改。它说当我试图做出承诺时,一切都没有改变


我查看了这些帖子,但直到现在才使其正常工作。

首先,了解您使用的各种命令的具体功能非常重要:

  • pull
    :从存储库中检索更改,但不要将其应用于工作副本
  • commit
    :将工作副本上的更改应用于本地目录
  • push
    :将本地存储库中的所有更改集推送到远程存储库
  • update
    (您没有使用):将您的工作副本从本地存储库更新到特定的变更集
  • 您会注意到我使用了两个不同的术语,工作副本和存储库

    存储库是所有可用的变更集,包括各种分支、头等

    工作副本是您在文件资源管理器中实际看到的文件,它们的状态可能与存储库中最后一个更改集的状态完全不同

    因此,一旦您执行了
    拉取
    ,如果您想“应用”对工作副本的更改,您必须执行
    更新
    ,或者,您也可以du
    hg pull-u
    。如果您在上次
    拉入
    后做了一些更改,您可能需要
    合并
    ,而不是更新,如果您查看链接的文档,他们正在执行
    合并
    (步骤3)

    如果
    更新
    成功,则无需执行
    提交
    ,更改已在本地存储库中。如果必须执行
    合并
    ,则必须执行
    提交
    ,以确认所做的更改

    关于
    push
    部分,您正在按照错误消息中的说明创建新的分支。默认情况下,Mercurial不推送变更集创建新分支,您必须使用规定的命令:
    hg push--new branch
    或专门推送分支
    hg push mybranch


    我希望我的解释足够清楚,否则请随意评论。我还建议您阅读一些有关Mercurial的教程,例如本教程:

    谢谢您的解释。我会说我有两个存储库1)main和2)我的fork。。我有一份工作副本。我的工作副本是我的fork的克隆。正如你所看到的,我没有做任何改变。这是我第一次在我的新机器上克隆我的fork,所以我认为我不需要使用“hg更新”。。在我链接的文档中,它说如果我的工作副本有任何更改,我需要使用“hg merge”。但在我的例子中,我没有任何改变。我想你是在讨论我有一个工作副本和一个存储库的场景。但我正试图通过我的工作副本同步两个存储库。如果我误解了你的答案,请随时告诉我。。或者,如果我在步骤中遗漏了什么,请随时告诉我。您误解了“工作副本”和“存储库”之间的区别,您的每个克隆都是两者,这是DVCS的主要原则。远程存储库的数量不会改变答案。
    commit
    说没有变化是完全正常的,因为没有变化<代码>提交在本地级别工作,
    /
    在远程级别工作。关于您的
    push
    问题,只需运行Mercurial提出的命令:
    hg push——新分支
    。顺便说一句,你应该认真阅读并遵循我链接的教程来理解所有这些差异。这个答案有点错误。除非工作文件夹中已有更改,否则不需要在更新后提交。问题中出现问题的原因是,与fork的服务器副本相比,pull之后存储库中有新的分支。