[mercurial] Mercurial-변경 세트에서 변경된 모든 파일?

주어진 변경 집합에서 변경된 모든 파일을 어떻게 확인할 수 있습니까?

이 경우 diff를 찾는 것이 아니라 추가 / 제거 / 수정 목록 만 있습니다.

hg log -vprX diff 목록을 수행하지만 파일을 원합니다.



답변

변경된 파일 만 나열하려면 “status 명령”을 사용해야합니다. 다음은 개정판 REV의 파일 변경 사항을 나열합니다.

hg status --change REV


답변

그냥 제거 p하여에서 hg log -vpr파일의 목록이 표시됩니다. -p패치 표시를 의미합니다. 템플릿 을 사용 하여 원하는대로 출력 형식을 지정할 수도 있습니다 .


답변

질문은 단일 변경 집합에 대한 것이지만 변경 집합 범위에 대해 모든 파일을 수정하려면 다음을 수행 할 수 있습니다.

hg status --rev 1 --rev 10 -m


답변

현재 커밋 된 개정

hg status --change .

.@HEADGit에서 와 마찬가지로 현재 rev의 속기입니다.

현재 커밋되지 않은 개정

hg status

임의의 커밋 된 개정

hg status --change REV_ID


답변

비슷한 개념에 대한 인터넷 검색을 통해이 질문을 찾았습니다. 다양한 변경 세트를 통해 변경된 모든 파일을 표시하는 방법 은 다음과 같습니다.

hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
  1. hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"[start rev]에서 [end rev]까지 각 변경 세트에서 변경되거나 추가 된 각 파일의 목록이 새 행에 표시됩니다. 스왑 {file_mods}{file_adds}으로는 {files}모든 파일, 수정, 추가 또는 삭제 표시합니다.
  2. sed -e 's/ /\n/g' 모든 파일을 분할하여 별도의 줄에 표시하고
  3. sort 목록을 정렬하여 uniq로 목록을 필터링 할 수 있습니다.
  4. uniq 목록을 필터링하여 중복 된 파일 (둘 이상의 개정판에서 변경된 파일)을 제거합니다.

답변

나는이 질문이 오래된 질문이라는 것을 알고 있으며 아무도 수정 된 코드 양식 OP를 제공하지 않았다는 것에 놀랐습니다. 을 실행하여 수정 / 추가 / 제거 된 파일 목록 (하지만 레이블이 지정되지 않음)을 받았습니다 hg log -v. 또는 hg log -v -l5마지막 5 개의 커밋에서 수정 / 추가 / 제거 된 파일을 확인하는 데 실제로 필요한 것 (아직 리포지토리에 푸시하지 않은 커밋 포함).


답변

대부분의 상점과 같으면 티켓팅 시스템을 사용하여 변경 사항을 추적합니다. 티켓 번호를 알고 있고 해당 티켓과 관련된 모든 커밋을 찾으려면 (커밋 메시지에 티켓 번호를 포함한다고 가정) 다음을 사용할 수 있습니다.

hg log -k TICKET_NUMBER

이것은 티켓과 관련된 모든 개정을 표시합니다. 그러나 파일을 나열하지 않습니다. 위의 답변 중 하나를 사용하여 개정판과 관련된 파일 목록을 가져올 수 있습니다.

더 간단하게 이전 답변의 정보를 결합하여 다음을 수행하여 변경된 파일을 포함하여 커밋을 검색 할 수 있습니다.

hg log -vk TICKET_NUMBER