나는 Mercurial 대기열을 배우려고하고 있는데 "hg q *"명령과 "--mq"매개 변수가있는 많은 정상적인 hg 명령이 둘다 혼란 스럽다. 필자는 --mq 매개 변수가 q * 명령 중 일부를 대체하기위한 것이라고 생각하지만 확실하지 않습니다. (새로운?) 선호하는 방법에 대한 설명서 또는 설명서가없는 것 같습니다.Mercurial 명령과 --mq 매개 변수가 같은 Mercurial 대기열 관련 명령입니까?
1
A
답변
4
--mq
옵션은 인수로 저장소를 가지고 모든 명령에 영향을 미치는 - 실제로 $(hg root)/.hg/patches
로 대상 REPO을 변경, 그래서 이런 어떤 수은 명령 실행으로 효과적으로 동일합니다 : Resultingly
hg --repository $(hg root)/.hg/patches ....
을 -R/--repository
옵션이있는 모든 명령에는 --mq 옵션이 있으며이를 가져 오려면 수정하지 않아도됩니다. 이전에 mercurial에서 사용한 명령 : commit, push, pull, summary, id 등은 --mq
이 될 수 있습니다. 여기에 관련 파이썬 코드는 다음과 같습니다
def mqcommand(orig, ui, repo, *args, **kwargs):
"""Add --mq option to operate on patch repository instead of main"""
# some commands do not like getting unknown options
mq = kwargs.pop('mq', None)
if not mq:
return orig(ui, repo, *args, **kwargs)
q = repo.mq
r = q.qrepo()
if not r:
raise util.Abort(_('no queue repository'))
return orig(r.ui, r, *args, **kwargs)
1
은 hg help mq
에서 사라질 수 있도록 --mq
플래그가 불필요한 사용되지 표시 한 할 것을 명령한다. 이것은 qcommit
과 qinit
이 오래 나타나지 않는 이유입니다.
호기심이 있다면 명령에 대한 도움말을 보려면 여전히 hg qcommit
을 수행 할 수 있습니다.
개인적으로 나는 --mq
플래그가 마음에 들지 않습니다. 대신 내가 쉘 별명 사용
mq='hg -R $(hg root)/.hg/patches'
을하고 내가 할 수있는 mq status
, mq commit
, mq push
등 나는 내가 작업을 생각하는 방법을 hg
및 mq
명령 이름 사이의 구분이 일치하는 것을 찾을 수 있습니다. 이 간단한 별칭은 여러 개의 대기열을 고려하지 않으므로 hg qqueue
을 사용하는 경우 약간 확장해야합니다.
관련 문제
- 1. Mercurial 대기열 : 패치 결합
- 2. Mercurial MQ 패치에서 파일 제거
- 3. Mercurial : 마지막 n 개정을 MQ
- 4. Mercurial 대기열 : 여러 저장소의 패치 병합
- 5. Mercurial : 패치를 롤백 하시겠습니까?
- 6. Mercurial 소개
- 7. Mercurial 브랜칭 및 북마크
- 8. Mercurial 저장소 내부 형식
- 9. svn propset과 같은 Mercurial 확장 기능이 있습니까?
- 10. Mercurial 용 svnserve와 같은 것이 있습니까?
- 11. Mercurial 용 VisualSVN Server와 같은 것은 무엇입니까?
- 12. Svnstat for Mercurial
- 13. Mercurial Workflow (공유 파일)
- 14. Emacs를위한 최상의 Mercurial 모드?
- 15. 회사의 인트라넷에있는 Mercurial 호스트?
- 16. Mercurial Working 팀에서
- 17. Mercurial 및 mysql
- 18. 하나의 Mercurial 저장소를 다른 Mercurial 저장소에 저장할 수 있습니까?
- 19. Capistrano, Mercurial 및 branches
- 20. 조건부 Mercurial 파일을 무시합니다
- 21. Mercurial 자동 업데이트 문제
- 22. Mercurial : borked 히스토리 수정
- 23. Mercurial Checkins 확인
- 24. Mercurial Pull Error
- 25. Mercurial ACL 설정
- 26. Mercurial 자동 배포
- 27. Mercurial 커밋 팁만
- 28. Debian Etch - Eclipse의 Mercurial
- 29. 왜 Mercurial 태그가 유일한가요?
- 30. Mercurial Git 네트워크보기
일반적으로 --mq 옵션은 내 패치를 버전화할 때만 사용됩니까? 정말로 q * 명령을 대체하지는 않습니다 (어쩌면 qinit 제외)? –
수정. 당신이 대기열에 버전이 없다면 (그러나 그것들은 모두 있어야합니다!) --mq 옵션을 사용하여 푸시, 풀, 커밋, 복제, 요약 등은 패치 대기열 저장소가 없다는 메시지를 종료합니다. –