Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Newbie falls at first hurdle

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:06

Alan Chandler [off-list ref] writes:
I effectively loaded both my current code and the day before's
backup into git as two separate branches.

What I was then trying to do, via various attempts with git diff -p was to 
extract small chunks of updates (ie limit scope over a few files).  Edit the 
result to limit the diff to cover a small update and then apply it to a my 
current stuff to slowly undo some of the mess that I had made. 
Ah, what you have to work with are only date-based snapshots of
various states (i.e. the separation between one snapshot and
another does not necessarily have much to do with a single set
of logically isolated changes).

I end up doing that myself, although the situation I'd be in
tend to be one logical change spread over multiple commits (the
other way around from your case where one diff contains many
logically unrelated chagnes).  I run git-diff-tree -p between
states to obtain a set of N diffs, look them over and hand edit
them to collect related things together and separate independent
things separate to create a different set of M diffs. then
create a temporary branch that is reset to the state before
those N diffs and use applymbox to apply M diffs.  This is
essentially what Martin suggested.

In your case, each diff you have contains unrelated changes and
you have to move things around.  It's a pain but I am afraid
there are not any SCM can do much to help you.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help