Shawn Pearce wrote:
Ben Greear <greearb@xxxxxxxxxxxxxxx> wrote:
I want to create an intermediate level..something like:
kernel.org git tree
|
my git master tree
/ \
work-station-1 work-station-2 ....
I then did a git checkout -f master on the
pub server and did a pull from the upstream kernel.
This seemed to work fine.
Ah, what you really want here is to make your "my git master tree"
a bare repostiory and use fetch instead of pull. This way you
don't need to maintain a working directory of files associated
with that repository. So assuming you have "mygitmastertree"
as the directory do:
mv mygitmastertree/.git mygitmastertree.git
rm -rf mygitmastertree
and update your workstation .git/remotes/origin files such
that the URL line reads ".../mygitmastertree.git" rather than
".../mygitmastertree/.git".
Then to update "mygitmastertree" with recent changes you can use
git fetch rather than git pull:
git --git-dir mygitmastertree.git fetch
Then, on the work-station, I did a git checkout -f master, and also did
a pull.
In this case, it seems that it is trying to merge with changes in the
lf_v2.6.18 branch
instead of the the main 'master' tree (see below).
When you use "git pull" with no additional arguments the first
branch listed in a Pull: line of .git/remotes/origin will be the
branch merged into the current branch. I don't know what that
branch is listed as in your workstation tree but from what you
described it sounds like it may be that lf_v2.6.18 branch, which
is why its trying to merge it.
I have been using a variation of this with some success. (I didn't rename the .git directory
on the master tree, but the directory only contains a .git directory so I assume that
I'm using a bare tree....)
I have been able to do 'git pull origin' and 'git push origin master' to
sync and commit my lf_v2.6.18 branch from my work-station repositories (per this page's instructions:
http://www.kernel.org/pub/software/scm/git/docs/cvs-migration.html
Now, I would like to fetch down all of the changes from kernel.org to my master
tree and then update my work-station branches. On the master,
I ran 'git fetch'. It took a while and seemed to do the right thing.
There is still nothing other than .git in the directory, and subsequent
'git fetch' calls return quickly w/out doing anything.
However, I cannot find an incantation on the work-station machines to
pull down the changes and sync up with kernel.org.
I did a 'git fetch' on the work-station, but gitk still does not show anything
new in 'master' or 'lf_v2.6.18
I tried checking out master and running: git pull . master
but it said Already up-to-date.
I tried checking out the master branch on the work-station and doing a 'git pull' there.
It got a lot of conflicts from the changes that I had made in the lf_v2.6.18 branch.
I want to have some local branch contain only official kernel patches, and
then fork my own branches off to track my individual changes. My assumption
was that I could do something like:
git checkout master
git pull
and have master updated with (only) the latest tree from kernel.org and have
lf_v2.6.18 un-touched.
Any pointers are welcome.
Thanks,
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
-
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