2013-07-09 52 views
0

我想在我的遊戲和我的遊戲編輯器之間分享我的模型。遊戲是在cocos2d框架中開發的,它包含C++和Objective-C代碼。編輯器在Qt中完成(在Windows 7 atm上開發)。該模型是純粹的C++(沒有平臺特定的東西)。應用程序之間的共享代碼

我在工作中遇到類似問題,我通過將共享代碼導出爲項目併爲其創建存儲庫來解決此問題。然後,我將它作爲子項目添加並根據需要進行更新,但我不確定是否可以將子項目添加到Qt。它實際上就像一個靜態庫存儲庫,它是編輯器和遊戲存儲庫的子庫,但我不知道該怎麼做。

+1

它自己的回購單獨的C++靜態庫就是答案。不應該有這樣的複雜性(你甚至可以用Xcode編譯它並將它安裝到'/ usr/local'或其他東西中,並將它視爲第三方庫)。 – trojanfoe

+0

@trojanfore - 只需將它作爲子存儲庫添加到兩個項目中? – Mercurial

+0

不確定子回購(從未使用過)。我總是有單獨的回購,我將其作爲兄弟姐妹安排在文件系統中,並使用'../ otherproject/..'來引用它們。 – trojanfoe

回答

2

聽起來像你要找的是什麼Git submodules(重點煤礦):

經常發生在一個項目上工作時,你需要使用另外一個項目從內它。也許這是一個第三方開發的庫,或者你正在單獨開發並在多個父項目中使用。在這些情況下出現了一個常見問題:您希望能夠將兩個項目分開處理,但仍能夠使用另一個項目中的項目...

Git使用子模塊解決了此問題。 子模塊允許您將Git存儲庫作爲另一個Git存儲庫的子目錄。這使您可以將另一個存儲庫克隆到您的項目中,並將您的提交分離爲

您還可以閱讀關於submodules on the Git docs的更多信息。

+0

這個,但在我看來子模塊工作流程很糟糕,如果子模塊需要經常更改/更新。 – mnagel

+0

它對我來說很好。謝謝。 – Mercurial

1

Subtree merging是另一種選擇。

有關git-subtree腳本背後的血淋淋的詳細信息,請參見thisthis(按照增加核心的順序)。

舉後者手冊:

有要包括從獨立開發的項目在項目中的內容的情況。只要沒有衝突的路徑,您可以從其他項目中拉出。

有問題的情況是當存在衝突的文件時。潛在的候選人是Makefiles和其他標準文件名。你可以合併這些文件,但可能你不想。解決此問題的更好方法是將項目合併爲自己的子目錄。這不受遞歸合併策略的支持,所以只是拉動不起作用。

你想要的是子樹合併策略,它可以幫助你在這種情況下。

git-subtree腳本(Git在其相對較新版本的contrib部分中提供)有助於子樹合併。

相關問題