From: Jason Gunthorpe <jgg@nvidia.com>
To: Bob Pearson <rpearsonhpe@gmail.com>
Cc: Leon Romanovsky <leon@kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>
Subject: Re: rxe MW PR for rdma-core
Date: Fri, 25 Jun 2021 13:20:38 -0300 [thread overview]
Message-ID: <20210625162038.GV2371267@nvidia.com> (raw)
In-Reply-To: <62f655f9-29f2-de99-29b0-16539f45e6fc@gmail.com>
On Fri, Jun 25, 2021 at 10:04:37AM -0500, Bob Pearson wrote:
> On 6/25/21 9:39 AM, Jason Gunthorpe wrote:
> > On Thu, Jun 24, 2021 at 11:59:14PM -0500, Bob Pearson wrote:
> >
> >> It took a few hours but I finally managed to get rid of the merge
> >> commits in the rxe MW PR. It's back out there at github. I lost the
> >> name change Jason had made when I deleted and reforked my repo. I
> >> remade the update kernel headers commit without the ??. It still
> >> passes all the screening tests.
> >
> > You should never have to delete and refork with git.
> >
> > Force push fixes all mistakes.
> >
> > The sequence to fix your situation is
> >
> > 1) Starting at the bad branch merge to latest rdma-core
> > 2) Create a new branch on latest rdma-core
> > 3) Use 'git cherry-pick' on each non-merge commit from the
> > bad branch
> > 4) Diff the bad/good branch to make sure nothing got missed in the
> > merges
> > 5) Reset the bad branch to the new branch's commit ID.
> > 6) Force push the fixed branch to github.
> >
> > In future use 'git rebase' instead of 'git merge'
> >
> > Jason
> >
> I have a question about how the various trees are arranged.
> I started by cloning the rdma-core tree from github to my local machine (i.e. origin master).
> Then later I added my own github account and forked the rdma-core tree.
> I have a link to is in my local .git/config (i.e. my-rdma-core).
> Normally I do a git pull from origin which is shorthand for git fetch + git merge (I think??)
> To rebase instead do you have to first do a fetch then a rebase or can you set the rebase flag in
> .git/config?
> I also do updates in the github web site from rdma-core to my copy there. I was having a hard time
> getting the private github tree and the local tree to match (because of merge commits)
Avoid creating merge commits in the first place, use rebase not merge
to rejoin different trees.
You should have in your git remotes something like:
github git@github.com:jgunthorpe/rdma-plumbing.git
lr-github git@github.com:linux-rdma/rdma-core.git
Then when you do a new task do something like
git fetch lr-github
git branch foo-task lr-github/master
git checkout foo-task
<blah blah>
git push -f github foo-task
And when you need to fix up foo-task don't merge but
git fetch lr-github
git rebase lr-github/master
git push -f github foo-task
> In the github docs that I read last evening they seem to recommend
> cloning the forked github tree instead of the upstream tree on your
> local system. Is this correct?
Who you clone from only setups a default remote called origin. You can
always change this with the 'git remote' commands to whatever you want
Jason
prev parent reply other threads:[~2021-06-25 16:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-25 4:59 rxe MW PR for rdma-core Bob Pearson
2021-06-25 14:39 ` Jason Gunthorpe
2021-06-25 15:04 ` Bob Pearson
2021-06-25 16:20 ` Jason Gunthorpe [this message]
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=20210625162038.GV2371267@nvidia.com \
--to=jgg@nvidia.com \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=rpearsonhpe@gmail.com \
/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