共享rerere缓存

时间:2012-09-24 13:26:05

标签: git version-control git-merge merge-conflict-resolution git-rerere

我看到有人建议所有开发人员在他们的计算机上设置一个符号链接,从C:\project\.git\rr-cache到共享文件夹\\server\rr-cache

但是,如果可以的话,通过将文件夹包含在git存储库中来共享文件夹似乎更方便。我见过人们提到这个解决方案,但实际上并不是这样做的。

有什么想法吗?

2 个答案:

答案 0 :(得分:17)

可以通过专用分支共享。如果该分支上存在冲突并解决它,您希望停止,因为这意味着尝试以两种不同的方式解决相同的冲突。不用说,这将成为规则的例外。

对于这个问题上的其他人,谷歌“每个功能分支”,看看这是有用的。

Hooks可以自动同步常见的rr-cache分支。

以下是您需要自动化的内容。 rereresharing是您要合并的示例分支,rr-cache是​​存储分辨率的分支;所有这些步骤都没有问题:

git checkout --orphan rereresharing start-sprint-1 
git --git-dir=.git --work-tree=.git/rr-cache checkout -b rr-cache
git --git-dir=.git --work-tree=.git/rr-cache add -A
git --git-dir=.git --work-tree=.git/rr-cache commit -m "initial cache"
git clean -xdf
git checkout rereresharing 
git merge --no-ff FTR-1
git merge --no-ff FTR-2
vim opinion.txt # resolve conflict 
git add -A
git commit
git checkout rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache add -A
git --git-dir=.git --work-tree=.git/rr-cache commit -m "resolution"
git remote add origin ../bpf-central
git push origin rereresharing rr-cache 
cd - # assumes you were previously in the other local repo
git remote add origin ../bpf-central
git fetch
git branch rr-cache origin/rr-cache 
ls .git/rr-cache
git --git-dir=.git --work-tree=.git/rr-cache checkout rr-cache -- .
ls .git/rr-cache

您现在已准备好执行相同的合并,您将解决冲突。

答案 1 :(得分:4)

也许不是共享rr-cache另一种选择是使用rerere-train.sh从现有的Git历史中学习冲突解决方案。