Mercurial 대기열은 패치에 관한 것이고 패치는 파일 이름 변경에 대해 아무것도 모릅니다. 이것이 Mercurial Queues가 파일 이름 변경을 지원하지 않는 이유입니까, 아니면 파일 이름을 잘못 변경 한 것입니까? foo
이라는 파일 하나만 수정하는 패치 대기열에서 작업했습니다. 지금은 hg mv
를 통해 파일을 4 패치와 이름을 다시 이동합니다Mercurial 대기열을 사용하여 파일의 이름을 바꾸는 방법은 무엇입니까?
hg qpop 4 # Unapply all patches until patch 4.
hg mv foo bar # Rename file and led Mercuial know about it.
hg qrefresh # Should apply changes to unapplied patch 4.
hg qpush -a # Should apply all unapplied patches.
나는 다음과 같은 오류 얻을 :
unable to find 'foo' for patching
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 5.diff
그래서 내가 파일을 처리 할 방법을 의욕 대기열로 이름을 변경을? Mercurial 은의 이유로 파일 이름 변경을 처리합니다 (이름 바꾸기 후 파일 편집에 대한 전체 기록을 잃어 버릴 수 있음).
이 업데이트
그냥 hg histedit
접는 변경 집합 및 hg collapse
또한 파일 이름 변경의 정보를 잃을 것으로 나타났습니다 파일 대신 이름을 변경 한 새로 나타나, 나는이 같은 이유로 추측 . 그 개인 정보를 잃어 버리지 않고 Mercurial에서 개인 체인지 세트를 접을 수없는 것 같습니까?
업데이트 2
정보를 이름을 잃어버린없이 개인 체인지를 붕괴하는 것은, 예를 들어 hg rebase
과 --collapse
옵션 가능합니다 밖으로 찾을 수 hg rebase -s 5 -d 4 --collapse
. 다른 명령이 정보 이름 바꾸기를 계속해야한다는 문제는 여전히 빈 상태이지만 hg rebase
명령을 사용하면 적어도 원하는 결과를 얻을 수있는 방법이 있습니다.
가'은 HG가 mq' 도움이 있기 때문에, 이상한의 종류를 보이는 정확히 사건에 대해 메모를 가지고 : 기본적으로 _ ", MQ 자동 것이다 레코드 모드, 바이너리 파일 또는 빈 파일 생성 또는 삭제를 피하기 위해 필요한 경우 git 패치를 사용하십시오. "_ – develop7