From: Martin Langhoff <hidden> Date: 2016-06-15 22:43:13
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
From: Martin Langhoff <hidden> Date: 2016-06-15 22:43:13
On 5/31/07, Martin Langhoff [off-list ref] 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
From: Martin Langhoff <hidden> Date: 2016-06-15 22:43:13
On 6/1/07, Martin Langhoff [off-list ref] wrote:
On 5/31/07, Martin Langhoff [off-list ref] wrote:
quoted
# 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
From: Martin Langhoff <hidden> Date: 2016-06-15 22:43:13
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