问题标签 [hg-git]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
174 浏览

github - 我可以撤消仅安装了 tortoisehg 和 hg-git 的最后一次推送到 github 的提交吗?

我似乎找不到办法做到这一点。我试过例如:

但它只会中止:

abort:服务器上的 refs/heads/master 已更改,请在推送前拉取并合并

通过 github web 界面查看,似乎没有strip像 bitbucket 中的任何命令。如何在不需要在我的工作机器上安装 git 客户端的情况下核对最后提交的变更集?

现在我正在考虑的解决方案是从 github 上删除 repo,重新制作它,然后将我的本地 repo 推上去。这会起作用,但它更像是一种“蛮力”的方法,所以我认为它是最后的手段。

0 投票
2 回答
1921 浏览

python - 在 Windows 上使用 git-remote-hg

根据这个答案https://stackoverflow.com/a/13354944/867294应该很容易设置 git 以使用 mercurial “没有依赖关系或任何东西”。

这在 Windows 上似乎并不顺利。

我尝试遵循本指南

https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg

在修复 makeFile 以在我的系统上工作并构建 git 之后,我无法调用 git-remote-hg,因为它抱怨它找不到 python 解释器,所有这些都很难正确配置。所以我手动调用它

这现在给了我以下错误。

我怎样才能解决这个问题 ?
如果任何地方都有预构建版本,那将是非常棒的,因为我觉得我正在做很多事情来让它工作。

0 投票
1 回答
708 浏览

git - Hg-git 不在 Github 上推送提交

我有这个问题hg-git,我不能再推送任何提交Github了。以前我完全没有问题。

我有一个 Mercurial 存储库Bitbucket,我在其中推送到 Github,其中

这曾经可以工作,但是现在,当我这样做时,hg总是返回没有更改并且提交未更新为Github. 它能够连接,没有那种问题。这真的很奇怪,有些东西可能已经损坏了。所以我做了一个新鲜的

来自的 repo Bitbucket,检查提交历史记录是否存在,然后再次将 hg push 到 Github,仍然没有发现任何更改。

可能是什么问题呢?

0 投票
2 回答
3317 浏览

git - 来自 Github 的 hg-git clone 给出“中止:存储库不相关”

我有一个项目,其主要(Mercurial)存储库位于 SourceForge 上,但 Bitbucket(Mercurial)和 Github(Git)上有克隆。

现在我一直在使用hg-git将 Mercurial 存储库推送到 Github,据我了解该过程,一些元数据在此过程中保存在 Mercurial 存储库中。

现在,当重新克隆 Bitbucket 存储库并重新克隆 Github 存储库时,如果我发出 ahg pull ../github-repo我得到:

为什么会这样?我怎样才能让 Mercurial 相信它们确实是相关的?还是我必须依赖我最初推送到 Github 的原始存储库?我仍然拥有它,但假设我丢失了它,除了手动变更集移植之外,我还有哪些选择?


注意:由于拉取请求,Github 存储库已更改(新变更集)。但是 SourceForge 和 Bitbucket 存储库仍然认为彼此是相关的。现在的任务是将变更集从 Github Git repo 拉到本地,并将它们分别推回 SourceForge 和 Bitbucket。

0 投票
1 回答
319 浏览

git - 从 Git 存储库中拉到 Hg 存储库,这是同一个项目,但已经丢失了历史记录

我的情况如下。

我克隆的项目最初是使用 Mercurial 进行版本控制的,我有一个原始 repo 的克隆及其所有历史。在某个时间点,该项目的所有者决定迁移到 GitHub,但在迁移过程中丢失了所有历史记录,因此这个新的仓库虽然是旧项目的延续,但实际上是从修订版 0 重新开始。

我想坚持使用 Hg,Hg-Git 显然可以让我从 Git 存储库中提取,但我不知道该怎么做是将 Hg 存储库的头部与 Git 存储库的尾部粘在一起所以我可以像以前一样继续拉下定期更新。Git 中与 Hg 存储库的头部匹配的实际提交不是第一次提交,所以它不是尾部的尖端。

