2011-09-25 2 views
3
Mercurial Distributed SCM (version 1.9.1) 나는 다음을 사용했다 :

hg update --mq가 작동하지 않습니까?

D:\code\mqtest>hg init 
D:\code\mqtest>hg qinit -c 
D:\code\mqtest>echo NonQueue > first 
D:\code\mqtest>hg st 
? first 
D:\code\mqtest>hg add first 
D:\code\mqtest>hg commit -m nonqueue 
D:\code\mqtest>hg log 
changeset: 0:2d4bac63616a 
tag:   tip 
user:  Tempos 
date:  Mon Sep 26 00:52:49 2011 +0300 
summary:  nonqueue 

D:\code\mqtest>hg log --mq 
D:\code\mqtest>hg qnew a 
D:\code\mqtest>echo Queue0 > first 
D:\code\mqtest>hg st 
M first 
D:\code\mqtest>hg qref 
D:\code\mqtest>hg qcommit -m "queue 0" 
D:\code\mqtest>echo Queue1 > first 
D:\code\mqtest>hg qref 
D:\code\mqtest>hg qcommit -m "queue 1" 
D:\code\mqtest>echo Queue2 > first 
D:\code\mqtest>hg qref 
D:\code\mqtest>hg qcommit -m "queue 2" 
D:\code\mqtest>hg st 
D:\code\mqtest>hg log --mq 
changeset: 2:38d08315a300 
tag:   tip 
user:  Tempos 
date:  Mon Sep 26 00:53:46 2011 +0300 
summary:  queue 2 

changeset: 1:bb8b7da2e728 
user:  Tempos 
date:  Mon Sep 26 00:53:33 2011 +0300 
summary:  queue 1 

changeset: 0:1ac551a65492 
user:  Tempos 
date:  Mon Sep 26 00:53:22 2011 +0300 
summary:  queue 0 

그리고 나는 mq의 특정 리비전으로 돌아 가려고했다 :

D:\code\mqtest>hg up -r 0 --mq 
1 files updated, 0 files merged, 0 files removed, 0 files unresolved 
D:\code\mqtest>cat first 
Queue2 

왜 내가 Queue0을 보지 못 하겠는가? 함유량?

답변

2

.hg\patches의 패치를 hg --mq update으로 업데이트하면 mq의 뒤에서 mq 패치가 변경됩니다. 즉, 패치 자체가 새 내용을 얻지 만 자동으로 다시 적용되지는 않습니다. 당신이 먼저, 모든 패치를 제거 당신이 원하는처럼 보이게을 업데이트하고

> hg qpop -a 
> hg --mq update -r X 
> hg qpush -a 

그들을 다시 적용 :

그래서 당신이 원하는 워크 플로를하는 것입니다.

hg --mq update이 작업을 수행하면 실제로 흥미로운 아이디어가 될 것이며, 두 명령 간의 통합이 부족하다는 사실에 놀라지 않을 것입니다.

-1

대기열의 패치를 이동할 때는 qpushqpop을 사용해야합니다. tutorial에서

:

패치 큐 측면뿐만 아니라 사실은 꽤 좋다. 예를 들어, 예제의 경우 동일한 시간에 의 동일한 대기열에있는 애플리케이션의 두 개의 서로 다른 레이어 (동일 하위에 로우 레벨과 그 위에 빌드 된 것)에서 작업 할 수 있습니다. qpush 및 qpop은 변경 사항을 별도로 유지하면서 위로 이동하고 아래쪽으로 이동하는 데 도움이됩니다.

+0

그러나 나는 여러 번''나는 커밋 한 패치가 하나뿐입니다. – Geo

+1

qpush 및 qpop은 패치에서 패치로 이동합니다. Tempos는 동일한 패치의 버전간에 이동하려고합니다. 그것은 깊은 mq 마술입니다. –