我的工作流是做非常頻繁的提交和推送,然後當我準備好時,將提交結合成一個提交(帶histedit等)來清理日誌。如何在hg中有一個工作流程,哪裏有非常頻繁的提交?
用git,我會做一個rebase和push。留下的搖搖晃晃的頭不會亂丟我的日誌,最終會被垃圾收集。
隨着mercurial,我結束了多個頭。如果我關閉分支以擺脫陳舊的頭部,最終會有一百萬封閉的分支仍然出現在日誌中。這破壞了最初的目的。
如何在沒有完全搞砸日誌的情況下在mercurial中擁有這樣的工作流程?有沒有可以在mercurial下工作的替代工作流程?
請注意,頻繁的提交也被推送到回購(爲了安全起見)。這意味着我不能很好地使用像strip這樣的東西。
你*可以*使用'hg strip',這只是一個很大的痛苦。考慮設置頻繁的小提交以使用祕密階段,以便它們不被推送。如果你確實需要明確地推動它們,那麼在之後強制它們回到祕密階段,並且在需要時/在需要時將它們剝離。 – torek
一旦您將提交推出,Strip將不起作用。我的意思是,它適用於當地的回購協議,但是當你下次回來的時候你可以回覆它們。他們永遠在回購中。你最終會有多個頭。你可以關閉一個分支來擺脫頭部,但歷史/日誌仍然很痛苦地混亂。 下面有一個鏈接描述清除不需要的分支的3種方法。但是他們都很痛苦,所以這個工作流程非常繁瑣。 https://www.mercurial-scm.org/wiki/PruningDeadBranches – Ziffusion
這就是爲什麼我建議將它們標記爲祕密。一旦推動,你必須從每個存儲庫中'hg strip',這就是「巨大的痛苦」。 Lazy Badger的建議(禁用輔助備份存儲庫中的發佈)也可行,但現在需要三個倉庫:「工作站點」,「輔助備份」和「發佈點」。然而,並非所有這些,Evolve擴展顯然是在正確的軌道上,我不知道它爲什麼還不是標準Mercurial的一部分。 – torek