pushing specific branches to a public mirror repos

5 messages, 3 authors, 2016-06-15 · open the first message on its own page

pushing specific branches to a public mirror repos

From: Graeme Geldenhuys <hidden>
Date: 2016-06-15 22:47:04

Hi,

I cloned a SubVersion repository and am maintaining a Git mirror of it 
on GitHub. Here is an example of some of the SubVersion branches that 
got cloned.

refs/remotes/cleanroom
refs/remotes/fixes_2_0
refs/remotes/fixes_2_2
refs/remotes/fixes_2_2_0_dos
refs/remotes/florian
refs/remotes/fpc_2_3
refs/remotes/generics
refs/remotes/genfunc
refs/remotes/trunk
...

By default 'git svn' created a "master" branch which tracks 
"remotes/trunk". This is currently the only branch available on GitHub 
mirror repository and I push it as follows:

On our server which manages the subversion -> local git repos -> github 
sync process.

  $ cd /path/to/repository/
  $ git svn fetch
  $ git push github master

This works fine. Now I don't have any other local branches or any local 
modifications (I used to have, but reverted all of them) so now a 'git 
svn fetch' does clean fast-forward merges without problems.

I currently have the following git config setting for the remote github 
repository:

[remote "github"]
	url = git@github.com:graemeg/freepascal.git
	push = +refs/remotes/*:refs/heads/*

As far as I understand, if I do 'git push github', it is going to push 
all the SubVersion branches (as listed above) as heads to GitHub - but 
this is not what I want. Many of those branches in SubVersion are old, 
outdated or private development areas.

I only want to push the "trunk" and "fixes_2_2" SubVersion branches to 
GitHub as heads. How must I change by remote.github.push config setting, 
or must I do a manual push as I do with the local tracking "master" branch.

In summary:
  * Can I change remote.github.push so that if I run 'git push github'
    that it will ONLY push remotes/trunk and remotes/fixes_2_2 to
    GitHub mirror

  * or must I manually push those two to GitHub mirror as follows
     once off create a tracking branch:
       $ git branch --track fixes_2_2 remotes/fixes_2_2

     then hourly do the following:
       $ cd /path/to/repository/
       $ git svn fetch
       $ git push github master
       $ git push github fixes_2_2



Regards,
   - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/

Re: pushing specific branches to a public mirror repos

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:47:04

Graeme Geldenhuys schrieb:
I currently have the following git config setting for the remote github
repository:

[remote "github"]
    url = git@github.com:graemeg/freepascal.git
    push = +refs/remotes/*:refs/heads/*

I only want to push the "trunk" and "fixes_2_2" SubVersion branches to
GitHub as heads. How must I change by remote.github.push config setting,
or must I do a manual push as I do with the local tracking "master" branch.
You can have more than one push line in the config:

    push = +refs/remotes/trunk:refs/heads/trunk
    push = +refs/remotes/fixes_2_2:refs/heads/fixes_2_2

-- Hannes

Re: pushing specific branches to a public mirror repos

From: Graeme Geldenhuys <hidden>
Date: 2016-06-15 22:47:04

Johannes Sixt wrote:
You can have more than one push line in the config:

    push = +refs/remotes/trunk:refs/heads/trunk
    push = +refs/remotes/fixes_2_2:refs/heads/fixes_2_2

Excellent, thanks. I thought about that, but wasn't sure and did not 
want to try because I already screwed up the GitHub mirror once before.


 >     push = +refs/remotes/trunk:refs/heads/trunk

Must this stay as is, or must I push 'remotes/trunk' to 'heads/master'?


      push = +refs/remotes/trunk:refs/heads/trunk
vs
      push = +refs/remotes/trunk:refs/heads/master


 From my server...
$ git ls-remote github
6b9b6460aa79a4b86c6bb1535b78e4fc555f89d5	HEAD
6b9b6460aa79a4b86c6bb1535b78e4fc555f89d5	refs/heads/master


My local "master" branch is currently tracking the refs/remotes/trunk, 
but for some reason (which I don't understand), if I do a 'git svn 
fetch' by default master branch is not updated. I still have to run 'git 
svn rebase -l' to get master in sync. Is there something I can change in 
the config to automate that as well?



Regards,
   - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/

Re: pushing specific branches to a public mirror repos

From: Bert Wesarg <hidden>
Date: 2016-06-15 22:47:04

On Fri, Jul 17, 2009 at 11:11, Graeme Geldenhuys[off-list ref] wrote:
My local "master" branch is currently tracking the refs/remotes/trunk, but
for some reason (which I don't understand), if I do a 'git svn fetch' by
default master branch is not updated. I still have to run 'git svn rebase
-l' to get master in sync. Is there something I can change in the config to
automate that as well?
Try 'git svn rebase' instead.

Bert


Regards,
 - Graeme -

Re: pushing specific branches to a public mirror repos

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:47:04

Graeme Geldenhuys schrieb:
Must this stay as is, or must I push 'remotes/trunk' to 'heads/master'?

     push = +refs/remotes/trunk:refs/heads/trunk
vs
     push = +refs/remotes/trunk:refs/heads/master
Both are OK. Pick the one that suits your needs.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help