답변:
변경된 파일 만 나열하려면 "status 명령"을 사용해야합니다. 다음은 개정판 REV의 파일 변경 사항을 나열합니다.
hg status --change REV
-n
/ --no-status
플래그도 원할 것입니다 .
hg status --no-status --change REV
hg status --rev REV~1:REV
제가 예전 보다 타이핑하기가 훨씬 쉽습니다 .
hg status --change .
그냥 제거 p
하여에서 hg log -vpr
파일의 목록이 표시됩니다. -p
패치 표시를 의미합니다. 템플릿 을 사용 하여 원하는대로 출력 형식을 지정할 수도 있습니다 .
hg status --change .
더 나은 일을하고 파일 작업을 접두사 (등등 \ M \ D)과 더 나은 상대 경로 준
질문은 단일 변경 집합에 대한 것이지만 변경 집합 범위에 대해 모든 파일을 수정하려면 다음을 수행 할 수 있습니다.
hg status --rev 1 --rev 10 -m
hg log -r BEGIN:END --template "{files}\n"
@ geoffrey-zheng과 @ton이 2 년 전에
hg status --rev BEGIN --rev END
1. 기억하기가 훨씬 쉽습니다 hg log -r BEGIN:END --template "{files}\n"
. 2. sed
(@Eric Lawler) 또는 join()
(@Foxichu) 를 사용하지 않고 별도의 줄에 파일을 인쇄합니다 . 3. -m
플래그가 없으면 수정 된 파일뿐만 아니라 추가 및 제거 된 파일도 표시됩니다 (여기에도 표준 색상이 적용됩니다). 4. 다른 필터링을 허용하는 -a
및 -r
플래그 가 있습니다 . 5. 상태 접두사를 원하지 않는 경우 -n
이를 억제하는 옵션이 있습니다.
비슷한 개념에 대한 인터넷 검색을 통해이 질문을 찾았습니다. 다양한 변경 세트를 통해 변경된 모든 파일을 표시하는 방법 은 다음과 같습니다.
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
[start rev]에서 [end rev]까지 각 변경 세트에서 변경되거나 추가 된 각 파일의 목록이 새 행에 표시됩니다. 스왑 {file_mods}{file_adds}
으로는 {files}
모든 파일, 수정, 추가 또는 삭제 표시합니다.sed -e 's/ /\n/g'
모든 파일을 분할하여 별도의 줄에 표시하고sort
목록을 정렬하여 uniq로 목록을 필터링 할 수 있습니다.uniq
목록을 필터링하여 중복 된 파일 (둘 이상의 개정판에서 변경된 파일)을 제거합니다.--template
이러한 단점이없는 기반 솔루션을 사용하여 구성 할 수 join()
@Foxichu에 의해 제안.
나는이 질문이 오래된 질문이라는 것을 알고 있으며 아무도 수정 된 코드 양식 OP를 제공하지 않았다는 것에 놀랐습니다. 을 실행하여 수정 / 추가 / 제거 된 파일 목록 (하지만 레이블이 지정되지 않음)을 받았습니다 hg log -v
. 또는 hg log -v -l5
마지막 5 개의 커밋에서 수정 / 추가 / 제거 된 파일을 확인하는 데 실제로 필요한 것 (아직 리포지토리에 푸시하지 않은 커밋 포함).
대부분의 상점과 같으면 티켓팅 시스템을 사용하여 변경 사항을 추적합니다. 티켓 번호를 알고 있고 해당 티켓과 관련된 모든 커밋을 찾으려면 (커밋 메시지에 티켓 번호를 포함한다고 가정) 다음을 사용할 수 있습니다.
hg log -k TICKET_NUMBER
이것은 티켓과 관련된 모든 개정을 표시합니다. 그러나 파일을 나열하지 않습니다. 위의 답변 중 하나를 사용하여 개정판과 관련된 파일 목록을 가져올 수 있습니다.
더 간단하게 이전 답변의 정보를 결합하여 다음을 수행하여 변경된 파일을 포함하여 커밋을 검색 할 수 있습니다.
hg log -vk TICKET_NUMBER