[Mercurial] Revert

버전관리 2014. 9. 1. 17:02





hg revert는 지정한 파일들을 이전 상태로 되돌리는 명령어.

hg update가 저장소 전체를 특정 리비전으로 업데이트 시키는데 반해, hg revert는 지정한 파일들만 업데이트 시킴.


# 전체 저장소를 되돌릴 경우 hg update 사용.
hg update REV        # REV 리비전으로 업데이트
hg update --clean .  # 변경사항 전부 날려버리고 현재 리비전으로 업데이트




리비전을 지정하지 않았을 경우, revert는 지정한 파일/디렉토리의 내용을 working directory의 parent로 되돌림.

이때 되돌려진 파일은 수정/추가/삭제/복사/이름변경 그 어느 상태도 아님.

만약 working directory의 parent가 2개일 경우, 리비전을 반드시 명시해야 함.


-r / --rev 혹은 -d / --date 옵션을 지정할 경우, hg revert는 working directory의 parents를 변경하는 것이 아니기 때문에 지정한 파일은 해당 리비전에서의 상태값으로 변경됨.

hg backout의 개념과 유사함.


수정된 파일은 되돌려지기 전 .orig 라는 확장자가 붙은 파일로 백업됨. 이게 싫으면 --no-backup 옵션을 지정할 것.



아래는 옵션 리스트


-a / --all                 # 다른 매개변수가 없을 경우 전체 변경
-d / --date DATE           # DATE로 지정한 날짜의 최상위 리비전 지정
-r / --rev REV             # 지정한 리비전으로 revert
-C / --no-backup           # 원본파일 백업하지 않음
-I / --Include PATTERN [+] # PATTERN에 매칭되는 파일 지정
-X / --Exclude PATTERN [+] # PATTERN에 매칭되는 파일 제외
-n / --dry-run             # 실제로 revert를 실행하지 않고 결과만 출력








Posted by bloodguy
,