2011-07-13 58 views
1

我目前使用SVN來管理jboss服務器配置,並且我需要在每個工作副本中有相同子目錄的多個副本,但是引用服務器上的相同目錄,以便當我更改某個文件時,每個副本都獲得更新。SVN Externals有沒有GIT的替代品?

實施例:

  • /服務器/ bin中(共享)
  • /服務器/節點-01(儲存庫的拷貝/服務器/節點)
  • /服務器/節點-02(存儲庫的副本/服務器/節點)

是否有可能使用git實現相同? (maney)類似的問題我找不到明確的答案。

+0

你看過子模塊嗎?它會要求你把這些外部存儲到git倉庫中,但通常這是如何完成的。 – robamaton

回答

2

我知道的最好的近似是git-submodule [1]。

您可以定義子存儲庫,並讓「父」存儲庫從概念上包含一個散列,指定每個子存儲庫應具有的確切修訂版本。

當你的HEAD在子倉庫中移動時,「git status」和「git diff」會報告它作爲父倉庫中的哈希變化。

不幸的是,git的子模塊是有點笨重:

  • 當你在母公司回購拉,它不會自動更新子回購。相反,孩子回購將顯示爲您已經進行了本地更改(將其新位置恢復到原來的位置)。

  • 您必須在每次(或當然是腳本)顯式調用「git子模塊更新」後,您要拉/合併父回購。

這也意味着在子模塊存在的情況下,父母的「git rebase」和其他操作不起作用。但是你對這裏的行爲有很好的控制,所以沒有什麼不能解決的。

[1] http://kernel.org/pub/software/scm/git/docs/git-submodule.html