From: Hakim Cassimally <hakim.cassimally@gmail.com>
To: git@vger.kernel.org
Subject: git-cherry-pick problem - directory not touched by commit is marked "added by us"
Date: Tue, 5 Jan 2010 12:33:26 +0000 [thread overview]
Message-ID: <82cfa8031001050433r6d705222qf905c929ad6395c4@mail.gmail.com> (raw)
I got into a bit of trouble with a git-cherry-pick last night, and
though mugwump
and others on #git helped me as far as a workaround, I'm still very confused,
and would like to make sure it doesn't happen again
I'm fairly sure the problem is due to my ignorance, so I'll firstly describe
the mess I've made of my repo :-)
BACKGROUND
==========
* I had a (trunk) branch that contained most of the code
* I started to experiment with porting our .cgi code to a framework and later,
after the fact, created (experimental) off (trunk)
* As experimental has of course taken longer than expected, I've since forked
(stable) again from (trunk), but from a commit before the experimental stages
started.
* I've developed Feature "X", which took advantage of some of the experimental
refactoring... so of course I developed it in (experimental)...
* I now want to port it back to (stable) so I can release it...
* I was recommended to use 'git rebase -i' but didn't understand how
* ... so I was also recommended to use 'git cherry-pick'. As there were
only 6 relevant commits, I chose to do that
WHAT HAPPENS
============
When I'm in (stable), and try to cherry-pick the change from (experimental),
git thinks that I'm making a massive number of changes in a directory that
wasn't touched by the relevant commit.
Here's a sample transcript which hopefully makes sense: I've included output
of 'git show' and 'git whatchanged' which seem to suggest that the commit
I'm cherry-picking shouldn't be changing these files.
(stable) $ git --version
git version 1.6.6
# I tried previously on 1.6.0.4 but upgraded in case it helped
(stable) $ git status
# On branch stable
# nothing to commit (working directory clean)
(stable) $ git show --stat 301afce1
commit 301afce1c78380276d208077ef4ec76b469c1024
Author: osfameron <...>
Date: Wed Dec 23 23:45:20 2009 +0000
Proof of concept for import module (parse Excel)
bin/upload_module.pl | 142
++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 142 insertions(+), 0 deletions(-)
(stable) $ git whatchanged -1 301afce1
commit 301afce1c78380276d208077ef4ec76b469c1024
Author: osfameron <...>
Date: Wed Dec 23 23:45:20 2009 +0000
Proof of concept for import module (parse Excel)
:000000 100644 0000000... c90e261... A bin/upload_module.pl
(stable) $ git cherry-pick 301afce1
Finished one cherry-pick.
www/client/css/admin-clean.css: needs merge
www/client/css/admin.css: needs merge
www/client/css/error.css: needs merge
www/client/css/public.css: needs merge
www/client/css/user-clean.css: needs merge
<...snip>
www/client/css/admin-clean.css: unmerged
(832c41e99d19f2dd39c9cf3709f14619ffab24b8)
www/client/css/admin.css: unmerged
(8e7cd850bf40d1a921b1f62ce0945abd374fa55d)
www/client/css/error.css: unmerged
(88945d05640c0820c9cf68922392573d4ac07b2c)
<...snip>
...
error: Error building trees
(stable) $ git status
# On branch stable
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: bin/upload_module.pl
#
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add <file>..." to mark resolution)
#
# added by us: www/client/css/admin-clean.css
# added by us: www/client/css/admin.css
# added by us: www/client/css/error.css
# added by us: www/client/css/public.css
<...snip>
As mugwump suggested, I can resolve by doing
(stable) $ git checkout HEAD www/
And then proceed by commiting that cherry-pick. This is how I've fixed it.
(Slightly annoying to repeat/lather/rinse for 6 separate commits, but works).
Oddly, though I've done some messing about in the www/ tree, these files exist
in both, for example "www/client/css/admin.css" exists in both (experimental)
and in (stable).
Please let me know if I should be submitting different or more detailed
information to describe the problem better!
Any help in working out what I'm doing wrong would be really appreciated,
osfameron
next reply other threads:[~2010-01-05 12:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-05 12:33 Hakim Cassimally [this message]
2010-01-05 21:37 ` git-cherry-pick problem - directory not touched by commit is marked "added by us" Sam Vilain
2010-01-06 11:28 ` Hakim Cassimally
2010-01-07 3:30 ` Junio C Hamano
2010-01-07 3:35 ` Junio C Hamano
2010-01-08 22:29 ` Hakim Cassimally
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=82cfa8031001050433r6d705222qf905c929ad6395c4@mail.gmail.com \
--to=hakim.cassimally@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).