2011-07-13 52 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