Firefox 워크플로우 Mercurial 설명서


Mercurial 분산 SCM
세계 각지의 다른 개발자와 합작하여 프로젝트를 개발하기 위해 모든 프로그래머는 어떤 Version Control System (VCS)으로 원본 코드를 관리해야 한다. 
대부분의 개발자들이git를 버전 제어 시스템으로 사용하지만,Mozilla는 Mercurial을 사용하여Firefox 소스 코드를 관리하고,Mozilla의 다른 몇 가지 프로젝트도git 저장소의GitHub에 있다.

짜증나고 재밌어요.👩🏻‍💻Mercurial의 문제를 어떻게 해결하는지 찾아내는 것은 거의 불가능하다.네, 잘못 들은 것도 아니고, 망치기 쉬워요.Mercurial 문서에는 닭과 알에 대한 문제가 있습니다. 문제를 해결하기 위해 알아야 할 것들의 이름을 알고 있지 않으면 곤경에서 벗어날 수 없습니다.
다음은 Firefox 개발에 초점을 맞춘 Mercurial 명령 중 일부입니다.

1. 약속


이 명령은 메시지에 제출을 만들고 모든 변경 사항을 새 변경 세트에 제출하는 데 사용됩니다.
이 명령의 형식은git와 같습니다.

참고: Mercurial의 변경 세트는 코드 라이브러리에 있는 파일의 변경 사항에 대한 컬렉션이며 변경 세트 ID를 사용하여 식별됩니다.

2. 수은 차이


이 명령은 코드 라이브러리의 다른 파일/디렉터리에 대한 모든 변경 사항을 보고 부모 디렉터리와 비교하는 데 사용됩니다.이것은 제출하지 않은 모든 변경 사항과 파일 이름을 표시합니다.hg diff의 출력은 다음 코드 세그먼트와 유사합니다.

3. 선반


shelve 확장은 저장소에 제출하지 않고, 제출하지 않은 작업을 독립된 파일에 저장할 수 있도록 shelve 명령을 제공합니다.임무를 전환해야 하지만, 현재의 일을 완성할 준비가 되지 않을 때마다, 그것은 매우 유용하다.
확장자는 ~/.hgrc 또는 Mercurial.ini 파일에 다음 줄을 추가하여 사용할 수 있습니다.
[extensions]
shelve=
다음 코드 세그먼트에서 이 확장을 사용할 수 있습니다.

4. 수은띠


strip 확장은 저장소에서 변경 집합과 모든 하위 항목을 완전히 삭제하는 데 사용되는 strip 명령을 제공합니다.이런 변화가 없었던 것처럼.공공 변경 집합에서 사용할 때는 조심해야 한다.
확장자는 ~/.hgrc 또는 Mercurial.ini 파일에 다음 줄을 추가하여 사용할 수 있습니다.
[extensions]
strip =
저장소에서 변경 세트와 하위 항목을 삭제하려면 다음과 같이 하십시오.

참고: 확장에 대한 자세한 내용은 here을 참조하십시오.

5. 편집


histedit 확장은 histedit 명령을 제공합니다. 선택 (선택), 조합 (접거나 굴림), 거부 (삭제), 수정 (편집), 제출한 변경 집합의 제출 메시지 (mess) 를 업데이트하는 데 사용됩니다.
확장자는 ~/.hgrc 또는 Mercurial.ini 파일에 다음 줄을 추가하여 사용할 수 있습니다.
[extensions]
histedit =
hg histedit를 실행하면 다음과 같은 모양으로 편집기가 열립니다.

주의:histedit 확장에 대해 더 자세히 알고 싶으면 here을 방문하십시오.

6.hg 책갈피


책갈피는 변경 집합의 라벨로 개발 과정을 추적하는 데 도움이 된다.책갈피가 버전을 설정하지 않았습니다. 이동, 이름 바꾸기, 삭제할 수 있습니다.책갈피를 삭제하거나 이동하더라도 연관된 변경 세트에는 영향을 주지 않습니다.그것들의 작업 원리는git의 지점 개념과 유사하지만 결코 같지 않다.

7.hg 개정안


이 명령은 현재 보고서의 변경 사항(있는 경우)을 제외한 상위 디렉토리의 변경 사항을 포함하는 작업 디렉토리의 부모 디렉토리를 수정하기 위해 새 커밋을 사용합니다. 
간단한 말로 상술한 장면을 설명하겠습니다. 예를 들어 우리가 제출을 한 번 하고 코드 줄을 수정하는 것을 잊었다고 가정하고 제출 메시지에 맞춤법 오류를 입력했거나 다른 어떤 일도 다음 코드 세션에서 보여준 명령을 실행해서 이 문제들을 복구할 수 있습니다.

8. 수은측정


이 명령은 최근에 제출한 변경 사항부터 저장소에 제출된 모든 변경 사항을 보여 줍니다.각 변경 세트의 목록에는 다음 코드 세그먼트와 같이 변경 세트의 개정 번호 및 식별자, 레이블, 책갈피, 변경 세트가 작성될 때의 작성자 및 요약이 포함됩니다.

9. hg pull과 hg 업데이트 - 청결


이 명령은 마지막으로 로컬 코드 라이브러리를 업데이트한 후 현재까지 Mozilla Central에서 제출한 변경 사항을 가져오고 코드 라이브러리의 작업 복사본을 업데이트하는 데 사용됩니다.이 곳에서 hg status은 모든 변경 사항을 가져오지만, 이러한 변경 사항으로 작업 디렉터리를 자동으로 업데이트하지 않기 때문에, 우리는 hg pull을 사용합니다.

10.hg rebase


이 명령은 여러 가지 용례가 있습니다.rebase는 지점 사이에서 변경 집합을 이동하거나 변경 집합을 다시 정렬하거나 접을 수 있습니다.
다음 코드 세그먼트는 서로 다른 용례를 설명합니다.

여기에 hg update --clean 로고는 원본changesetID를 나타내고 -s 로고는 목표changesetID를 나타낸다.우리는 Mercurial 표기, 예를 들어 -d, central 등을 사용하여 위 코드 세그먼트에 표시된changesetID를 대체할 수 있다.

11.hg 제품


이 명령은 머리/특징의 트리 보기를 제공하고 여러 버그를 처리할 때 생성된 모든 변경 사항을 추적합니다.나는 당신이 Customizing Mercurial Like a Pro에서 기술한 hg wip 명령을 읽는 것을 강력히 건의합니다.그것은 이렇게 많은 정보를 이렇게 작은 공간에 넣었는데, 모든 색 인코딩은 우리를 편리하게 하기 위해서였다.tip의 출력은 다음 코드 세그먼트와 유사해야 합니다.

위의mercurial 명령은 당신이 이해하고 일을 시작할 수 있도록 충분합니다.
Firefox 프로젝트에 더 많은 공헌을 하였습니다. 도움이 필요하거나 혼란스러우시면 언제든지 저에게 메시지를 남기거나 Introduction 채널을 통해 주십시오. 
만약 내가 중요한 세부 사항을 놓쳤거나, 혹은 이 블로그에 어떤 내용을 추가하고 싶으면 언제든지 저에게 연락 주십시오.나는 피드백을 받기를 기대한다.이것이 바로 우리가 배우는 방식이다🤗
즐거우세요!!😻

좋은 웹페이지 즐겨찾기