Converting Mercurial folder to a Git repository
I don't have a huge experience with Mercurial, I'm mostly a Git guy.
I would love to mirror a specific Mercurial folder/file in a git Repository. What I'm actually trying to do is to export the history of a file from a Mercurial repository to Git and being able to keep this in sync with future commits.
Do you have any suggestion on how to proceed? I believe that the way to go should be to get the history of the Mercurial patch, periodically export every single commit as a patch and apply the Mercurial patches to the Git repository.
尝试快速导出:
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 extension
Hg-Git can be used to convert a Mercurial repository to Git. You can use a local repository or a remote repository accessed via SSH, HTTP or HTTPS.
Example of local repositories conversion.
Install Hg-Git.
On Windows, TortoiseHg comes with Hg-Git, though you need to enable it via the setting tool (in extensions section)
or manually in ~/mercurial.ini
[extensions]
hggit =
Use the following commands to convert the repository:
$ mkdir git-repo; cd git-repo; git init; cd ..
$ cd hg-repo
$ hg bookmarks hg
$ hg push ../git-repo
The hg
bookmark is necessary to prevent problems as otherwise hg-git pushes to the currently checked out branch confusing Git. This will create a branch named hg
in the Git repository. To get the changes in master use the following commands (only necessary in the first run, later just use git merge
or rebase
):
$ cd git-repo
$ git checkout -b master hg
You can (from Mercurial side):
--filemap
option convert part of original repo into smaller with only needed files|directories or (instead of hg-git), using Mercurial bridge in Git, clone|pull repository from Git
链接地址: http://www.djcxy.com/p/37624.html上一篇: 如何在Mercurial中结合两个项目?