1

存在被存儲在遠程Git倉庫的方式項目:在git中重映射目錄和文件? P4中的客戶端spec?

root/ 
    | 
    * 
    module1/ 
     | 
     * include/ 
     |  | 
     |  * lib1/ 
     |  |  header1.h 
     |  |  headerN.h 
     |  * libN/ 
     |    headerX.h 
     * sources/ 
       | 
       * lib1/ 
       |  file1.cxx 
       |  fileN.cxx 
       * libN/ 
       ... 

該產品是從這些庫構建。構建系統自動下載源代碼,在每個庫的源目錄將被置於靠近相應的頭文件在磁盤上的方式重新映射每個文件夾,即:

lib1/ 
    include/ 
     header1.h 
     headerN.h 
    sources/ 
     fileN.cxx 
    CMakeList.txt 

當庫映射到磁盤以這種方式,可以建。這種結構是由於歷史原因(Perforce又名P4);它在Perforce中工作,因爲Clientspec.txt文件,可以在存儲庫克隆上定義此類重新映射規則。

目前當倉庫從產地/主克隆是不可能建立只有一個庫項目中的W/O預備步驟手動創建符號鏈接對應。當創建這樣的符號鏈接時,不可能在那裏修改源代碼,因爲文件和.git之間的連接丟失了。

問題:是有可能克隆產地/主到本地目錄與上飛有能力重新映射目錄保存他們用git連接(=能夠修改/重命名/正確地移動文件?

我已經研究git的子模塊git的子樹,但似乎他們不這樣做的腳,因爲它們是爲了不同的目的。

謝謝!

P.S.目前不可能影響原產地/主人和服務器端。

回答

0

目前沒有。子樹必須位於子樹中,且該路徑中沒有其他來源。否則,當你分裂時,你最終會抓取不屬於該子樹的文件。然而,這是一個常見的請求,我認爲它可能最終需要某種類型的客戶端類型的解決方案(但這純粹是我的觀點,我不是那種願意現在就爲git做出貢獻的動機)。如果我遇到同樣的問題,也許我有一天會嘗試修復它。無論如何,它發生的太多了,它肯定會被某個人解決。

您可以嘗試在2個單獨的克隆中使用不具有任何重疊的獨立軟件倉庫,並以某種方式使用AUFS等方式將兩者合併在一起,然後再返回到每個獨立副本以處理簽入。您也可能不想在混合文件夾中創建任何新文件。整個工作流程是一團糟。