developer tip

Mercurial에서 hg 되돌리기 사용

optionbox 2020. 11. 26. 08:12
반응형

Mercurial에서 hg 되돌리기 사용


Mercurial을 사용하고 있습니다. 저장소의 복제본을 만들었습니다. 디버깅을 위해 Java 파일에서 몇 줄의 코드를 변경했습니다. 그래도 변경 사항을 적용하지 않았습니다. 저장소에있는 원래 상태로 되돌리고 싶습니다. 시도했지만 hg revert filename.java되 돌리면 hg status이제 다음과 같이 내 폴더에 추가 된 파일이 추가됩니다.

? filename.java.orig

해당 파일을 삭제할 수 있으며 되돌리기를 사용할 때 Mercurial이 파일을 만드는 이유는 무엇입니까?


예, 삭제할 수 있습니다. 되돌리려는 의도가 아닌 것을 되 돌린 경우에 대비하는 안전 기능입니다.


--no-backup 플래그를 사용할 수도 있으며 .orig 파일이 생성되지 않습니다.

hg revert --no-backup filename.java

Mercurial 2.0부터는 -C 플래그를 사용하여 .orig 파일이 생성되지 않도록 할 수 있습니다.

hg revert -C filename.java

나는 찾을 퍼지 확장이 편리합니다. 용법:

hg purge

"이 확장자는 Mercurial이 추적하지 않는 모든 파일과 디렉토리를 제거합니다."-.orig 파일을 포함하지만 무시 된 파일은 제외합니다 (--all을 사용하지 않는 한).


다른 사람이 지적했듯이 이러한 파일을 안전하게 삭제할 수 있습니다.

저장소의 루트에서 다음 명령을 실행하여 제거 할 수 있습니다.

rm `hg st -un | grep orig`

되돌리기를 원하고 원본 파일을 백업하는 데 전혀 신경 쓰지 않는 경우 원하는 명령은 다음과 같습니다.

hg update -C

이는 되돌리기 전의 파일 사본입니다. 필요하지 않은 경우 수동으로 또는 Purge 확장 을 사용하여 삭제할 수 있습니다 .

hg clean

이러한 백업 파일은 병합 및 되돌리기 작업을 위해 생성 할 수 있습니다 (참조 : man 페이지 ). 원하는 경우 무시 규칙을 추가하거나 더 이상 필요하지 않은 경우 간단히 삭제할 수 있습니다.


이들은 다양한 작업으로 인해 다소 일반적입니다. 내가 작업하는 적당한 크기의 저장소 중 하나를 살펴보면 237 개가 발견됩니다. 유용 할 수있는 항목을 삭제하는 것을 좋아하지 않으며 동일한 접미사로 합법적 인 파일의 이름을 지정할 이유가 없으므로 대신 .hgignore에 다음을 추가합니다.

.\.orig$

이 배치 파일을 직접 만들었습니다.

IF "%1%" == "d" (
    del /s *.orig
    del /s *.rej
 ) ELSE ( 
    del /s /p *.rej
    del /s /p *.orig
 )

도움말 :이 콘텐츠를 orig.bat 로 저장

  1. orig d확인없이 한 번에 모든 거부 및 원본 파일 삭제 실행
  2. orig확인을 통해 파일 삭제 실행 [안전 메커니즘]

이것이 도움이되기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/2239331/using-hg-revert-in-mercurial

반응형