Git 存储库使用目录作为外部

Git repository using directory as externals

我有一个 SVN 存储库,其中一些文档通过 svn:externals 使用相同的参考 (bibtex) 文件。其内容如下所示:

bibtex/
doc1/
-doc1.tex
-bibtex/ (svn:externals)
doc2/
-doc2.tex
-bibtex/ (svn:externals)

这样我就可以单独检查每篇论文并获得相同的参考资料。我如何设置与 git 相同的设置?

我读到建议使用子模块,但如果我尝试(在 git svn clone 之后)

git submodule add ./bibtex ./doc1/bibtex

我得到

fatal: repository '/home/user/repo/bibtex' does not exist
Clone of '/home/user/repo/bibtex' into submodule path 'doc1/bibtex' failed

您需要确保 bibtex 在其自己的 Git 存储库中。这不是 svn external 的用法,因为它是 "relative external" link 到 same 存储库的文件夹。

此外,在 git svn clone 之后,只有在您不打算 git svn dcommit 返回 SVN 存储库的情况下,您才可以重新组织 Git 存储库。

如果是这样,那么是的,您可以:

即:

cd /path/to/svl-cloned/repo
cd doc1
git rm -r bibtex/
git commit -m "remove bibtex"
git submodule add /url/remote/bibtex/repo bibtex
git add .
git commit -m "Add bibtex submodule"