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
threads / discuss / 8372
Subject: Fetch from remote A, push to remote B
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
Re: Fetch from remote A, push to remote B
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
Re: Fetch from remote A, push to remote B
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
Re: Fetch from remote A, push to remote B
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
Re: Fetch from remote A, push to remote B
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