IT이야기

Bitbucket에서 Github으로 HG 프로젝트 미러링

cyworld 2021. 10. 26. 19:27
반응형

Bitbucket에서 Github으로 HG 프로젝트 미러링


Hg를 사용하여 Bitbucket에서 주로 호스팅되는 프로젝트를 github에 미러링하는 효율적인 워크플로가 있습니까?


다음과 같은 도구를 사용할 수 있습니다 hg-git.

  • 푸시 액세스 권한이 있는 위치에 Git 리포지토리를 설정하고,
  • 그런 다음 hg push [path]프로젝트 내에서 실행 하십시오. 예를 들어:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://git@github.com/schacon/hg-git.git
$ hg push

이것은 모든 Mercurial 데이터를 Git 객체로 변환하고 Git 서버로 푸시합니다.
해당 경로를 [paths]섹션에 .hg/hgrc넣은 다음 이름으로 푸시할 수도 있습니다.

hg-git


프로젝트에 Mercurial을 사용하면 git 사용자가 기여할 수 있도록 프로젝트의 git 미러를 빠르고 쉽게 만들 수 있습니다. hg-gitGitHub에서 Mercurial 미러를 관리하는 데 사용하는 방법에 대한 자습서를 만들었습니다 .

GitHub 계정을 시작하는 방법, Mercurial에서 GitHub로 프로젝트를 푸시하는 방법, GitHub에서 기여(풀 요청)를 수락하는 방법을 다룹니다. 다음은 블로그 게시물에 대한 링크입니다. http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/


'git-remote-hg'는 Git 프로젝트의 준공식 Mercurial 브리지로, 일단 설치되면 Mercurial 저장소를 Git 저장소인 것처럼 복제, 가져오기 및 푸시할 수 있습니다.

bin 경로에 git-remote-hg추가 합니다. 그런 다음 github 에서 언급한 대로 미러링할 수 있습니다 .

git clone --mirror  hg::https://bitbucket_repo

그런 다음 복제 된 저장소로 이동하십시오.

git remote set-url --push origin https://github.com/exampleuser/mirrored

마지막으로 거울을 동기화하십시오

git fetch -p origin
git push --mirror

2013년 7월 현재 BitBucket 수신 후 후크를 통해 이 프로세스를 자동화하는 웹 서비스인 BitSyncHub 가 있습니다. 하지만 서비스 쓰기 권한을 GitHub 리포지토리에 부여해야 합니다( bitsynchub기고자추가 ).


2019년 2월부터 보고하고 있습니다. 방금 이 문제가 발생하여 @vonc의 hg-git 사용 제안따라 작동하도록 몇 가지 누락된 단계를 채웠습니다. 여기에서 더 자세한 가이드를 제공하겠습니다.

  1. 저장소를 어딘가에 복제하고 ~/.hgrc 파일의 'extensions' 섹션을 다음과 같이 보이게 하여 hg-git을 설치합니다 .
[extensions]
hggit = [path-to]/hg-git/hggit

소스 리포지토리에서 최신 설치 지침을 찾았습니다. https://bitbucket.org/durin42/hg-git . 그러니 계속 주시하십시오.

  1. 아직 설치 하지 않은 경우 덜리치 설치 : pip install dulwich.

  2. GitHub에 빈 저장소를 새로 만듭니다(예: https://github.com/user/git-mirror ) .

  3. hg 소스 저장소를 복제하고 git 미러에 푸시합니다.

$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://git@github.com/user/git-mirror.git

빠르게 변환할 수 있는 또 다른 솔루션: https://github.com/frej/fast-export


Git-hg Mirror 서비스사용하여 이 작업을 수행 할 수 있습니다 (Github 저장소를 Bitbucket으로 미러링 또는 양방향 동기화 포함).

ReferenceURL : https://stackoverflow.com/questions/2670158/mirroring-a-hg-project-from-bitbucket-to-github

반응형