问题标签 [mercurial-convert]

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 回答
440 浏览

git - pulling git repo with mercurial fails with error "path contains illegal component .hg/00changelog.i"

I have a project versioned with git and our client wants to access it with Mercurial, so our idea was to convert the project using the plugin “hg-git”.

The error is thrown when cloning the "converted" repository with a hg command following these steps:

  • create a git repository on Bitbucket
  • clone locally using git commands, added an android project, commit, pushed. Works fine.
  • Run hg-git "convert" command on the local folder.
  • I add, commit, push to Bitbucket.

The project structure was automatically changed by the plugin and a new folder containing the .hg files was generated inside the my folder and looks like that:

When I try to import using Mercurial commands the "converted" git project from Bitbucket it is aborted:

To try to solve the "nest" problem I read on some SO post that the .hg folder has to be on the same level as the .git folder. The structure changed to:

I commit the changes, push to Git repo, then tried again to hg pull:

I have been looking for almost 2 days to solve this second error, reinstalled from brew everything, it failed, then macport again, checked python and mercurial, tried to create a new bitbucket repo and start from scratch, looked on GG and SO other related posts, modified the .hgrc file, I still get the error.

I tried another option: "Mirror git and mercurial repos the lazy way" by Greg Malcolm (same local project mirrors/sync both a git repository on one side and a mercurial on the other).

That was the only one working solution during my test. But that is not exactly what I wanted to do as you have 2 different repo to sync and I would like to have only one with the .git and .hg in it.

I hope someone can help me either to solve the error message for the solution using a single Git repo accepting both .git push and hg pull and or tell me if the "mirroring" of 2 different repo (one git, one hg) is the only working option.

Thx!

Config / installation: Mac Os Sierra Installed the rest as said in this SO answer - macports - python 2.7 - Mercurial - hggit

Content of .hgrc file :

0 投票
1 回答
163 浏览

svn - 同步 svn 和 mercurial repo

我们有一个活跃的 svn 存储库,我们正在计划迁移到 mercurial。这个想法是创建一个新的 mercurial 存储库,将 svn 存储库与历史同步,为其创建一个 teamcity 构建,然后将两个开发人员转移到 mercurial 上进行试验,并确保它的所有内容都符合要求。

这意味着我们需要 svn 和 mercurial 之间的双向同步。我已经看到这个链接Syncing SVN to Mercurial using svnsync & hg convert -- misses svn:externals? 哪种描述了一种方式,但它相当笨重且手动。

有没有更好的方法来实现这一目标?

谢谢阅读

0 投票
1 回答
258 浏览

version-control - Mercurial - 转换错误 - 无法转换合并提交

我有一个巨大的存储库,其中包含以下布局的许多子文件夹:

我正在尝试从文件夹创建另一个仓库Folder1, Folder2 and Folder3

为此,我创建了要在转换中使用的文件映射,如下所示:

但是当我尝试使用以下方法转换存储库时:

我收到以下错误:

过去有没有人遇到过这种问题?如何摆脱这种错误?我试图关闭与默认合并的分支,但没有帮助。

另外,我在哪里可以找到有关如何清理存储库的资源?这个 repo 使用了很多命名的分支,它们非常混乱。

0 投票
1 回答
97 浏览

mercurial - 更改修订父项以从历史记录中删除较早的修订?

如果这是原始结构,如何快速地在 mercurial 中重新生成一棵树:

A-B-C-D-E-F

我想将其更改为:

D-E-F(甚至A-D-E-F会这样做)

我用拼接图尝试了这个答案中的建议,但它失败并出现错误splice map revision <hash> is not being converted, ignoring'

它也打印出来abort: no node!

任何帮助将不胜感激。谢谢你。

0 投票
1 回答
64 浏览

mercurial - hg 从 git 转换 - 只生成 hg 文件夹?

我正在使用hg convert在运行 macOS Mojave 的 Mac 上将 Git 存储库转换为 Mercurial。

我看过类似的问题如何正确使用 hg converthg convert 实际上没有转换?但他们还没有给出明确的答案。

我输入的命令是:

输出如下:

这一直持续到最近的提交......

我是 Mercurial 的新手。我看不到任何错误,但目标目录仅包含一个 .hg 文件夹。

的输出hg sum是:

我是否正确使用了这个命令?我期待在新文件夹中看到我所有的 src 文件。

0 投票
1 回答
122 浏览

mercurial - Mercurial convert with --branchmap :转换包含空格的分支名称

hg convert用来清理一些 hg 存储库中的混乱。在此过程中,我正在使用该--branchmap选项来重命名一些分支。

问题是,名称中带有空格的分支 ( a b) 不会被重命名。我尝试将它们括在引号中(似乎与 一起使用--filemap)或用反斜杠转义,但没有结果。

如何重命名名称中带有空格的分支?

0 投票
2 回答
125 浏览

mercurial - 带有 --filemap 的 Mercurial 转换因任何虚拟重命名而失败

我正在尝试使用hg convert --filemap. 转换适用于文件映射中的任何选项,除了rename. 如果我向文件映射添加任何rename选项,那么它在第一次与abort: unable to convert merge commit since target parents do not merge cleanly.

我尝试只在文件映射中放入一个虚拟 rename foo bar选项(存储库中实际上不存在 foo 或 bar 路径),我得到了相同的结果

我尝试输入一个真正的重命名(现有的第一个路径),同样的情况。只要任何重命名进入那里,它就会中断。

这是一个错误吗?我究竟做错了什么?

更新:重现:

创建文件a,在其中写一些东西,提交。更新到父级,在 中写入其他内容a,提交。与其他头部合并,手动修复冲突。

Filemap 由一行和仅一行组成:rename foo bar. 运行hg convert。如果提交不能自动合并,它将失败。