Programing

수은 클라이언트로 힘내?

lottogame 2020. 10. 25. 11:32
반응형

수은 클라이언트로 힘내? 왜 git-hg가 없습니까?


이것은 한동안 나를 괴롭히는 질문입니다. 나는 숙제를하고 stackoverflow를 확인했으며 내 질문에 대해 적어도 다음 두 가지 주제를 찾았습니다 .git-svn같은 Git for MercurialMercurial 저장소와의 Git 상호 운용성

이 문제를 해결하기 위해 심각한 인터넷 검색을 수행했지만 지금까지는 운이 없습니다. 나는 또한 이것을 알아 내기 위해 Git Internals 책과 Mercurial Definitive Behind the Scenes읽었 습니다. 적절한 git-hg 유형의 도구를 찾을 수 없었던 이유가 여전히 약간 의아해합니다.

내 관점에서 git-svn은 주요 기능 중 하나이며, 직장에서도 수은보다 git을 사용하기로 선택한 이유입니다. 내가 좋아하는 워크 플로우를 사용할 수있게 해주 며, 다른 사람이 신경 쓰지 않으면 귀찮게 할 필요가 없습니다. 체인 중 하나에서 제안한 것처럼 중간 hg 리포지토리를 사용하여 앞뒤로 변환하는 것이 중요하지 않습니다.

어쨌든, 내가 읽은 hg와 git은 개념 설계에서 매우 비슷해 보입니다. 내부적으로차이점있지만 그 어느 것도 hg 용 git 클라이언트 생성을 방해해서는 안됩니다. 나에게 보이는 것처럼 원격 추적 분기와 문어 병합은 git을 hg보다 훨씬 강력하게 만듭니다.

그래서, 진짜 질문은, git-hg가 존재하지 않는 (또는 적어도 찾기가 매우 어려운) 진짜 이유가 있습니까? git 사용자 (및 개발자)가 git-hg 도구의 부족을 초래 한 hg 대응 자에 대한 적대감이 있습니까? 이와 같은 것을 개발하고 공개 할 계획이 있습니까? 나는 (매우 미약 한 C- 스킬을 가지고 있지만) 자원 봉사에 참여하여이 일을 완수 할 수 있었다. 나는 이것을 스스로 시작할 수있는 완전한 지식을 가지고 있지 않다.

이것이 모든 DVCS 전쟁을 영원히 끝내는 도구가 될 수 있을까요?


hg-git 과 작가의 Pycon 프레젠테이션 은 상황에 대한 그의 견해를 설명합니다. 인터넷 검색 중에 이러한 문제를 발견했는지 확실하지 않지만 내 질문에 대답했습니다.


나는 이것을 시도하지 않았지만 git-hg 프로젝트 가있는 것 같습니다 . 프로젝트는 페이지와 README에서 다음과 같이 설명합니다.

수은 저장소를 확인하고 추적하기위한 git-hg 유틸리티입니다.

mercrial [sic] 프로젝트를 확인하고 추적하기위한 스크립트 세트입니다.

하지만 양방향으로 작동하지 않는 것 같습니다 ( 문제 추적기 참조 ).


