Thread (5 messages) flat view 5 messages, 3 authors, 2016-06-15

Re: surprising behavior from merge

From: Sebastian Kuzminsky <hidden>
Date: 2016-06-15 22:53:49

Here's a little script that reproduces the problem:

-----
#!/bin/bash
set -e

if [ -e git-merge-problem ]; then
    echo "'git-merge-problem' exists, not running test!"
    exit 1
fi

mkdir git-merge-problem
cd git-merge-problem
git init

echo "first line" > myfile
echo "second line" >> myfile
echo "" >> myfile
echo "next to last line" >> myfile
echo "final line" >> myfile
git add myfile
git commit -m 'initial commit of myfile'

git branch other

sed -i -e 's/second line/this line is in the context of the crucial patch/' myfile
git add myfile
git commit -m 'change context for crucial patch'

sed -i -e 's/^$/\nthis line is added only once, but in two branches\n/' myfile
git add myfile
git commit -m 'add a line'

git tag add-a-line

git checkout other
git cherry-pick -x add-a-line

git checkout master

git merge other

NUM_LINES=$(grep 'added only once' myfile | wc -l)
if [ $NUM_LINES -eq 2 ]; then
    echo "FAIL!  the merge added the line twice"
    cat myfile
    exit 1
elif [ $NUM_LINES -ne 1 ]; then
    echo "FAIL!  the merge added the line a strange number of times ($NUM_LINES)"
    exit 1
fi

echo "PASS!  the merge added the line just once!"
exit 0
-----



On May 11, 2012, at 20:25 , Illia Bobyr wrote:
On 5/11/2012 5:05 PM, Sebastian Kuzminsky wrote:
quoted
On 05/11/2012 05:57 PM, Michael Witten wrote:
quoted
On Fri, 11 May 2012 16:25:29 -0600, Sebastian Kuzminsky wrote:
quoted
The simplified repo is here if anyone wants to inspect it:
https://github.com/SebKuzminsky/merge-problem
...
quoted
In other words, rather than burdening people with the task of
constructing a mental picture of what you have done, you should
show them as directly and precisely as possible; in this way,
people can go about the business of discussing your issue much
more quickly and, most importantly, PRECISELY.
Ah, I had intended the extremely tiny git repo I linked to to provide 
the info in the most concise way possible.  The surprising behaviour 
happened at the final commit in the repo, which was made by 'git merge 
other'.

I can email a list of commands to reproduce the issue later tonight if 
that would make anything clearer.
The repository you provided is actually quite simple and clear, though I 
have no idea why this might be happening.  Or if it is an expected behavior.

At the same time if you provide a list of command if someone will be 
fixing this they may server as an automated test.  Git has a lot of them.

--
Illia Bobyr
-- 
Sebastian Kuzminsky
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help