수은

Mercurial
수은
Mercurial no border logo.svg
개발자올리비아[a] 매콜
초기 릴리즈2005년 4월 19일, 17년 전(2005-04-19)[1]
안정된 릴리스
6.2.1 / 2022년[2] 7월 22일
저장소
기입처Python, C [3] Rust
운영 체제Unix급, Windows, MacOS
유형버전 관리
면허증.GPL-2.0 이후
웹 사이트www.mercurial-scm.org Edit this on Wikidata

Mercurial은 소프트웨어 개발자를 위한 분산 리비전 제어 도구입니다.Microsoft WindowsFreeBSD, macOS Linux와 같은 Unix와 유사한 시스템에서 지원됩니다.

Mercurial의 주요 설계 목표는 개념적으로 [4]단순하면서도 고성능과 확장성, 분산형, 완전히 분산된 협업 개발, 플레인 텍스트와 바이너리 파일의 견고한 처리, 고급 분기 및 병합 기능입니다.통합 웹 인터페이스가 포함되어 있습니다.또한 Mercurial은 다른 버전 관리 시스템, 특히 Subversion 사용자의 전환을 용이하게 하기 위한 조치를 취했습니다.Mercurial은 주로 명령줄 기반 프로그램이지만 그래픽 사용자 인터페이스 확장을 사용할 수 있습니다.TortoiseHg 및 여러 IDE는 Mercurial을 사용한 버전 관리를 지원합니다.Mercurial의 모든 작업은 드라이버 프로그램의 인수로 호출됩니다.hg(수은 원소의 화학적 기호인 Hg에 대한 참조).

Olivia[a] Mackall은 Mercurial을 창시하여 2016년 말까지 수석 개발자로 활동했습니다.Mercurial은 GPL-2.0 이후 [6]라이선스에 따라 자유 소프트웨어로 출시됩니다.주로 Python 프로그래밍 언어를 사용하여 구현되지만 C로 작성바이너리 diff 구현을 포함합니다.

역사

맥칼은 2005년 [1]4월 19일에 처음으로 머큐리얼을 발표했다.이에 대한 자극은 BitmoverSourcePuller의 개발로 인해 무료 버전의 BitKeeper를 철회한다고 발표한 그 달 초입니다.

BitKeeper는 Linux 커널 프로젝트의 버전 관리 요건에 사용되었습니다.Mackall은 Linux 커널을 대체하는 분산 버전 관리 시스템을 작성하기로 결정했습니다.이 프로젝트는 현재 잘 알려진 Git 프로젝트가 비슷한 [7]목적을 가진 Linus Torvalds에 의해 시작된 지 며칠 후에 시작되었습니다.

Linux 커널 프로젝트는 Mercurial이 아닌 Git을 사용하기로 결정했지만, Mercurial은 현재 많은 다른 프로젝트에서 사용되고 있습니다(아래 참조).

Mercurial 메일링 리스트에 대한 답변에서 Olivia Mackall은 "Mercurial"이라는 이름이 어떻게 선택되었는지 설명했습니다.

첫 번째 발매 직전에, 나는 래리 맥보이가 ('fickle'이라는 의미에서) 'bitkeeper'의 대실패에 대한 기사를 읽었다.여러 가지 의미와 편리한 줄임말, 기존의 이름 붙이기 방식(이메일 주소 참조)에 적합하기 때문에 순식간에 마음에 들었습니다.그래서 머큐리얼은 래리의 이름을 따서 붙여졌다.Git도 [8][9]마찬가지인지 모르겠다.

OpenJDK와 같은 유명한 프로젝트에서는 과거에 [10]Mercurial을 사용했지만, Java 16에서는 OpenJDK가 사용되지 않습니다.

설계.

Mercurial은 SHA-1 해시를 사용하여 리비전을 식별합니다.네트워크를 통한 저장소 액세스의 경우 Mercurial은 왕복 요청, 새 연결 및 데이터 전송을 줄이는 HTTP 기반 프로토콜을 사용합니다.Mercurial은 또한 프로토콜이 HTTP 기반 프로토콜과 매우 유사한 SSH를 통해 작동할 수 있습니다.기본적으로는 외부 병합 도구를 호출하기 전에 3방향 병합을 사용합니다.

사용.

그림 1은 Mercurial에서 가장 중요한 작업 중 몇 가지와 Mercurial 개념과의 관계를 보여줍니다.

그림 1: Mercurial과 그 관계의 몇 가지 중요한 작업.

도입

Linux 커널 소스를 관리하기 위해 Mercurial이 선택되지는 않았지만 [11]Facebook, W3C Mozilla를 포함한 여러 조직에서 Mercurial을 채택했습니다.Facebook은 대규모 멀티프로젝트 저장소를 지원하기 위해 특별히 설계된 머큐리얼 서버인 [12][13]Mononoke를 작성하기 위해 Rust 프로그래밍 언어를 사용하고 있다.