이를 실현하기위한 또 다른 프로젝트가 있습니다 : git-remote-hg. 실제로 두 개는 네이티브 ( https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg 참조 )와 hg-git 기반 ( https://github.com 참조 ) 입니다. com / rfk / git-remote-hg ). 전자는 후자보다 훨씬 빠르지 만 아직 불완전하고 개발 중입니다.

이미 존재하거나 개발중인 다른 시스템에는 실제로 git 원격 도우미 (이러한 도구가 호출 됨)가 있습니다. 여기에는 Subversion, CVS, bazaar 및 MediaWiki에 대한 지원이 포함됩니다.

git을 통해 Mercurial 저장소를 복제하면 다음과 같이 간단하게 수행됩니다.

git clone hg::https://hg.example.com/some-mercurial-repo

업데이트 : 지금까지 "네이티브"라는 세 번째 항목이 있습니다. 즉, 여기에 그의 답변에서 언급 한 Felipe의 항목입니다. : 그것처럼이 하나 개의 모습은 곧 자식 '의 contrib'디렉토리의 일부가 될 수 https://github.com/felipec/git-remote-hg 그것은 검토 (자식에 일부 패치 불구하고, git 자신을 패치 할 필요없이 작동 지금 )을 적용하여 전반적인 사용자 경험을 개선 할 수 있습니다.

업데이트 2 : 그리고 이제 또 다른 경쟁자가 있습니다.이 경쟁자는 상당히 활발하게 개발 중이며 felipe의 코드를 기반으로합니다 : https://github.com/buchuki/gitifyhg- 지금까지는 저에게 아주 잘 작동하지만 여전히 거친 부분이 있습니다.

업데이트 3 : gitifyhg와 Felipe의 git-remote-hg는 현재 적극적으로 유지 관리되지 않습니다. 당분간 나는 최근 Mercurial 버전에서 작동하도록 만드는 것을 포함하여 몇 가지 수정 사항을 포함하여 Felipe의 코드 형태를 만들었습니다. https://github.com/fingolfin/git-remote-hg 에서 얻을 수 있습니다 . 마지막으로, 내부적으로 git-cinnabar완전히 다른 접근 방식을 사용하는 또 다른 최근 경쟁자 가 있습니다. 아직 직접 시도하지는 않았지만 https://github.com/glandium/git-cinnabar 에서 찾을 수 있습니다.


hg-git은 원격 수은 저장소를 사용하여 로컬에서 git 작업에 사용할 수 있습니다. http://traviscline.com/blog/2010/04/27/using-hg-git-to-work-in-git-and -hg로 푸시 /

거기에 댓글도 놓치지 마세요.


누군가 이미 두 개의 git-remote-hg를 언급했지만 여기에 새로운 것이 있습니다.

mercurial 및 bazaar에 대한 git의 브리지 지원

그것은 더 많은 기능을 가지고 있고 msysgit보다 더 안정적으로 작동해야하지만 가장 중요한 것은; 종속성이나 사용자 지정 git 빌드가 필요하지 않습니다. $ PATH에 복사하면 됩니다.

출력이 hg-git과 정확히 동일한 지 확인하기위한 광범위한 테스트가 있으므로 적어도 작동해야합니다.


이를 수행하는 새로운 프로젝트가 있습니다.

양방향 작업을 훌륭하게 통합합니다.


나는 그것을 만드는 것에 대한 인센티브가별로 없다고 생각합니다. 어느 누구도 하나를 다른 것 위에 사용해야 만 끔찍하게 불구가되지 않을 것입니다. 둘 다 DVCS입니다. 물론 모든 사람이 자신의 선호도를 가지고있을 수 있지만 일반적으로 필요에 따라 다른 것을 사용합니다. 나는 git이 매우 널리 사용되기 때문에 hg-git이 등장했다고 가정하지만 훨씬 적은 수의 프로젝트에서 hg를 채택했습니다.

반대로 프로젝트가 svn 또는 cvs를 사용하는 경우 DVCS를 맛본 사람은 누구나 아플 것입니다. git-svn / hg-svn 유틸리티를 원할 것입니다. 여전히 cvs / svn을 사용하는 많은 프로젝트가 있으므로 많은 수요가 있습니다.

하지만 둘 중 하나가 다른 하나보다 느리게 이기지 않는다고 가정하면 유용 할 것입니다 (git은 실제로 훨씬 더 큰 사용자 기반을 가지고 있다고 생각합니다).

큰 기술적 장애물이 없다는 것도 맞습니다. hg-git은 양방향이므로 둘 사이의 정보를 매핑하는 것이 가능합니다.

참고 URL : https://stackoverflow.com/questions/2526593/git-as-mercurial-client-why-no-git-hg

반응형