2011-07-05 2 views
2

'A'저장소에 변경 집합을 푸시 한 후 'A'에있을 때 적용될 대기중인 변경 집합 목록을 어떻게 볼 수 있습니까?Mercurial에서 적용되지 않은 변경 집합 목록을 표시하는 방법

의 repo B에서

  1. 내가
  2. 가 어떻게 변경 집합 1 단계에서 밀어 나열 할 수 있습니다 환매 특약 B로 변경 환매 특약 B
  3. 에 변경 집합을 밀어 그에서 확장?
+0

최근에 repo에 푸시 된 변경 집합 목록을보고 있습니까? – icabod

+0

그게 내 현재의 필요에 도움이 될 것입니다. –

+0

"적용 대기"란 무엇을 의미합니까? –

답변

7

"적용되지 않은"changesets의 의미가 확실하지 않지만 여기에는 몇 가지 생각이 있습니다.

hg push을 수행하기 전에 hg outgoing을 수행하여 저장소에 푸시 된 변경 집합을 쉽게 확인할 수 있습니다. 그러면 기본 옵션을 사용하여 푸시 될 모든 변경 집합이 나열됩니다.

마찬가지로 대상 저장소에서 hg incoming을 사용하여 다른 repo에서 가져온 변경 집합을 표시 할 수 있습니다.

"적용되지 않은"변경 집합에 대해서는 작업 디렉토리보다 새로운 변경 집합을 의미한다고 가정하면 hg log -r .:tip을 사용할 수 있습니다 (테스트 할 기회가 없었 음). 모든 새로운 개정판을 표시해야하지만 실제로 최근에 푸시 된 모든 것은 아닙니다.

편집 : -r 옵션의 개정판 세트를 작동해야하는 것으로 업데이트했습니다. 더 많은 가능성에 대해서는 Mercurial manpage의 rev 세트를보십시오.

+0

구문이 잘못되었습니다. hg log -r "parents() :" hg : 구문 분석 오류 : 인수가 누락되었습니다. –

+0

죄송합니다. 메모리에서 부분적으로 작성했습니다. 현재는 Hg가없는 시스템에 있으므로 제공 할 수 없습니다. 수정 : ( – icabod

+0

나는 다른 것을 시도했다. 나중에 집에 돌아 왔을 때, 반 교육 추측을 사용하기보다는 실제 시스템에서 시도해 볼 것이다 :) – icabod

5
$ hg summary 
parent: 0:9f47fcf4811f 
. 
branch: default 
commit: (clean) 
update: 2 new changesets (update) <<<<< 

update 비트 (내 생각) 무엇을 당신이 원하는 알려줍니다.

+1

+1 나는 그 하나를 알아 차리지 못했다. :) – icabod

0

나는 다른 대답을 썼지 만, 여기서 필요한 것을하기위한 더 나은 방법으로 끝났다. (나에게 더 좋고 결정적인 해결책은이 기사의 마지막 부분 인 [편집] 섹션에있다.).

hg log을 사용하십시오.

특히 hg sum 명령을 먼저 실행하십시오. 이 날 줄 것이다 :

parent: 189:77e9fd7e4554 
<some commit message> 
branch: default 
commit: (clean) 
update: 2 new changesets (update) 

그 2 명 개의 새로운 변경 집합이 만들어진 것을 확인하려면, 나는

hg log -r tip -r 2 -v 

은 물론, 2hg sum보고 그 변경 집합의 번호로 대체되어야 사용할 수 있습니다.

tip은 최신 (또는 "적용되지 않은") 변경 집합을 나타 내기 때문에 작동합니다. 출력을 2 개의 최신 변경 (-l 2)으로 제한하면, 관심있는 변경 집합에 대한 정보 만 표시됩니다. -v을 사용하면 변경 집합의 영향을받는 파일 목록도 표시됩니다.

것들을 간단하게하기 위해, 나는 내 .bashrc 파일에 사용자 명령을 정의했습니다 :

alias hglog="hg log -r tip -l $1" 

이 날 (/ 적용되지 않은 변경 집합 보류의 수를 얻기 위해) hg sum를 입력 할 수 있습니다 다음 hglog x 어디를 입력 xhg sum으로 표시되는 변경 집합의 수입니다.

예를 들어 맞춤 템플릿을 사용하는 등 더 완벽한 방법이있을 수 있지만 정교함이 너무 복잡합니다.

[편집] 나는 더 이상 hg sum를 입력 할 필요가 없도록 내가 별칭 아이디어를 확장하여이 질문에 대한 가장 만족스러운 대답에 도달했습니다 (세 번째 반복).

show_pending_changesets() { 
    nb=$(hg sum | grep "update:" | sed 's/update: \([0-9]*\) .*/\1/'); 
    if [ `expr $nb + 1 2> /dev/null` ] ; then 
    hg log -r tip -v -l $nb 
    else 
    echo "Nothing new to report" 
    fi ; 
} 
... 
alias hgwhatsnew=show_pending_changesets 

설명 : 내 .bashrc에 파일 이제이 포함되어 나는 hg sum의 출력 (update:로 시작 하나입니다) 마지막 줄에서 변경 집합의 수를 추출하는 sed을 사용하고 있습니다. 이 번호는 hg log에 입력됩니다. 내가해야 할 일은 hgw을 입력하고 탭으로 완성하는 것입니다. HTH

관련 문제