2010-03-01 3 views
3

저는 Mercurial을 배우는 중입니다. TortoiseHG를 설치했지만 커맨드 라인이 점점 더 커지고 있습니다.실제로 커밋되기 전에 커밋 될 내용을 확인하십시오.

자주명령의 결과가 실제로 실행되기 전에 어떤 결과인지 확인하고 싶습니다. 사용할 수있는 PowerShell에서 알려진 스위치 -whatif에 해당하는 항목이 있습니까? 아니면 hg commit 문을 사용하여 커밋 될 내용을 확인하는 방법은 무엇입니까?

+2

정확히 알고 싶습니까? 'hg status'로 파일의 상태를 확인할 수 있습니다; 'hg help'는 당신의 친구입니다 – Christoph

+0

@Hauge : 저는 "hg sta"("hg status"의 줄임말)를 사용하여 파일 상태를 항상 확인하고 "hg diff ..."와 함께 제가 어떤 특별한 변화를했는지 봅니다 수정 된 파일. – SyntaxT3rr0r

+0

제 문제는 필자가 현재 커밋 중에 파일 선택 과정이 어떻게 작동하는지 정확히 알지 못한다는 것입니다. 즉, 와일드 카드 파일 선택 인수를 사용하여 커밋을 수행하면 현재 디렉토리에서만 커밋하거나 커밋 할 것입니다. reposistory의 전체 디렉토리 구조. 따라서 "이 명령은이 파일을 커밋합니다"기능을 갖고 싶습니다. – Hauge

답변

2

메시지 편집기에는 커밋 할 때 무시되는 섹션에 커밋 될 파일 목록이 포함됩니다. 당신이 hg -m "message"로 커밋 경우이 에디터 단계가 생략 될 때 작동하지 않습니다

HG: Enter commit message. Lines beginning with 'HG:' are removed. 
HG: Leave message empty to abort commit. 
HG: -- 
HG: user: User <[email protected]> 
HG: branch 'default' 
HG: changed myfile.yxy 

당신은 당신이 커밋하지 않은 파일이 포함 된 경우 마지막 커밋을 취소 할 hg commithg rollback를 사용할 수 있습니다. 다른 저장소에 hg push을 입력하지 않은 한 rollback은 작동합니다.

상태는 커밋과 동일한 패턴으로 작동합니다. hg status some/path/*을 사용하고 hg commit some/path/*을 사용하여 사용할 명령 만 바꿀 수 있습니다.

+0

나는이 방법을 시도해 볼 것입니다. – Hauge

2

종종 -n 스위치 또는 --dry-run 스위치가 특정 명령에 대해 어떤 일이 있었는지 표시합니다. commit에는 -n 스위치가 없지만 hg diff을 실행하면 실제 변경 사항을 볼 수 있고 hg status을 사용하면 각 파일의 상황을 볼 수 있습니다.

+0

-n은 원격 저장소 (예 : 푸시/풀)에 영향을주는 작업에만 사용할 수 있습니다. 따라서 "hg rollback"은이를 취소 할 수 있기 때문에 "hg commit"에 대한 드라이 런이 없습니다. 또한 항상 이전 버전으로 돌아갈 수 있기 때문에 "hg update"에 대한 드라이 런이 없습니다. 그래서 예, "hg status"와 "hg diff"는 무엇이 커밋되는지 알 수있는 방법입니다. –

+1

'hg status'를 사용하여 개요를 얻고'hg diff '으로 특정 파일을 봅니다. 많은 파일들이 바뀌면 평범한'hg diff'가 읽기 어려울 수도 있습니다 – Christoph

+0

오직 ...롤백은 이제 폐기되었습니다 (그리고 나는 이것들을 다루는 방법에 대한 정보를 찾을 수 없습니다, "우리는 더 이상 사용하지 않을 것입니다"에 대한 참조 만) –

관련 문제