2016-04-08 99 views
0

我正在尋找最簡單的方法去除所有本地提交(即未在遠程repo中提交)並從mercurial存儲庫中刪除所有本地書籤。我知道我可以運行一些類似於hg bo | xargs hg strip && hg bo | xargs hg bo -d(顯然剝離了提交哈希),但在堆疊提交時遇到類似問題時遇到問題。從mercurial repository中刪除所有本地書籤和提交

有沒有一種簡單的方法(如果有點笨拙,也許)的方式來吹走你的存儲庫副本的所有本地更改,讓你一個鏡像遠程存儲庫準確?謝謝!

+0

BTW,普通'汞foo'將不因它xargs的作品的默認forat –

回答

2
  1. 爲了剝離子樹,可以用手剝離只有最古老的祖先

strip命令刪除指定的變更和所有其後代。

  1. 爲了找到未發佈變更集的根目錄,您可以使用revsets和templating。如果你有一個遙控回購(有default化名),它僅僅是
hg log -r "roots(outgoing())" -T "{node|short}\n" 

許多遙控器revset可以進行修改,以

roots(outgoing(PATH1) & outgoing(PATH2) ... & outgoing(PATHN)) 

或(與一些假設:a)Mercurial支持階段b)祕密階段不使用c)遠程回購是普通的「發佈回購」)

roots(draft()) 

(未按下的變更是在默認情況下,相草案)