22

我试图让 hg-git 扩展在 Windows 下工作,经过几个小时的摆弄,我终于让它工作了。但是,即使 hg push 的输出显示为:

importing Hg objects into Git
creating and sending data
    github::refs/heads/master => GIT:8d946209
[command completed successfully Wed Oct 20 15:26:47 2010]
4

3 回答 3

48

尝试发出命令hg bookmark -f master

(用于-f强制移动现有书签)

然后再次尝试推动。

这是因为Hg-Git 将您的书签作为分支推送到 Git 服务器上,并将 Git 分支下拉并将它们设置为书签。(来自官方的 README.md)

于 2012-06-10T15:55:05.267 回答
2

似乎就在我问这个之后,我做了一个微不足道的改变。这是捡起来推的。因此,您似乎必须等到做出新的提交才能让 hg-git 接受它。

于 2010-10-20T20:30:27.593 回答
0

我选择了“使用 README 初始化这个存储库”。这意味着我最终得到了两个头,我不能hg merge因为一个有书签。

为了推动工作,我必须:

  • 按照https://blog.glyphobet.net/essay/2029配置 hg-git 和 github 远程
  • 从 github 拉取并更新
  • 强制合并(检查要与哪个 id 一起使用hg heads),
  • 提交合并
  • 向文件添加一个微不足道的更改(在末尾添加一个空格字符),
  • 提交,然后
  • 将书签移动到提示
  • 推送到我配置的 github 远程

最终得到如下命令(<x>分段替换)

hg pull github
hg update
hg merge <revision-id-of-incoming-git-version>
hg addremove
hg commit -m 'merged with github'
 # make some trivial change to a file - eg add a space where it doesn't cause harm
hg add <changed-file>
hg commit -m 'trivial change'
hg bookmark -f master
hg push github

确保为上面的合并选择远程版本 - 如果你不这样做,它就不起作用!

于 2013-06-12T11:27:32.403 回答