【发布时间】:2019-07-29 22:09:46
【问题描述】:
所以我的团队目前正在为我们的项目使用 svn 存储库。有另一个团队并行工作,但他们使用的是 git 存储库。我想把其他团队的代码合并到我们的。我已经尝试了几次,但我一直在提取他们的代码而不合并,即它只是覆盖了我们的文件。我一直在使用 git-svn 工具,但收效甚微,我担心 svn 日志中越来越多的无用和垃圾提交在我的老板面前看起来不太好。
这些是我遇到的一些障碍:
- 我们有一个单一的 svn 存储库,其中包含大约 10 个组件,其中另一个团队对每个组件都有一个存储库。
- 我一直在关注一个使用 -s 选项的示例,它是我们的 svn 存储库没有的标准布局(使用树干/分支/标签的 svn 通用目录结构)的缩写。如果没有这个选项,我无法让这个方法工作,这会导致所有文件被合并(基本上只是复制)到一个我不关心的空目录中。
- 最好我不想保留他们的整个提交历史。我只想要一个提交说我将他们的回购与我们的合并。或者我必须合并的每个 git repos 的提交。上一个项目符号中提到的相同示例复制了整个提交历史记录,这在我们的日志中添加了大量我的团队并不关心的提交。
这是示例(post 中的第一个答案):
mkdir copy-git-repo
cp -a orig-git-repo/. copy-git-repo/
cd copy-git-repo/
svn mkdir --parents https://svn/url/PROJECT/trunk -m "Trying to merge of of their git repos into our svn"
git svn init https://svn/url/PROJECT -s
git svn fetch
git rebase trunk master
# if there are merge conflicts
git status
# deal with merge conflicts listed
git add .
git rebase --continue
git svn dcommit
有人看到我犯的错误吗?
【问题讨论】: