簡體   English   中英

mercurial暫時忽略版本化文件

[英]mercurial temporarily ignore versioned files

我的問題與此處基本相同,但適用於mercurial。 我有一組受版本控制的文件,一個保存操作會更改很多文件。 一些最終的更改對於版本控制很重要,而且一些更改只是垃圾。 我可以將垃圾“分區”成單獨的文件。 這些垃圾文件需要是基本結賬的一部分才能使其正常工作,但它們的內容(以及隨時間的變化)對於版本控制並不重要。 現在我只是告訴我們所有的開發人員不要提交這些文件,但我們都忘了,它在存儲庫中創造了許多額外的包袱。 我真的不喜歡提出的svn解決方案,因為有很多文件,我想要一個簡單的克隆才能在沒有所有這些額外的手工工作的情況下工作,所以我想知道mercurial是否有更好的選擇。 它有點像hg擱置但不完全,有點像忽略,但不完全。 是否有一些hg擴展允許這個? git能做到嗎?

Mercurial不支持這一點。 做正確的做法是犯thefile.sample ,然后讓開發者(或更好的部署腳本)從做一份thefile.samplethefile如果thefile不存在。 這樣任何人都可以更新示例文件,但不存在他們提交本地更改的風險(比如他們的個人數據庫連接字符串)。

啊哈! 因此,TortoiseHG的存儲庫和全局設置具有自動排除列表,您可以在其中定義在打開狀態,提交和擱置對話框時默認情況下將取消選中的文件列表。 所以他們仍然出現,但用戶必須檢查它們才能真正做出提交。 該設置存儲在hgrc中,但它位於[tortoisehg]標題下,因此mercurial本身不支持它。 不過,它符合我的需要。

對此的一個解決方案是使用嵌套樹支持(git中的子模塊),其中“垃圾”將放在不同的存儲庫中(以避免混亂主存儲庫),同時能夠以一致的方式檢出整個事物(正確版本的兩個repos同步)。

https://www.mercurial-scm.org/wiki/Subrepository?action=show&redirect=subrepos

在git中,子模塊是這個問題的一個解決方案 - 但它們並不是那么出色的UI。 我所做的是保留兩個完全獨立的存儲庫,並在需要使用垃圾回收更新主存儲庫時使用子樹合並策略: http//progit.org/book/ch6-7.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM