git pull fails on linux-next (out of memory)
Srivatsa S. Bhat
srivatsa.bhat at linux.vnet.ibm.com
Thu Apr 19 06:50:04 EDT 2012
On 04/18/2012 01:24 AM, Arvid Brodin wrote:
> On 2012-03-31 08:50, Srivatsa Bhat wrote:
>> Hi,
>>
>> On Sat, Mar 31, 2012 at 3:40 AM, Arvid Brodin <arvid.brodin at enea.com
>> <mailto:arvid.brodin at enea.com>> wrote:
>>
>> Arvid Brodin wrote:
>> > On 2012-03-06, I cloned linux-next:
>> >
>> > $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>> <http://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git> linux-next-20120306
>> >
>> >
>> > I now want to update this repository before posting patches, to make sure
>> > they still apply cleanly. I first tried this on 20120328:
>>
>>
>> Tracking linux-next is a little bit different from usual trees. In particular, since
>> Stephen Rothwell
>> rebases it quite frequently, you shouldn't do a git pull on linux-next.
>>
>> See these articles for details on how to work with linux-next:
>> http://linux.f-seidel.de/linux-next/pmwiki/pmwiki.php?n=Linux-next.FAQ
>> http://lists.kernelnewbies.org/pipermail/kernelnewbies/2012-February/004498.html
>>
>
> Great links, thanks!
>
> The first time I did 'git remote update' as described in the first link things worked
> fine: I could "git merge origin/master" to be up to date with origin/master (or perhaps I
> did a 'git rebase origin/master, I can't quite remember).
>
> I tried the same thing ('git remote update; git merge origin/master') today, and got lots
> of CONFLICTs. So I tried to get master back and after some time ended up running 'git
> reset --hard; git clean -f -d', which I believe succeeded.
>
> At this time 'git status' says the same as it did just after the remote update above:
>
> # On branch master
> # Your branch and 'origin/master' have diverged,
> # and have 569 and 3251 different commit(s) each, respectively.
>
>
> Ok, so let's try a 'git rebase origin/master' instead:
>
> $ git rebase origin/master
> First, rewinding head to replay your work on top of it...
> Applying: fsnotify: inline mark refcnt functions
> Using index info to reconstruct a base tree...
> Falling back to patching base and 3-way merge...
> Auto-merging fs/notify/mark.c
> CONFLICT (content): Merge conflict in fs/notify/mark.c
> Auto-merging include/linux/fsnotify_backend.h
> Failed to merge in the changes.
> Patch failed at 0001 fsnotify: inline mark refcnt functions
>
> When you have resolved this problem run "git rebase --continue".
> If you would prefer to skip this patch, instead run "git rebase --skip".
> To restore the original branch and stop rebasing run "git rebase --abort".
>
>
> Huh?! I haven't touched that file! I just want to keep my linux-next tree up to date! How
> hard should this be?!
>
> /calming down/
>
> Any ideas on what I've done wrong and how to solve it?
>
I don't see why you should have run git merge origin/master etc..
Simply track linux-next like this:
Initial setup:
1. Add linux-next as a remote tracking branch to your existing kernel
git tree:
git remote add linux-next git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
2. Fetch it, along with the tags:
git fetch linux-next
git fetch --tags linux-next
Regular usage/tracking:
1. Update your linux-next:
git checkout master //to be on the safer side
git remote update
2. See what tags are available:
git tag -l next-*
Sample output:
next-20120113
next-20120118
next-20120201
3. Pick the linux-next version you want to work on and create a local
branch to do your changes:
git checkout -b my_branch next-20120201
Then you can start working on 'my_branch'.
Regards,
Srivatsa S. Bhat
More information about the Kernelnewbies
mailing list