Managing linux-next tree
Kumar Amit Mehta
gmate.amit at gmail.com
Thu Aug 1 06:03:21 EDT 2013
Hi,
I've been following linux-next tree and base some of my janitorial realted work
on this tree. Things are fine, but I think I'm little confused with the git
branching/merging stuff. Please find some of the steps that I follow to clone
and update my local linux-next tree:
1. Clone the tree (once):
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
So here I've just one branch called master. To work on some code cleanup work
etc, I create my private branch (see step 2 below)
2. Create my private branch based on latest tag(every now and then)
$ git tag -l next-*|tail -n 1
next-20130709
$ git checkout next-20130709
$ git checkout -b July-09
So, Now i have two branches; master and July-09, and I commit any changes in
July-09 branch. Later (say after some days) I fetch remote changes.
3: Fetch remote changes
$ git remote update
Now, I delete the old branch(let's forget about the commits that I made it to
July-09 branch for a moment) and create another private branch by following the
steps mentioned above in step 2. It is fine but when I invoke git command to get
the status of the working tree(say master, remember I've just issued 'git remote
update'), it tells me that my branch and 'origin/master' have diverged. steps,
as in 4:
4: Get the information on working tree status
$ git checkout master # switch back to master
$ git remote update # Fetch remote updates
Fetching origin
remote: Counting objects: 29053, done.
remote: Compressing objects: 100% (4329/4329), done.
.......
.......
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
* [new tag] v3.11-rc3 -> v3.11-rc3
$ git branch -D July-09 # deleting the old branch
$ git branch # Left with master now
* master
$ git checkout next-20130801 -b Aug-01 # Creating once again a new branch
$ git branch
* Aug-01 <--- Currently on Aug-01
master
$ git status
# On branch Aug-01
nothing to commit (working directory clean)
$ git checkout master # Switch back to master once again
$ git branch
Aug-01
* master <--- Currently on master
$ git status # get the working tree status
# On branch master
# Your branch and 'origin/master' have diverged, <-------------------+
# and have 368 and 3227 different commit(s) each, respectively. <----+
#
nothing to commit (working directory clean)
So, What should I do to keep my local master in sync with the remote
origin/master ? Will a 'git pull' work ? Actually I tried 'git pull', but it
gave me some warning messages, hence I interrupted(CTRL-c) this in between
<snip>
$ git pull
warning: too many files (created: 926 deleted: 310), skipping inexact rename
detection
warning: too many files (created: 4620 deleted: 3979), skipping inexact rename
detection
warning: too many files (created: 1256 deleted: 405), skipping inexact rename
detection
</snip>
!!amit
More information about the Kernelnewbies
mailing list