我有一个具有mercurial HG代码源管理的项目,并尝试在VSTS / Git平台上迁移它。
我读到有一个工具可以做到这一点,“fast-export”......所以我尝试但没有达到在Windows中工作的目的......
假设我D:\MyProject
包含.hg
目录和项目代码文件,我
fast-export
个文件,D:\MyProject-git
D:\MyProject-git
git init
命令中启动(当时出现了一个新的.git
目录); D:\MyProject-git
我做了
..\fast-export-master\hg-fast-export.sh -r "D:\MyProject"
现在奇怪的事情开始发生了,一个命令行窗口出现并且消失得如此之快我不明白发生了什么,所以我重新启动了上一个命令,希望看到这个消息......我应该尝试几次直到能够在printcreen中捕获命令行消息,这说明奇怪的事情:
其中:没有D:\ fast-export-master \ hg-fast-export.sh in(/ c / Users / xxx / bin:mingw64 / bin:/ user / local / bin:/ usr / bin:/ bin / mingw64 / bin:/ usr / bin:/ c / Users / xxx / bin:/ c / ProgramData / Oracle / Java / javapath:/ c / WINDOWS / system32 [... etc ...等。 ..] )
我想知道问题是什么以及如何解决......
编辑:
按照@ max630建议,我重新安装了Python并更新了PATH,所以它在命令中被识别
> python
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
从开始菜单打开“GIT Bash”,然后
cd "/D/MyProject-git"
../fast-export-master/hg-fast-export.sh -r "D:\MyProject" --force
给出了:
../fast-export-master/hg-fast-export.sh: line 175: python: command not found
C:\Program Files\Git\mingw64\libexec\git-core\git-fast-import.exe statistics:
---------------------------------------------------------------------
Objects allocated: 5000
...
答案 0 :(得分:1)
我认为您关注的是您导入了" hg-fast-export"根据错误消息" D:\ fast-export-master \ hg-fast-export.sh"进入未添加到环境变量的目录中在环境变量列表中找不到,因此请尝试在环境变量中添加以下" D:\ fast-export-master \"然后重试。
如果它还没有成功,请查看本文并按照所说的步骤进行操作:
https://www.appveyor.com/blog/2014/02/23/converting-mercurial-repository-to-git-on-windows/
作者已经复制了目录" hg-fast-export"进入新目录git(没有.git of" hg-fast-export")并且还在他的环境变量中添加了hg,git和python。
祝你好运答案 1 :(得分:0)
与git捆绑的bash中似乎存在一个错误。它没有初始化" $ @"从cmd直接运行.sh文件开始正确。
打开" GIT Bash"从开始菜单,然后发出命令:
[root@localhost /]# locate startup.sh
导航至cd "/D/MyProject-git"
和
D:\MyProject-git
运行脚本
答案 2 :(得分:0)
由于您已经安装了TortoiseHg,因此可以更轻松地将hg迁移到git。
首先,在TortoiseHg中启用hggit:
TortoiseHg - >全球设置 - >扩展程序标签 - >选择hggit - >行。
然后使用以下命令迁移并推送到VSTS git repo:
# In an empty folder
mkdir git
cd git
git init
cd ..
hg clone <URL for Hg repo>
cd hgrepo
hg bookmarks ../git
cd ..
cd git
git checkout hg
git remote add origin <VSTS git repo URL>
git push origin --all
答案 3 :(得分:0)
下面是@ max630的建议,我重新安装了Python并更新了路径
从Git 2.24(2019年第四季度)开始,您将必须安装Python 3,因为->start_app
脚本(在hg-to-git
中)已更新为可与Python 3一起使用。
请参见commit d17ae00的Hervé Beraud (4383
)(2019年9月18日)。
(由Junio C Hamano -- gitster
--在commit 8f53fe1中合并,2019年10月7日)
contrib/
使其与python3和python2兼容Python 2将于2019年底停产,许多发行版和系统现在都将python 3作为其默认版本。
重写
hg-to-git:
中使用的功能,这些功能在Python 3中不再受支持,从而使更新的代码仍可在Python 2中使用:
hg-to-git
不是陈述;请改用print()
不再存在;使用“dict.has_key(key)
”。
答案 4 :(得分:0)
万一它对任何人都有帮助,我花了一段时间才使hg-fast-export正常工作,但是我最终还是到了。这是我遇到的一些问题:
答案 5 :(得分:0)
我无法在Windows中进行“快速导出”。我花了很多时间尝试使用“快速导出”(aka hg-fast-export),“ hg-git”和Cygwin从Mercurial(hg)转换为Git的众多推荐方法。他们每个人由于某种原因而失败。其中许多基于Mercurial,Python,Git等旧版本。
最终对我有用的是遵循http://www.lorenzomori.com/programming/convert-your-mercurial-repository-to-git-on-windows/
中Lorenzo Mori的简单指示答案 6 :(得分:0)
我花了数小时的时间来尝试上述许多解决方案,但对我来说,没有任何一件事情奏效。我在tortoisehg中尝试了快速导出和hggit的各种变体。
最后,我使用GitHub Importer将所有Mercurial存储库导入到GitHub。
我只需要提供存储库的URL(我的存储在BitBucket中),这是一个非常流畅且容易的过程。比尝试让python在git bash,路径变量等中工作要平滑得多!
我还进行了一些重大的本地更改,这些更改我无法推送到bitbucket,因为它们不允许推送。因此,我不得不将这些文件手动复制到git存储库中。
从VCS根目录从bitbucket切换到github时,我也无法获得团队合作感来检测更改。所以我在团队城市中创建了一个新项目。
我希望这可以帮助面临这些挑战的任何人。