
나는 사용한다거북이Hg 작업대내 로컬 Windows 컴퓨터에서 저장소를 관리하고 있으며 TortoiseHg가 GUI를 사용하여 수행하는 클릭을 기반으로 명령을 구성하는 방식이 마음에 듭니다.
하지만 저는 TortoiseHg를 사용하여 웹 서버에 있는 원격 Unix Mercurial 클라이언트가 아닌 로컬 Windows 저장소를 관리하는 방법만 알고 있습니다.
SSH를 통해 터널링하고 Unix 웹 서버에 명령을 보내는 것이 가능합니까? TortoiseHg를 사용하여 웹 서버에서 원격으로 저장소를 관리하고 싶습니다.
답변1
아니요, 불가능합니다. SSH(및 HTTPS)를 통해 보낼 수 있는 유일한 "명령"은 hg push
및 입니다 hg pull
.
실제로는 "명령"으로 전송되지 않습니다. 대신 Mercurial은 자체 프로토콜을 사용하여 클라이언트가 "이 변경 세트가 있습니까?", "지점 헤드가 무엇입니까?"와 같은 몇 가지 사항에 대해 원격 서버에 쿼리할 수 있습니다. "이 묶음을 받아주세요!"
SSH를 사용하면 Mercurial 클라이언트가 SSH 터널을 만들고 hg serve --stdio
원격 호스트에서 시작합니다. 이 hg serve
명령은 위에서 설명한 Mercurial 유선 프로토콜을 말하는 것입니다. Bitbucket과 같은 호스팅 환경은 잠겨 있으므로오직SSH를 통해 실행할 수 있는 명령 — 그들은 서버에서 임의의 명령을 실행하는 것을 원하지 않습니다!
원격 저장소를 관리하는 경우너 스스로웹 서버: SSH로 로그인하고 Unix 서버에 빈 저장소를 생성해야 합니다.
$ hg init my-website
그런 다음 로컬 컴퓨터에서 서버로 푸시할 수 있습니다.
$ hg push ssh://your-server.com/path/from/home-dir/to/my-website
웹사이트 관리에 대해 이야기하고 있으므로 다음을 추가하고 싶을 수도 있습니다.
[hooks]
changegroup = hg update
원격 저장소의 파일 에 : 해당 저장소에 푸시할 때마다 .hg/hgrc
Mercurial이 실행됩니다 . hg update
이는 작업 복사본이 최신 파일로 업데이트되어 웹 서버가 이를 전 세계에 제공할 수 있음을 의미합니다.