Hi Christian, Thanks for sending out the detailed instructions. Using your instructions I am able to update the branches.
Thanks, Yegappan On Thu, May 26, 2016 at 2:11 AM, Christian Brabandt <[email protected]> wrote: > Hi Yegappan! > > On Mi, 25 Mai 2016, Yegappan Lakshmanan wrote: > >> Hi all, >> >> I recently started using the github branches to track my changes to Vim. >> I have a question about syncing a feature branch to the upstream repository. >> >> I first created a clone of the Vim repository: >> >> https://github.com/yegappan/vim >> >> Next, I created a child branch for each of my change: >> >> https://github.com/yegappan/vim/branches >> >> After Bram released several patches recently, I synced my fork to the Vim >> repository. Now how do I sync (rebase) all of the feature branches? >> >> When I tried to rebase and push the changes back to one of the child branch, >> it created a commit with all the patches from the mainline. It shows up as >> though I committed all the changes. >> >> https://github.com/vim/vim/pull/830/commits >> https://github.com/vim/vim/pull/830/files >> >> What is the proper method to sync (rebase) the upstream changes to the >> feature >> branches in a fork? > > I had problems with this as well, since I switched from mercurial mq > patches to git. So let me explain what I usually do. I assume, you have > a branch called upstream, where the remote is the vim/vim repository: > > #v+ > 1 39209 chrisbra@debian ~/code/git/vim-src (git)-[master]- % git remote -v > origin [email protected]:chrisbra/vim.git (fetch) > origin [email protected]:chrisbra/vim.git (push) > upstream [email protected]:vim/vim.git (fetch) > upstream [email protected]:vim/vim.git (push) > #v- > > Now what I do is, I update the master branch first and rebase upstream > vim/vim on it: > > #v+ > 1 39209 chrisbra@debian ~/code/git/vim-src (git)-[master]- % git fetch > upstream && git rebase upstream/master > > [...] > * [new tag] .... > [...] > #v- > > Now your master branch is at the same state as vim/vim process. Now I > usually switch branches to the feature I am working on and rebase on top > of it: > > #v+ > 128 39213 chrisbra@debian ~/code/git/vim-src (git)-[master]- % git checkout > search_skip > Switched to branch 'search_skip' > 0 39214 chrisbra@debian ~/code/git/vim-src (git)-[search_skip]- % git log -v > commit be0e2f5ee9fa786aa71f30fdc7ef41386b1126d4 > Author: Christian Brabandt <[email protected]> > Date: Wed Feb 24 19:48:51 2016 +0100 > > Add skip expressions to search() function > > This allows to search for patterns, and skip on certains expressions > (e.g. skip all matches in comments), similar to how searchpair() works > > commit 68c85fcdf31c104db21c96cd5871724e458c95ff > Author: Bram Moolenaar <[email protected]> > Date: Wed Feb 24 12:57:50 2016 +0100 > > patch 7.4.1412 > Problem: Compiler warning for indent. (Dominique Pelle) > Solution: Fix the indent. > [...] > 141 39215 chrisbra@debian ~/code/git/vim-src (git)-[search_skip]- % git > rebase master > First, rewinding head to replay your work on top of it... > Applying: Add skip expressions to search() function > Using index info to reconstruct a base tree... > M runtime/doc/eval.txt > M src/eval.c > M src/testdir/test_syntax.vim > Falling back to patching base and 3-way merge... > Auto-merging src/testdir/test_syntax.vim > CONFLICT (content): Merge conflict in src/testdir/test_syntax.vim > #v- > > Okay, I have to fix a conflict: > > #v+ > 1 39216 chrisbra@debian ~/code/git/vim-src (git)-[search_skip|rebase]- % vim > src/testdir/test_syntax.vim > 0 39217 chrisbra@debian ~/code/git/vim-src (git)-[search_skip|rebase]- % git > add src/testdir/test_syntax.vim > 0 39218 chrisbra@debian ~/code/git/vim-src (git)-[search_skip|rebase]- % git > rebase --continue > Applying: Add skip expressions to search() function > #v- > > And then I force push that branch back into my repository: > > #v+ > 128 39220 chrisbra@debian ~/code/git/vim-src (git)-[search_skip]- % git push > --force > #v- > > The result looks like one single patch on top of Brams latest commits: > https://github.com/vim/vim/compare/master...chrisbra:search_skip > > > And if you already have created a pull request, that PR will be updated > automatically to the single commit (and the previous one won't be seen). > > I often check with git log -v and in case there are too many commits (or > wrong ones from other branches), I usually fall back to git rebase -i > and deleting old ones or merging old ones or whatever is needed. > > -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
