Re: Moving a file back to an earlier revision.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"David Ho" <davidkwho@xxxxxxxxx> writes:

>> I am working on a board port on a separate branch.  The branch has
>> accumulated several revision of changes to a driver I worked on.  Now,
>> someone has come along with a better fix so I want to help test his
>> patch.  To do that I have to revert my changes to that driver (several
>> revisions back) before I can apply his patch.
>>
>> What would be a convenient way to do that with git?
>
> Sorry I might already have found it.
>
> File revisions
>
> +----+----+
> 1    2    3
>
> git diff commit(3)..commit(1) filename | git-apply

[please do not top-post].

That lets you go back to the state before 1, so what you are
doing is to start from here:

	---0---1---2---3

and

	---0---1---2---3---*

where * has the same tree as 0, and then on top of that you
apply his patch:

	---0---1---2---3---X

But what if you find a room for further improvements in his
patch?  You could commit X (which is revert of 321 *and* his
patch) and then build on top of it, like this:

	---0---1---2---3---X---Y

and feed him "diff X..Y" back.

However.

What Linus said is more natural in git.  Starting from the same
picture, you do this:

             X (side branch to test his patch on)
            /
	---0---1---2---3 (your original branch)

You apply his patch to a new branch.  You could even make
further improvements like this:

             X---Y
            /
	---0---1---2---3

And if you decide Y is better than your version 3 after all, you
can switch to his branch and then pick up anything important
from your development track between 0..3 on top of Y by
cherry-picking, and you can even later discard your original
development track.  On the other hand, if you end up deciding 3
is better than Y after all, you can just discard the whole side
branch.

Remember, a branch in git is very cheap, and is a powerful way
to keep track of things while you decide which alternate
universe to take.  And even after you decide, you could always
look at and even build on the other universe.

-
: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]