我正在开发一个与git存储库一起工作的软件,我希望能够编写一些测试。为了做到这一点,我在我的项目中创建了一个test-repo
文件夹,它本身就是一个git存储库。在我的测试中,我引用该存储库以确保我以精确已知状态对存储库运行的命令。
我的问题是:我可以将嵌套的repo版本作为项目主回购的一部分吗?请注意,这与子模块解决的问题不同:嵌套的repo实际上是封闭项目的一部分,而不是外部引用的软件。
答案 0 :(得分:3)
我认为问题是git检测到自己的.git
文件,并且不允许使用它们。但是,如果您将测试代表的.git
文件夹重命名为不同的文件夹,例如_git
它会奏效。您需要做的只是在测试中使用GIT_DIR变量或--git-dir
命令行参数来指定文件夹。
答案 1 :(得分:0)
即使它不是“外部引用的软件”,submodules仍然是一种很好的方法,因为它有助于捕获已知的存储库状态。
我宁愿将repo
和test-repo
放在父回购“project
”中:
project
repo
rest-repo
这样,我可以记录repo
和test-repo
的确切SHA1。