2012-11-09 78 views
0

我知道模板。我知道這已被問到(herehere)。請讓我詳細解釋我的情況,希望你能理解爲什麼我再次提出這個問題。我需要添加一個文件到Mercurial但不跟蹤對它的更改

我使用名爲PowerBuilder的IDE(和語言)。 PowerBuilder(PB)將源代碼和二進制目標代碼一起存儲在PBL(pibble)文件中。 PBL可以包含多個類的源代碼。因此,將PBL保持在版本控制下並不實際;它是每個應該獨立修改的單獨的類。但是,由於它是IDE使用的PBL文件本身,並且由於PBL中存在目標代碼,因此在克隆存儲庫時需要將這些文件推出。如果有要求,我可以詳細介紹一下。

PB IDE提供了MSSCCAPI接口的鉤子,以便它可以支持源代碼控制提供程序。它適用於Visual Source Safe 6!但是Mercurial沒有可用的MSSCCAPI提供程序。 (我以前是asked)是的,我試圖讓創建PB的人支持更新的API,但是不知道需要多長時間。然而,IDE 確實有,它提供了自己的基本SCC功能。這不是一個「真正的」解決方案。它更像是「這會讓你受益,直到你能買到真正的SCC節目」爲止。不過,它的工作原理是將每個類的源文件導出到單獨的文本文件中,併爲每個類創建相應的「狀態」文件(PRP文件)。文本文件?那些可以由Mercurial跟蹤!僅供參考,這個基本的「讓你通過」SCC選項不會保留歷史記錄或處理合並。

讓我詳細介紹一下這些PRP文件。 PB內置的SCC解決方案是圍繞專用鎖構建的。退房,入住,所有舊東西。它通過PRP文件管理這些簽出和簽入。它也知道什麼是以及什麼不是在修訂控制下通過存在相應的PRP文件。

所以首先用PRP文件。我需要將這些推出(並添加到新類中),以便IDE可以看到相應的類應該被跟蹤。如果沒有PRP文件,則IDE不會導出語法,並且在Mercurial中無法跟蹤任何內容。但是如果我繼續追蹤PRP文件的更改,那麼這意味着我推出了對類的排他鎖,而且沒有人願意。所以我需要添加PRP文件,但不跟蹤對它們的後續更改。

而我需要相同的二進制PBL文件。如前所述,我需要它們的存在以便IDE知道PBL構成代碼庫,但是目標代碼,編譯和類相互依賴性的複雜性意味着在動態重新創建它們是不可行的。所以我需要添加到Mercurial的PBL,但我並不想跟蹤這些PBL的變化。雖然我可能能夠通過與PRP文件的模板,我不能這樣做這些二進制PBL文件。

希望這可以完全解釋我的情況。我很抱歉,這個問題很長,但我想確保你清楚地瞭解我的反對意見,以便我沒有得到一堆非常好的「這是X的重複」響應。感謝您的耐心和您可以提供的任何指導。

+0

是Mercurial最終的,沒有討論過的選擇或替代方案是可能的? –

+0

>「Mercurial沒有可用的MSSCCAPI提供程序」 - 但是舊版本,哪些[支持](http://www.newsupaplex.pp.ru/files/hgscc.zip)支持? –

+0

@Lazy Badger,您發佈的文件會導致PowerBuilder崩潰。我懷疑這是我在第三段中鏈接到的問題中測試和提及的同一供應商。這就是爲什麼我說沒有*可用*提供者。 :( –

回答

0

即使我無法理解這樣的

如果我繼續跟蹤更改PRP文件,那麼這意味着我推了排它鎖在類爲好,沒有人願意那。所以我需要添加PRP文件,但不跟蹤對它們的後續更改。

即:「......沒有人希望這樣......」和「...添加PRP文件,但不跟蹤任何後續變化對他們......」 - 如果你不這樣做版本控逆變多變(和改變)來源看不到理由加過時的拳頭後變更文件含汞

您可以添加水銀,存儲和忽略更高版本的文件。 This answer玩遊戲很好地與小的變化:因爲你想.hgignore完整的工作拷貝(?真的想)你可以使用hg up -r N

+0

「... n obody想要......「是對同時發展需要的提及。在我看來(根據14年的經驗),軟件行業已經超越了獨有的代碼所有權和維護。顯然,其他人也同意,或者沒有人會開發像Mercurial和Git這樣的併發代碼管理系統。我會試試你鏈接的答案和你在.hgignore中提到的調整。希望這會給我我需要的東西。 –

0

替代方案

+0

SVN是用於版本控制而不是版本控制的,有些人(Joel Spolsky,http://hginit.com)認爲它使分支,合併和併發開發變得困難。 WizSource也是一個創建版本控制系統,但根本不支持分支和合並,因此它不適用於併發開發。我正在檢查Git的PushOk插件,這可能是一個巨大的幫助。無論我多麼欣賞它,我的問題不是關於替代品,所以我不能將它標記爲回答了所問的問題。 –

相關問題