在其他git仓库中版本化git repo

时间:2013-01-31 20:15:50

标签: git

我正在开发一个与git存储库一起工作的软件,我希望能够编写一些测试。为了做到这一点,我在我的项目中创建了一个test-repo文件夹,它本身就是一个git存储库。在我的测试中,我引用该存储库以确保我以精确已知状态对存储库运行的命令。

我的问题是:我可以将嵌套的repo版本作为项目主回购的一部分吗?请注意,这与子模块解决的问题不同:嵌套的repo实际上是封闭项目的一部分,而不是外部引用的软件。

2 个答案:

答案 0 :(得分:3)

我认为问题是git检测到自己的.git文件,并且不允许使用它们。但是,如果您将测试代表的.git文件夹重命名为不同的文件夹,例如_git它会奏效。您需要做的只是在测试中使用GIT_DIR变量或--git-dir命令行参数来指定文件夹。

答案 1 :(得分:0)

即使它不是“外部引用的软件”,submodules仍然是一种很好的方法,因为它有助于捕获已知的存储库状态。

我宁愿将repotest-repo放在父回购“project”中:

project
  repo
  rest-repo

这样,我可以记录repotest-repo的确切SHA1。