Mercurial에서 원격 저장소를 어떻게 추가 할 수 있습니까?


99

다음과 같은 방식으로 Git 리포지토리로 작업하고 있습니다.

  • 다른 프로덕션 머신에 마스터 리포지토리와 여러 리모컨이 있습니다.
  • 프로덕션 코드를 리모컨으로 푸시하고 변경 사항을 적용하기 위해 서비스를 다시 시작합니다.

저는 Git에서 Mercurial로 전환하려고합니다. 어떻게 이런 일을 할 수 있는지 미리 알고 싶습니다.

답변:


130

[paths]로컬 클론의 .hg/hgrc파일 섹션에 항목을 추가합니다 . 다음은 .hg/hgrc파일에 들어갈 섹션의 예입니다 .

[paths]
remote1 = http://path/to/remote1
remote2 = http://path/to/remote2

그런 다음 같은 명령을 사용 hg push remote1하여 해당 저장소에 변경 집합을 보낼 수 있습니다 . 업데이트 할 원격 리포지토리가 작업 디렉토리 인 changegroup경우 업데이트를 수행하는 원격 위치에 후크를 배치 해야합니다 . 다음과 같이 보일 것입니다.

[hooks]
changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh

모든 사람이 원격 리포지토리가 푸시시 작업 디렉토리를 자동으로 업데이트하는 것을 좋아하는 것은 아니며 확실히 기본값도 아닙니다.


23
.NET hg paths과 동일한 리모컨 사용을보고 싶은 사람 에게는 git remote -v.
Keyo

5
default-push (예 : remote1 대신)를 사용하면 "hg push"를 입력 할 수 있습니다. 그런 다음 기본 푸시 저장소가 사용됩니다. 매우 유용합니다.
Christian

6
@Christian default-push은 일반적인 푸시 대상이 일반적인 풀 소스와 다른 경우에만 필요 / 유용합니다. 동일하거나 절대 당기지 않으면 default충분합니다.
Ry4an Brase 2012 년

2
이것에 대해 더 추가하기 위해 : default-pushdefault구성 파일에 둘 다있는 경우 첫 번째는 푸시에 사용되고 후자는 풀에 사용됩니다. 동일한 원격 리포지토리에서 푸시 및 풀 (중앙 집중식 방식으로 Mercurial을 사용하는 경우 수행 할 수 있음)에서 가져 오려면 default파일 만 넣으 십시오. (;-) 아니면 내가 너무 많이 CVS 사람의 해요) 그냥 ... 먼저 푸시에 그렇게 그들은 약간의 명령 줄 옵션을 추가 한 경우 너무 멋진 것
tiktak

Mac에 Mercurial v2.6.2가 설치되어 있고 경로를 설정할 파일이 있습니다 .hg/hgrc(파일 이름 앞에 DOT 없음).
Regis Zaleman 2013 년

9

기본 경로를 추가하려면 파일 default에서 작업 해야 ~project/.hg/hgrc합니다. 다음과 같이 :

[paths]
default = https://path/to/your/repo

행운을 빕니다.


5

hg-git GitHub 플러그인을 살펴볼 수 있습니다 .

hg-git 일반 아이디어

Mercurial에서 Git 서버 저장소로 푸시 및 풀 기능 추가.
즉, Mercurial의 Git 기반 프로젝트에서 공동 작업하거나 Git 및 Mercurial을 모두 사용하는 개발자와 팀의 공동 작업 지점으로 Git 서버를 사용할 수 있습니다.

참고 : 최신 버전의 Mercurial에서 해당 도구를 테스트하지 않았습니다.


1
모든 것을 수은으로 이식 할 수있는 능력이 있습니다. 소스 관리를 위해 하나의 도구 만 사용하고 싶습니다. 저장소가 적절한 구조를 구축하면 변환 한 다음 생산을위한 수은 명령 만 수행하십시오. 나는 git과 mercurial이 모두 협력 할 수 있지만 결코 시도하지 않았다는 것을 알고 있습니다.
토플리스

2
^ Chris : 질문도 마찬가지입니다. Git 리포지토리를 Mercurial 리포지토리로 어떻게 변환합니까? "또는"원격 Hg 리포지토리 선언 / 설정 방법 "(예 : superuser.com/questions/43686/… ) 또는"어디에서 원격이 Hg로 선언 되었습니까? "( crazythinking.wordpress.com/2009/03/07/… )
VonC

0

Unix를 사용 중이고 Git이 설치되어있는 경우이 bash 함수를 사용하여 텍스트 편집기없이 원격 경로를 쉽게 추가 할 수 있습니다.

add-hg-path() {
    git config -f $(hg root)/.hg/hgrc --add paths.$1 $2
    awk '{$1=$1}1' $(hg root)/.hg/hgrc > /tmp/hgrc.tmp
    mv /tmp/hgrc.tmp $(hg root)/.hg/hgrc
}

그런 다음 다음을 사용하여 호출하십시오.

$ add-hg-path remote1 https://path.to/remote1

누군가 Powershell과 동등한 제품을 만들고 싶다면 그것도 포함하고 싶습니다. 다른 잠재적 인 개선 사항으로는 매개 변수에 대한 오류 검사와 $(hg root).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.