给定一个预先存在的SVN结构:
trunk/
tools/
frob-1.2/
frob-1.4/
frob-1.8/
frob-latest/ => frob-1.8/
" frob-latest"由svn:external
属性创建为同一存储库链接...
在上面的存储库的Git-SVN镜像中以及在纯Git存储库中复制它的最佳方法是什么(因为我们考虑将来迁移到Git)?我正在寻找适用于Windows和Linux的东西,因为我们同时使用它们。
标准Git-SVN checkout忽略了外部属性,因此结帐中不存在frob-latest
目录,这会破坏事情。
在Linux上,可以在工作副本中手动创建符号链接,但这只能传播到纯Git存储库中的其他Linux用户(如在Git-SVN存储库中,它会导致与SVN冲突)外部和符号链接不适用于任何Windows工具。)
在Windows上,可以在工作副本中手动创建目录联结,但这不能传播给任何其他用户(并且首先需要管理员权限才能设置)。
Git有一个"子模块"概念,表面上听起来像是svn:external
的等价物,但据我所知,它们只能指向整个存储库,而不是存储库中的子路径(在这种情况下是相同的存储库),所以他们对这个应用程序没用。他们看起来似乎比外部工作更痛苦,但这可能只是不熟悉。