[mercurial] 모두 버리고 최신 개정판을 깨끗하게 받으시겠습니까?

수은을 사용하도록 빌드 프로세스를 이동하고 작업 디렉토리를 팁 개정 상태로 되돌리려 고합니다. 빌드 프로세스의 이전 실행은 일부 파일을 수정하고 커밋하지 않으려는 일부 파일을 추가 했으므로 리포지토리에 추가되지 않은 로컬 변경 및 파일이 있습니다.

모든 것을 버리고 최신 개정판을 사용하는 깔끔한 작업 디렉토리를 얻는 가장 쉬운 방법은 무엇입니까?

현재 나는 이것을하고있다 :

hg revert --all
<build command here to delete the contents of the working directory, except the .hg folder.>
hg pull
hg update -r MY_BRANCH

그러나 더 간단한 방법이 있어야합니다.

리포지토리 삭제, 새로운 복제 및 업데이트와 동일한 작업을 수행하고 싶습니다. 그러나 레포는 너무 빠르기 때문에 너무 빠릅니다.



답변

이러한 단계 다음 과 같이 단축 될 수 있어야합니다.

hg pull
hg update -r MY_BRANCH -C

-C플래그를 업데이트하기 전에 모든 로컬 변경 사항을 취소 업데이트 명령을 알려줍니다.

그러나 그래도 저장소에 추적되지 않은 파일이 남아있을 수 있습니다. 그것들을 제거하고 싶은 것처럼 들리므로 purge확장을 사용합니다.

hg pull
hg update -r MY_BRANCH -C
hg purge

어쨌든 Mercurial이 수행 할 수없는 “전체 복제”방법으로 프로세스를 변경하는 경우를 제외하고는 원하는 모든 작업을 수행하도록 Mercurial에 요청할 수있는 명령이 하나도 없습니다.


답변

hg up -C

모든 변경 사항이 제거되고 현재 지점의 최신 헤드로 업데이트됩니다.

제거되지 않은 파일도 모두 제거 할 수 있도록 제거 확장 기능 을 켤 수 있습니다.


답변

제거 확장 프로그램없이 * nix에서 추적되지 않은 항목을 삭제하려면

hg pull
hg update -r MY_BRANCH -C
hg status -un|xargs rm

어느 것을 사용하고 있습니까

업데이트 -r –rev REV 개정

업데이트 -C-커밋되지 않은 변경 사항을 삭제합니다 (백업 없음).

status -u –unknown 알 수없는 (추적되지 않은) 파일 만 표시

status -n –no-status hide 상태 접두사


답변

쉬운 방법을 찾고 있다면 이것을 시도해 볼 수 있습니다.

나는 모든 도구에 대한 명령 줄을 거의 기억할 수 없으므로 UI를 사용하여 수행하는 경향이 있습니다.


1. 먼저 “커밋”을 선택하십시오

범하다

2. 그런 다음 무시 된 파일을 표시하십시오. 커밋되지 않은 변경 사항이 있으면 숨 깁니다.

무시 된 파일 표시

3. 이제 모두 선택하고 “버전없는 버전 삭제”를 클릭하십시오.

그들을 삭제

끝난. 명령 줄보다 기억하기 훨씬 쉬운 절차입니다.


답변

HG 상태 는 모든 새로운 파일을 보여줍니다, 그리고 당신은 그냥 rm 수 있습니다 그것들을 있습니다.

일반적으로 무시되고 버전이없는 파일을 제거하고 싶습니다.

hg status -iu                          # to show
hg status -iun0 | xargs -r0 rm         # to destroy

그런 다음 다음을 수행하십시오.

hg update -C -r xxxxx

모든 버전의 파일을 개정 xxxx의 올바른 상태로 만듭니다.


이것을 원하지 않는다는 스택 오버플로 전통을 따르기 위해,이 “핵 옵션”이 내가 관심있는 것을 파괴 한 경우가 종종 있습니다.

이를 수행하는 올바른 방법은 빌드 프로세스에 ‘make clean’옵션을 사용하는 것입니다.


답변