我注意到,git合并似乎并没有做一个稳定的排序,当它进行合并。或者它可能是完全不同的东西。我真的不知道哪里出了问题。git合并更改日志输出(不稳定的排序)
如果你试试这个小测试用例一个很好的10-20倍,直到它说:“片状”:
mkdir a; cd a; output=$(git init .; touch 0; git add 0 ; git commit -m0; git checkout -b b1; touch 1; git add 1; git commit -m1; git branch b2 master; git checkout b2; touch 2; git add 2; git commit -m2; git checkout master; git merge b1; git merge b2 -m"merge";) test=$(git log --format=%s|xargs echo); if [[ "merge 2 1 0" == "$test" ]]; then echo "FLAKY " $test; else cd ..; rm -rf a; fi; 2> /dev/null
(这是一个oneliner,你可以在bash提示符下运行)
通常情况下,记录你在结束回声看起来就像这样:
merge 1 2 0
但一段时间后,你可能会得到1和2转的地方:
merge 2 1 0
这真令人难以置信。我始终可以让这两个第一次提交在测试中互换,但我宁愿不要。我宁愿去除薄片。任何人知道是什么原因造成的