使用 hg-git 时不会推送任何更改

问题描述 投票:0回答:4

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

,我的 git 存储库中也没有显示任何内容
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]
mercurial github hg-git
4个回答
48
投票

尝试发出命令

hg bookmark -f master

(使用

-f
强制移动现有书签)

然后再次尝试推动。

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


2
投票

似乎就在我问完这个之后,我做了一个微不足道的改变。这个东西被捡起来推了推。所以看来你必须等到你做出新的提交才能让 hg-git 接受它。


0
投票

我选择“使用自述文件初始化此存储库”。这意味着我最终得到了两个头,但我不能

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

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


0
投票

当我将 书签 添加到存储库时,hg-git 使用它们来创建 git 分支。

如果没有书签,我会收到以下消息:

no changes found (ignoring X changesets without bookmarks or tags)
。使用强制推送没有书签的分支会导致以下错误:
abort: revision X cannot be pushed since it doesn't have a bookmark

© www.soinside.com 2019 - 2024. All rights reserved.