Re: switching upstream tips

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

 





Alex Riesen wrote:

2009/5/13 Ittay Dror <ittay.dror@xxxxxxxxx>:
I'm working on a repository in github that is forked from another
repository. I've committed several times and pulled (merged) from the
upstream a few times (so the committs are interleaved). The upstream
repository is a clone of an SVN repository (in apache). The project has
switched svn repositories (moved from incubation to top level project) and
so created a new repository in github.

That's evil.

* Reorder my history so that my commits are on top of the tip of the old
upstream repository.

Look at "git rebase -i" (interactive rebase)
well, i was hoping for something more automatic. git rebase will list all commits without author, so i'll have to manually figure which of them is mine from the commend and reorder
* Change the upstream repository reference so it points to the new
repository

Just edit your .git/config and re-fetch.
but then git suddenly sees a bunch of new objects (because of the svn changes) and i get a lot of conflicts. note that it is not the directory structure that changed, just the svn repository which is included in the commit comment (by git-svn) and so changes the commit sha1.
* Apply my commits on top of the new upstream repository

You can try to cherry-pick your commits (git cherry-pick).
Maybe rename detection will be enough to apply your changes
as is. But as far as I understand, the path names in the new
upstream are now all different (moved a level up?).
You can save your commits in a mbox:

   git format-patch -o mbox old-upstream..your-last-commit

Edit the paths in the mbox and try to apply the result:

   git am -3 result.mbox

Or, you can use git filter-branch to modify the old history as if it
was always operating on the directory structure of the new
upsteam (assuming it is possible, of course). See manpage
of git filter-branch, there is an example (look for "move the whole
tree into a subdirectory").

--
To unsubscribe from this list: 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]