将Mercurial文件夹转换为Git存储库

我没有Mercurial的丰富经验,我主要是一个Git的人。

我很想在git Repository中镜像特定的Mercurial文件夹/文件。 我实际上试图做的是将文件的历史记录从Mercurial存储库导出到Git,并能够与未来的提交保持同步。

你有什么建议如何进行? 我相信要走的路应该是获取Mercurial补丁的历史记录,定期将每个提交作为补丁导出并将Mercurial补丁应用于Git存储库。


尝试快速导出:

cd
git clone git://repo.or.cz/fast-export.git
git init git_repo
cd git_repo
~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
git checkout HEAD

Hg-Git扩展

Hg-Git可用于将Mercurial存储库转换为Git。 您可以使用本地存储库或通过SSH,HTTP或HTTPS访问的远程存储库。

本地存储库转换示例。

  • 安装Hg-Git。

  • 在Windows上,TortoiseHg带有Hg-Git,但您需要通过设置工具启用它(在扩展部分中)

    TortoiseHg设置

    或者在~/mercurial.ini手动

    [extensions]
    hggit =
    
  • 使用以下命令转换存储库:

    $ mkdir git-repo; cd git-repo; git init; cd ..
    $ cd hg-repo
    $ hg bookmarks hg
    $ hg push ../git-repo
    
  • hg书签对于防止问题是必要的,因为否则hg-git会推送到当前签出的分支,令Git混淆。 这将在Git存储库中创建一个名为hg的分支。 要获得主站中的更改,请使用以下命令(仅在首次运行时需要,稍后使用git mergerebase ):

    $ cd git-repo
    $ git checkout -b master hg
    

    你可以(从Mercurial方面):

  • 使用带--filemap选项的Convert扩展--filemap原始repo的一部分转换为只包含所需文件目录的较小部分
  • 与hg-git扩展推卸载回购给Git
  • 或者(而不是hg-git),使用Git中的Mercurial桥,Git中的clone | pull repository

    链接地址: http://www.djcxy.com/p/37623.html

    上一篇: Converting Mercurial folder to a Git repository

    下一篇: Spark: graphx api OOM errors after unpersist useless RDDs