我认为 hg convert 和 --splicemap 可能很有用,但我读的越多,它对我来说就越不像一个解决方案。

任何人都可以就我如何实现这一目标提供任何建议吗?


更新
只是为了任何可能尝试做类似事情的人的信息,我终于设法达到了我想要的结果,但这是一条漫长而曲折的道路,事实证明 hg convert 和 splicemap 毕竟是答案。

  1. 我使用 hg-git 插件从 Github 下载了 Git 存储库。
  2. 然后我将它克隆到一个新的 repo 并使用hg pull --force拉入相关但断开连接的 Hg repo 内容。
    所以现在我有一个包含 2 个不同的开发分支的仓库,就仓库而言,它们没有共同的祖先,我将把它称为hydra
  3. 使用hg convertsplicemap我将历史记录中匹配点的分支加入到一个新的 repo 中,然后运行​​hg strip以摆脱杂散的不必要位。
  4. 然而,诀窍是原始的 Git 存储库将被更新,我希望能够将新的更改引入到这个联合的存储库中。
    解决方案?批处理文件。
    是的,你没听错,批处理文件。
    该解决方案实际上是一组 3 个,首先从 Github 拉到仅包含 Git 存储库的存储库。第二个从 Git 存储库中提取到 hydra 中(汞源不会改变,所以我不需要再次从中提取)。第三次重新运行hg convert命令,以便它使用来自 hydra 的新信息更新加入的 repo。

这很不愉快,它很冗长,而且设置起来有点像噩梦,但它现在运行得很干净,我的最终回购是一个可预测且合理的大小。

0 投票
1 回答
1195 浏览

hg-git - 如何使用 hg-git 推送到不同的分支?

当我处理我的 Git 存储库克隆时,远程内容发生了变化:

我不想合并,而是想将提交从本地副本推送到不同的远程分支。我该怎么做呢?

0 投票
1 回答
875 浏览

git - Hg-git - 没有名为ordereddict的模块

我想我已经正确安装了 Hg-Git,但是当我尝试推送到 Git 服务器时,它会抛出这个错误:

这个错误的原因是什么,我该如何解决?

0 投票
1 回答
245 浏览

git - 如何从上游 mercurial 变基到 git fork?

python 库suds似乎找不到一个稳定的维护者,而少数已经弥补了漏洞的人似乎并不同意一个通用的 VCS。

有很多关于如何在 git 和 hg 之间做各种事情的指南,但是其中大多数似乎都围绕子模块和来回转换存储库。如何简单地将上游更改从远程 hg 分支拉入本地 git 分支?理想情况下,我想做以下事情:

0 投票
1 回答
326 浏览

mercurial - 无法使用 hg-git 或 hg convert 将 Git 存储库转换为 Mercurial

我正在尝试将现有的 git 存储库转换为 mercurial,但没有运气。我已经尝试过 hg convert,但是当我运行 hg convert 时,如下所示:

我收到以下错误:

当我尝试使用 hg-git 克隆存储库时,我得到了同样的错误。我已经尝试使用 hg convert 和 hg-git 针对本地克隆的存储库和通过 HTTP 提供的存储库,并且我已经尝试了 Windows 和 Linux 机器上的转换/克隆过程。非常感谢您对此的任何帮助。

0 投票
2 回答
389 浏览

git - Mercurial:退出公共变更集并重新应用到新的公共分支?

我们正在使用 Kiln 和 Fogbugz;Kiln 应该无缝地允许 git 和 hg 一起工作。但是,我们遇到了一个问题,即 git 分支在 mercurial 中被视为书签;在推送更改之前,我们没有在我们的 repo 中发现这一点,现在分支有点被污染了。

我的默认分支中有公共变更集,应该在自定义分支中。我可以将它们退出,但我需要将它们重新应用到其他公共分支。我担心变基,因为这些是公开的变化。

处理这种情况的最佳方法是什么?

编辑:我想我可能能够使用 mercurial 队列将变更集转换为补丁,但变更集是不可变的,因为它们是公开的。由于类似的原因,我也不能做 hg strip。