From: Michael J Gruber <git@drmicha.warpmail.net>
To: Graeme Geldenhuys <graemeg@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Pushing to GitHub doesn't push all branches
Date: Fri, 10 Jul 2009 17:51:57 +0200 [thread overview]
Message-ID: <4A57639D.4020305@drmicha.warpmail.net> (raw)
In-Reply-To: <h37lh2$q3s$1@ger.gmane.org>
Graeme Geldenhuys venit, vidit, dixit 10.07.2009 17:07:
> Michael J Gruber wrote:
>>
>> You really mirrored your repo: All your "lost" branches are remotes on
>> the github side as well. That has two consequences:
>
> The two branches that are of most importance to me, is "trunk" and
> "fixes_2_2" as found in the SubVersion repository.
>
> refs/remotes/trunk
> refs/remotes/fixes_2_2
>
>
> So should I have only pushed the above mentioned branches, but as "true"
> heads in GitHub. Geesh, I hope I am understanding what I am typing,
> because I feel a bit lost now. :-)
>
> Is there any way to clean up the mess available on GitGub? So that 'git
> ls-remote ...' will only show the real remotes.... Or should there be no
> remotes on GitHub?
>
> Sorry, I'm fairly new to Git and it feels like I jumped into the deap
> end here. ;-)
>
>> (assuming there are only svn branches) into proper heads on github, i.e.
>> a refspec like '+refs/remotes/*:refs/*' for your pushes.
>
> I'll read the man pages on what that refspec means... If I manage to
> only push 'trunk' which is master under git and 'fixes_2_2' which will
> be some other name under git, how to I keep both those in sync with the
> SubVersion repository.
>
> At the moment I have a cronjob that executes the following every 30 minutes.
> ====================
> cd /mnt/samba/git/fpc.git/
> $GIT checkout master
> $GIT svn rebase
> $GIT gc --auto
> $GIT push origin master
> ====================
>
> Does 'git svn rebase' get all branch or does it just update "master"
> (Trunk from SubVersion)?
>
> I apologise for all the questions...
Please don't! That's what we're here for ;)
A while ago I suggested that by default, no clone (whether git or
git-svn) should have a master branch. I guess your example shows why. If
you use that repo (/mnt/samba/git/fpc.git) only for converting from svn
to git, not for doing local work, then you don't need any master branch.
But git-svn will stubbornly recreate one.
Similarly (under the same assumption), you don't need to rebase at all.
All you need is "git svn fetch", which populates the branches under
remotes/.
You can safely delete the bogus remote branches on github using
git push origin :refs/remotes/trunk
etc., i.e.
git for-each-ref --shell --format="git push -f origin :%(refname)"
refs/remotes/|while read line; do eval $line;done
(all on one line)
Then it's probably beneficial to do something like
git config remote.origin.push '+refs/remotes/*:refs/heads/*'
so that you have a nice default refspec for origin. [You may think about
renaming origin to destination, though ;) ]
Cheers,
Michael
next prev parent reply other threads:[~2009-07-10 15:52 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-10 13:24 Pushing to GitHub doesn't push all branches Graeme Geldenhuys
2009-07-10 14:45 ` Michael J Gruber
2009-07-10 14:58 ` Michael J Gruber
2009-07-10 15:07 ` Graeme Geldenhuys
2009-07-10 15:51 ` Michael J Gruber [this message]
2009-07-13 8:12 ` Graeme Geldenhuys
2009-07-13 11:01 ` Michael J Gruber
2009-07-13 13:41 ` Graeme Geldenhuys
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=4A57639D.4020305@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=graemeg@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.