mercurial push / pull问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mercurial push / pull问题相关的知识,希望对你有一定的参考价值。

在我的团队朋友对我们的仓库进行推送操作后,我无法进行推送操作。

首先我提交后点击推送

Push will not be performed because it would create remote branches.

You must first resync by doing a Pull from the target repository and Merge.

后来我点击拉我得到了这个

INFO Pulling From: https://mercurial.intuxication.org/hg/itucs-blg361-2010-g27 ...
comparing with https://mercurial.intuxication.org/hg/itucs-blg361-2010-g27
searching for changes
no changes found
INFO Pulled From: https://mercurial.intuxication.org/hg/itucs-blg361-2010-g27
INFO To:        hastaneBilgiSistemi - C:UsersyakUPDesktopwickethastaneBilgiSistemi
INFO: End of Mercurial Pull

我能做什么?

我试过更新。它说:

Mercurial Update
----------------
Update to revision 25 in:
C:UsersyakUPDesktopwickethastaneBilgiSistemi
abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes)

INFO: End of Update

图形就像:我是mercurial的新手。

答案

要获得有关在服务器上创建新磁头的消息,然后说没有新的更改集,意味着您已经拥有了服务器的所有更改集。

你应该做的是查看你的本地克隆并将多个头合并在一起以获得一个,然后你应该能够推动。

但是,您可能无法在Windows上执行此操作(根据您问题中的路径示例判断),因为两个文件之间存在大小写折叠冲突:

  • src / java / itucs / blg361 / hbs / linkpage.java < - 在linkPage中注意小写的p
  • src / java / itucs / blg361 / hbs / linkPage.java < - 在linkPage中注意大写P

这将阻止您实际使用该分支,除非有系统认为这两个是不同的文件(如* nix)为您摆脱其中一个,推动它,然后你拉入新的变更集。

所以你有几个选择:

  • 使用--override(或GUI等效项)强制推送。这通常不是正确的方法。这将在服务器上创建另一个头,然后突然你有至少3个不同版本的项目。
  • 拉(就像你已经完成),合并,然后推。这通常是首选。您应该将属于一起的头合并在一起以返回到一个分支。

无论如何,我会弄清楚为什么你已经在存储库中有多个头。有人强迫推吗?这是故意的吗?

得到TortoiseHg - 它会让你的生活更轻松

以上是关于mercurial push / pull问题的主要内容,如果未能解决你的问题,请参考以下文章

Mercurial stuck “waiting for lock”, tortoisehg pull版本卡住在等待 解决办法

SourceTree软件

ssh链接git服务器,解决push pull要求输入密码问题

Git commit/pull/push的操作步骤

Mercurial:“hg push”到 smb 共享不起作用

git 要commit之前先pull, 这样做法合理吗?