git-svn 不支持这样做。您可以编写一个简单的 bash 脚本来为您执行提交/变基,但老实说,我建议您手动执行,以防在更新或提交到 SVN 存储库时出现问题。
当我遇到这个问题时,我将存储库克隆到一个目录中,然后在主项目和外部存储库之间创建符号链接。
也就是说,假设我有以下结构:
/main-project
/external-repo-1
/external-repo-2
/external-repo-3
...etc
我做这样的事情:
# Create the unified project directory
mkdir LocalProject
cd LocalProject
# Clone the main project
git svn clone svn+ssh://svnserver/main-project
# Find out where all the external repos are
cd main-project
git svn show-externals
cd -
# Clone the sub-repos
git svn clone svn+ssh://svnserver/external-repo-1
git svn clone svn+ssh://svnserver/external-repo-2
git svn clone svn+ssh://svnserver/external-repo-3
...etc
# Create the symlinks
cd main-project
ln -s ../external-repo-1
ln -s ../external-repo-2
ln -s ../external-repo-3
...etc
警告:我认为这是不言而喻的,但请确保您没有将符号链接提交到您的仓库。