2013년, Facebook은 Mercurial을 채용해, 대규모 통합 코드 [14]저장소를 처리하기 위한 확장 작업을 개시했습니다.

구글은 또한 Mercurial 클라이언트를 클라우드 기반 '파이퍼' 모노레포 백엔드의 [15]프런트 엔드로 사용합니다.

비트버킷은 웹 기반 버전 관리 서비스가 2020년 6월(그 후 [16]2020년 7월까지 연장)에 머큐리얼에 대한 지원을 중단할 것이라고 발표하면서 "새로운 프로젝트의 1% 미만이 머큐리얼을 사용하고 있으며 개발자 조사에 따르면 개발자의 90%가 Git을 사용하고 있다"[17]고 설명했다.

Mercurial 서버 및 저장소 관리

소스 코드 호스팅

다음 웹 사이트에서는 Mercurial 저장소에 대한 무료 소스 코드 호스팅을 제공합니다.

Mercurial을 사용한 오픈 소스 프로젝트

일부 프로젝트는 Mercurial 분산 [24]RCS를 사용합니다.

「 」를 참조해 주세요.

메모들

  1. ^ a b 올리비아 맥콜은 예전에 맷 [5]맥콜이었다.

레퍼런스

  1. ^ a b Mackall, Matt (20 April 2005). "Mercurial v0.1 – a minimal scalable distributed SCM". Linux kernel (Mailing list).
  2. ^ https://www.mercurial-scm.org/repo/hg/rev/6.2.1 를 참조해 주세요.
  3. ^ "README file in rust subdirectory, master branch". 24 January 2020. Retrieved 30 January 2020.
  4. ^ Mackall, Matt. "Towards a Better SCM: Revlog and Mercurial" (PDF). Mercurial. Archived (PDF) from the original on 26 May 2019. Retrieved 26 May 2019.
  5. ^ "Matt Mackall is now Olivia Mackall". Mercurial. Retrieved 28 May 2021.{{cite web}}: CS1 maint :url-status (링크)
  6. ^ 를 클릭합니다"Relicensing", Mercurial (wiki), Mercurial-scm.org.
  7. ^ Mackall, Matt (29 April 2005). "Re: Mercurial 0.4b vs git patchbomb benchmark". Linux kernel (Mailing list). Archived from the original on 9 July 2012.
  8. ^ Mackall, Matt (15 February 2012). "Why did Matt choose the name Mercurial?". Mercurial (Mailing list). Retrieved 7 June 2016.
  9. ^ Torvalds는 다음과 같이 말했습니다. "저는 이기적인 놈이기 때문에 모든 프로젝트에 이름을 붙입니다. 처음에는 Linux, 지금은 git.
  10. ^ James Gosling (October 2006). "Open Sourcing Sun's Java Platform Implementations, Part 1" (Interview). Interviewed by Robert Eckstein. Sun. Archived from the original on 1 March 2009.{{cite interview}}: CS1 유지보수: 부적합한 URL(링크)
  11. ^ "Scaling Mercurial at Facebook". 7 January 2014.
  12. ^ "A Mercurial source control server, specifically designed to support large monorepos.: facebookexperimental/mononoke". 31 January 2019 – via GitHub.
  13. ^ Szorc, Gregory (17 October 2016). "Mercurial 4.0 Sprint Notes". mozilla.dev.version-control. Google Groups. Retrieved 2021-11-22.
  14. ^ Goode, Durham; Agarwal, Siddharth. "Scaling Mercurial at Facebook". Facebook Code. Retrieved 13 October 2015 – via Facebook.
  15. ^ "Why Google Stores Billions of Lines of Code in a Single Repository".
  16. ^ "Sunsetting Mercurial support in Bitbucket". 21 April 2020. Archived from the original on 1 July 2020.
  17. ^ a b Chan, Denise (20 August 2019). "Sunsetting Mercurial support in Bitbucket". Bitbucket. Retrieved 29 August 2019.
  18. ^ "Git, Mercurial & Subversion hosting". Features. Codebase HQ. 4 March 2013. Archived from the original on 30 March 2014. Retrieved 4 March 2013.
  19. ^ "Let's start OSS development with Mercurial (Hg) – OSDN". osdn.net.
  20. ^ 를 클릭합니다"Hosting", Mercurial (wiki), Mercurial-scm.org.
  21. ^ "Try Helix TeamHub Free Perforce". info.perforce.com.
  22. ^ "Welcome [Puszcza]". ps.gnu.org.ua.
  23. ^ "TuxFamily: Free hosting for free people". tuxfamily.org.
  24. ^ 를 클릭합니다"Some projects that use Mercurial", Mercurial (wiki), Mercurial-scm.org.
  25. ^ Reed, J Paul (12 April 2007). "Version Control System Shootout Redux Redux".
  26. ^ mozilla-mobile/fenix, Mozilla Mobile, 19 March 2021, retrieved 19 March 2021

외부 링크