From: Matthias Hopf <mhopf@suse.de>
To: "Karl Hasselström" <kha@treskal.com>
Cc: Junio C Hamano <junkio@cox.net>,
Alexander Litvinov <litvinov2004@gmail.com>,
git@vger.kernel.org
Subject: Re: Getting new branches from remote repo.
Date: Mon, 13 Nov 2006 17:57:09 +0100 [thread overview]
Message-ID: <20061113165709.GA21588@suse.de> (raw)
In-Reply-To: <20061113091736.GA31693@diana.vm.bytemark.co.uk>
On Nov 13, 06 10:17:36 +0100, Karl Hasselström wrote:
> > > I have a trouble I don't know how to solve. When I am cloning
> > > remote repo I automatically get all it's branches stored at my
> > > repo (they are listed at .git/remotes/origin). When someone adds
> > > new branch(es) to remote repo git pull (git fetch) does not
> > > automatically add them to my repo. I have a tool to list all
> > > remote branches (git ls-remote --heads origin) but I can't find
> > > how to add interesting (or all) branches to by repo.
> >
> > After finding out $that_new_branch's name, add either
> > Pull: refs/heads/$that_new_branch:refs/heads/$that_new_branch
> > or if you are in "separate remote" school, then perhaps
> > Pull: refs/heads/$that_new_branch:refs/remotes/origin/$that_new_branch
> > to .git/remotes/origin and running git fetch would give you what you
> > want, I think.
>
> There really should be a flag to make git fetch do this job. And if we
> use separate remotes, the flag should probably default to "on".
This was an issue I stumbled upon recently, which was discussed on
X.org's mailing list. I wanted to sumarize that here, but didn't have
time for that so far.
Right now I use the following UGLY script to do exactly that:
git-ls-remote -h origin | cut -f 2 | perl -e 'while (<>) { chomp;
$h{$_}=$_; } open F, ".git/remotes/origin" or die; while (<F>) { print;
if (/^Pull:\s+([^: ]*):/) { delete $h{$1}; } } foreach $f (keys %h) {
print "Pull: ${f}:$f\n"; }' > newfile
mv newfile .git/remotes/origin
(modulo some safety tests), but that doesn't work right for origin files
with multiple URL: statements (I very much assume they are possible).
I second that there should be a flag to make git fetch do that
automatically, and at least all "git for CVS users" tutorials should
include this flag, as this is exactly how CVS works (otherwise you
cannot check out another branch that happens to be added upstream).
Matthias
--
Matthias Hopf <mhopf@suse.de> __ __ __
Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ mat@mshopf.de
Phone +49-911-74053-715 __) |_| __) |__ labs www.mshop
next prev parent reply other threads:[~2006-11-13 17:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-13 4:33 Getting new branches from remote repo Alexander Litvinov
2006-11-13 4:49 ` Junio C Hamano
2006-11-13 5:29 ` Alexander Litvinov
2006-11-13 9:17 ` Karl Hasselström
2006-11-13 16:57 ` Matthias Hopf [this message]
2006-11-13 17:44 ` Shawn Pearce
2006-11-13 17:53 ` Karl Hasselström
2006-11-13 18:17 ` Junio C Hamano
2006-11-13 18:40 ` Jakub Narebski
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=20061113165709.GA21588@suse.de \
--to=mhopf@suse.de \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=kha@treskal.com \
--cc=litvinov2004@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;
as well as URLs for NNTP newsgroup(s).