Convert Bitbucket Mercurial repository to Git. Maintain branches and history. Online solution

自作多情 提交于 2019-12-04 21:48:27

问题


How do I convert a Bitbucket Mercurial repository (Hg repository) to a Git repository? I want to keep branches and commit history.


回答1:


The only way I found to convert a Mercurial repo to Git, while keeping all the branches, was to use GitHub's importer. This was also the easiest since it's all done online. Nothing local to install, no command line stuff.

Main idea

Use Github's importer to convert Bitbucket Mercurial repo to GitHub Git repo. Then import that back into Bitbucket.

The steps

In Bitbucket:

Rename the Mercurial repository that you want to convert (if you want the new Git repo to have the same name as your Mercurial repo did). You do this in Settings. For example, name it projectname_mercurial.

Grab the Clone URL of the repository. (On the repo's main page, click Clone and grab just the URL, like https://username@bitbucket.org/username/projectname )

In Github:

If you don't already have an account, create one https://github.com

Use the GitHub importer https://github.com/new/import

  • Enter the Clone URL from Bitbucket.
  • Give it a name. It doesn't really matter what.
  • Set it to private. Public is default!

    Begin Import

WAIT! Do not close the page when it says that you can (We'll email you...). Wait for it to ask you for the repo credentials. This can take several minutes. Then enter the credentials. (Assuming it requires credentials.)

WAIT AGAIN! It's again going to ask for your repo credentials. At least it did for me, every time.

Now you wait until it's done. You will get an email.

When it's done, grab the GitHub project URL. It's just the webpage URL when you are on the GitHub project page.

In Bitbucket:

Create a new repository using the "+" > Import > Repository menu option.

  • Enter the GitHub project URL
  • Check "Requires authentication" Enter your GitHub credentials.
  • Enter the new Git repository name (For example, the name of your Mercurial project before you renamed it.)
  • Keep Access level as Private.

In Github:

Delete the imported project: Project's Settings tab > Delete this repository



来源:https://stackoverflow.com/questions/57716968/convert-bitbucket-mercurial-repository-to-git-maintain-branches-and-history-on

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!