merge weirdness
From: Len Brown <lenb@kernel.org>
Date: 2016-06-15 22:44:44
I merged about a dozen small branches earlier this week and sent the batch
to Linus, who pulled them upstream with
da50ccc6a0f32ad29c1168837330a78e6e2e2923
I pulled Linus' tree and then went to compare which of my branches had
made it upstream, and my topic branches "git.status" script (pasted
below) said that none of them had!
Looking at Linus' history, it seems that my merge is gone. Instead there
is a series of patches that look like they've been cherry-picked -- same
commit but different commit id.
I run the top-of-tree version of git.
Did something strange happen with git a few days ago in this department?
I still had my merge in command history so I checked out an old branch and
did the same merge using today's git (git version 1.5.6.rc2.26.g8c37)
and gitk shows it as an octopus, as expected.
clues?
thanks,
-Len
---
#!/bin/bash
# report on status of my ia64 GIT tree
cd ~/src/acpi
gb=$(tput setab 2)
rb=$(tput setab 1)
restore=$(tput setab 9)
#if [ `git-rev-list release ^test | wc -c` -gt 0 ]
if [ `git rev-list test..release | wc -c` -gt 0 ]
then
echo $rb Warning: commits in release that are not in test $restore
git-whatchanged release ^test
fi
#for branch in `ls .git/refs/heads`
for branch in `git show-ref --heads | sed 's|^.*/||'`
do
if [ $branch = linus -o $branch = test -o $branch = release ]
then
continue
fi
echo -n $gb ======= $branch ====== $restore " "
status=
for ref in test release linus
do
if [ `git-rev-list $branch ^$ref | wc -c` -gt 0 ]
then
status=$status${ref:0:1}
fi
done
case $status in
trl)
echo $rb Need to pull into test $restore
;;
rl)
echo "In test"
;;
l)
echo "Waiting for linus"
;;
"")
echo $rb All done $restore
;;
*)
echo $rb "<$status>" $restore
;;
esac
# git-whatchanged $branch ^linus | git-shortlog | cat
git log linus..$branch | git shortlog | cat
done