git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Fetch from remote A, push to remote B
@ 2007-05-31  5:53 Martin Langhoff
  2007-05-31  7:28 ` Martin Langhoff
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Langhoff @ 2007-05-31  5:53 UTC (permalink / raw)
  To: Git Mailing List

Is there an easy way to get a "passthrough" repo setup so I can say on a cronjob

  git-fetch remoteA
  git-push ssh+git://host/path/to/repoB.git remotes/remoteA/<all>

The 2 repositories cannot talk to each other directly.

cheers,


martin

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fetch from remote A, push to remote B
  2007-05-31  5:53 Fetch from remote A, push to remote B Martin Langhoff
@ 2007-05-31  7:28 ` Martin Langhoff
  2007-06-01  0:37   ` Martin Langhoff
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Langhoff @ 2007-05-31  7:28 UTC (permalink / raw)
  To: Git Mailing List

On 5/31/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> Is there an easy way to get a "passthrough" repo setup so I can say on a cronjob
>
>   git-fetch remoteA
>   git-push ssh+git://host/path/to/repoB.git remotes/remoteA/<all>

After mucking about with stuff like...

find .git/refs/remotes/origin -type f -printf '%P\0' | xargs -0
-IHEADNAME git-push
git+ssh://git.catalyst.net.nz/var/git/moodle-r2-testing.git
origin/HEADNAME:HEADNAME

I figured out that a bare repo did the trick

  # set things up
  git-clone --bare git+ssh://host-a/bla.git bla-transfer.git

  # on cron do
  GIT_DIR=bla-transfer.git git-fetch git+ssh://host-a/bla.git
  GIT_DIR=bla-transfer.git git-push --all git+ssh://host-b/bla.git

cheers!


martin

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fetch from remote A, push to remote B
  2007-05-31  7:28 ` Martin Langhoff
@ 2007-06-01  0:37   ` Martin Langhoff
  2007-06-01  1:52     ` Martin Langhoff
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Langhoff @ 2007-06-01  0:37 UTC (permalink / raw)
  To: Git Mailing List

On 5/31/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
>   # on cron do
>   GIT_DIR=bla-transfer.git git-fetch git+ssh://host-a/bla.git
>   GIT_DIR=bla-transfer.git git-push --all git+ssh://host-b/bla.git

Actually -- this doesn't quite work - the fetch grabs the new objects
properly but doesn't update the local heads on a bare repo.

cheers,



m

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fetch from remote A, push to remote B
  2007-06-01  0:37   ` Martin Langhoff
@ 2007-06-01  1:52     ` Martin Langhoff
  2007-06-01  3:51       ` Martin Langhoff
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Langhoff @ 2007-06-01  1:52 UTC (permalink / raw)
  To: Git Mailing List

On 6/1/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> On 5/31/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> >   # on cron do
> >   GIT_DIR=bla-transfer.git git-fetch git+ssh://host-a/bla.git
> >   GIT_DIR=bla-transfer.git git-push --all git+ssh://host-b/bla.git
>
> Actually -- this doesn't quite work - the fetch grabs the new objects
> properly but doesn't update the local heads on a bare repo.

Should this work?

GIT_DIR=bla-transfer.git git-fetch git+ssh://host-a/bla.git
+refs/heads/*:refs/heads/*

Earlier discussions about mirroring tools (and Pasky's git-mirror)
finished with this being the recommended technique. Only - it does on
me with

* refusing to create funny ref 'heads/*' locally

cheers,



martin

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fetch from remote A, push to remote B
  2007-06-01  1:52     ` Martin Langhoff
@ 2007-06-01  3:51       ` Martin Langhoff
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Langhoff @ 2007-06-01  3:51 UTC (permalink / raw)
  To: Git Mailing List

To finish off the soliloquy... effective mirroring with git

  git-clone --bare git://host/repo.git mirror.git
  git --git-dir=mirror.git config remote.origin.url git://host/repo.git
  git --git-dir=mirror.git config remote.origin.fetch
'+refs/heads/*:refs/heads/*'

  and now, on cron...
  git --git-dir=mirror.git fetch -u
  git --git-dir=mirror.git remote prune origin

(Thanks to Shawn Pearce for helping me figure out why it wasn't working for me!)

cheers



martin

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-06-01  3:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-31  5:53 Fetch from remote A, push to remote B Martin Langhoff
2007-05-31  7:28 ` Martin Langhoff
2007-06-01  0:37   ` Martin Langhoff
2007-06-01  1:52     ` Martin Langhoff
2007-06-01  3:51       ` Martin Langhoff

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).