From: David Besen <david.besen@hp•com>
To: git@vger•kernel.org
Subject: Re: Amending merge commits?
Date: Fri, 25 Jul 2014 22:11:02 +0000 (UTC) [thread overview]
Message-ID: <loom.20140726T001014-124@post.gmane.org> (raw)
In-Reply-To: 22F01493C523F940B4B5E53BB6D0F5352275F207@G5W2738.americas.hpqcorp.net
Besen, David <david.besen <at> hp.com> writes:
>
>
> Hi folks,
>
> I think one of my coworkers has stumbled on a git bug -- if you amend a
merge commit, and then pull, your amends
> are lost.
>
> Is this expected behavior?
>
> I've reproduced the problem in a script (attached). I ran it against a
couple of versions of git (1.7.1,
> 1.7.9, 1.8.4, 2.0.0) and in each case it seemed to lose the amend.
>
> - Dave
>
>
> Attachment (amend-merge.sh): application/octet-stream, 1061 bytes
Whoops, accidentally encoded the script, here it is inline:
#!/bin/bash
set -ex
if [ -z "$GIT" ]; then GIT=git; fi
GIT_MERGE_AUTOEDIT=no
# Clean up from the last run
rm -rf repo.git repo repo2 || :
# Set up a bare "remote" repo
$GIT init --bare repo.git
# Check out the "remote" repo
$GIT clone repo.git repo
# Add a commit
cd repo
echo "file" > file.txt
$GIT add file.txt
$GIT commit -m "Add file.txt"
$GIT push origin master
# Make a branch
$GIT checkout -b mybranch
# Add a commit on the branch
echo "mybranch" >> file.txt
$GIT add .
$GIT commit -m "Add 'mybranch' line"
# Go back to master
$GIT checkout master
# Merge in mybranch to create a merge commit
$GIT merge --no-ff mybranch
# Push that back
$GIT push
# Amend the merge commit
echo "amended" >> file.txt
$GIT add .
$GIT commit -C HEAD --amend
cd ..
# Make a second checkout
$GIT clone repo.git repo2
cd repo2
# Add some unrelated changes to be pulled
echo "repo2" > file2.txt
$GIT add .
$GIT commit -m "Add file2"
$GIT push
cd ..
cd repo
# Pull
$GIT pull --rebase
# Now, we expect the text "amended" to be in file.txt
grep amended file.txt
next prev parent reply other threads:[~2014-07-25 22:15 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-25 22:03 Amending merge commits? Besen, David
2014-07-25 22:11 ` David Besen [this message]
2014-07-25 22:19 ` Jonathan Nieder
2014-07-25 22:23 ` Besen, David
2014-07-25 22:31 ` Jonathan Nieder
2014-07-28 19:37 ` Sergei Organov
2014-07-28 20:00 ` Jonathan Nieder
2014-07-28 20:53 ` Sergei Organov
-- strict thread matches above, loose matches on Subject: below --
2014-07-28 21:47 Nico Williams
2014-07-29 9:58 ` Sergei Organov
2014-07-29 15:44 ` Nico Williams
2014-07-29 19:29 ` Philip Oakley
2014-07-29 20:19 ` Nico Williams
2014-07-29 21:38 ` Philip Oakley
2014-07-29 22:07 ` Nico Williams
2014-07-30 8:42 ` Sergei Organov
2014-07-30 17:43 ` Nico Williams
2014-07-30 18:28 ` Sergei Organov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=loom.20140726T001014-124@post.gmane.org \
--to=david.besen@hp$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox