git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* mirror git repos: rsync vs. --mirror
@ 2010-03-30 20:54 Robin H. Johnson
  2010-03-30 22:00 ` Julian Phillips
  0 siblings, 1 reply; 4+ messages in thread
From: Robin H. Johnson @ 2010-03-30 20:54 UTC (permalink / raw)
  To: Git Mailing List

I'm trying to see about the state of automated mirroring git
repositories between different systems, eg. a private backend and a
public frontend, and ran into a catch between two possible options, each
with a downside. If there are other means besides these, I'm all ears
for them.

rsync:
------
How:
- Simply rsync the git repository, atomically, and use --delete-after.
Benefits:
- Guaranteed to match between master/slaves.
Caveats:
- Need to know that the master repo is in a good state.
- If a repo is repacked, there is a lot more traffic in the next sync.

git clone --mirror && git fetch:
--------------------------------
How:
- Setup with: "git clone --mirror URL"
- Cronjob with: "git fetch"
Benefits:
- Extremely fast
- Light on traffic
Caveats:
- Branches and tags deleted in master persist in slaves :-(
- Seperate gc/repack needed on slaves.

The traffic vs. deleted branches/tags is the main tradeoff here, esp. as
repos get larger.

Can git-fetch perhaps be made to delete the branches/tags?

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

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

* Re: mirror git repos: rsync vs. --mirror
  2010-03-30 20:54 mirror git repos: rsync vs. --mirror Robin H. Johnson
@ 2010-03-30 22:00 ` Julian Phillips
  2010-03-31  1:44   ` Sitaram Chamarty
  0 siblings, 1 reply; 4+ messages in thread
From: Julian Phillips @ 2010-03-30 22:00 UTC (permalink / raw)
  To: Robin H. Johnson; +Cc: Git Mailing List

On Tue, 30 Mar 2010 20:54:09 +0000, "Robin H. Johnson"
<robbat2@gentoo.org>
wrote:
> I'm trying to see about the state of automated mirroring git
> repositories between different systems, eg. a private backend and a
> public frontend, and ran into a catch between two possible options, each
> with a downside. If there are other means besides these, I'm all ears
> for them.

You can mitigate the git caveats somewhat ...

> git clone --mirror && git fetch:
> --------------------------------
> How:
> - Setup with: "git clone --mirror URL"
> - Cronjob with: "git fetch"
> Benefits:
> - Extremely fast
> - Light on traffic
> Caveats:
> - Branches and tags deleted in master persist in slaves :-(
> - Seperate gc/repack needed on slaves.
> 
> The traffic vs. deleted branches/tags is the main tradeoff here, esp. as
> repos get larger.
> 
> Can git-fetch perhaps be made to delete the branches/tags?

I don't think that fetch can do it, but "git remote prune origin" will.
You could also add "git gc --auto" to your cron script to deal with the
repacking - I don't think fetch already does that ...

-- 
Julian

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

* Re: mirror git repos: rsync vs. --mirror
  2010-03-30 22:00 ` Julian Phillips
@ 2010-03-31  1:44   ` Sitaram Chamarty
  2010-03-31  3:05     ` Robin H. Johnson
  0 siblings, 1 reply; 4+ messages in thread
From: Sitaram Chamarty @ 2010-03-31  1:44 UTC (permalink / raw)
  To: Julian Phillips; +Cc: Robin H. Johnson, Git Mailing List

On Wed, Mar 31, 2010 at 3:30 AM, Julian Phillips
<julian@quantumfyre.co.uk> wrote:
> On Tue, 30 Mar 2010 20:54:09 +0000, "Robin H. Johnson"
> <robbat2@gentoo.org>

>> git clone --mirror && git fetch:

>> Caveats:
>> - Branches and tags deleted in master persist in slaves :-(

> I don't think that fetch can do it, but "git remote prune origin" will.

as of 1.7 at least, fetch has --prune, and I tested it yesterday when
someone (same person?) asked this on #git

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

* Re: mirror git repos: rsync vs. --mirror
  2010-03-31  1:44   ` Sitaram Chamarty
@ 2010-03-31  3:05     ` Robin H. Johnson
  0 siblings, 0 replies; 4+ messages in thread
From: Robin H. Johnson @ 2010-03-31  3:05 UTC (permalink / raw)
  To: Git Mailing List

On Wed, Mar 31, 2010 at 07:14:46AM +0530, Sitaram Chamarty wrote:
> On Wed, Mar 31, 2010 at 3:30 AM, Julian Phillips
> <julian@quantumfyre.co.uk> wrote:
> > On Tue, 30 Mar 2010 20:54:09 +0000, "Robin H. Johnson"
> > <robbat2@gentoo.org>
> 
> >> git clone --mirror && git fetch:
> 
> >> Caveats:
> >> - Branches and tags deleted in master persist in slaves :-(
> 
> > I don't think that fetch can do it, but "git remote prune origin" will.
> as of 1.7 at least, fetch has --prune, and I tested it yesterday when
> someone (same person?) asked this on #git
Wasn't me asking, but thanks, that helps lots!

Looks like it was added for v1.6.6.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

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

end of thread, other threads:[~2010-03-31  3:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-30 20:54 mirror git repos: rsync vs. --mirror Robin H. Johnson
2010-03-30 22:00 ` Julian Phillips
2010-03-31  1:44   ` Sitaram Chamarty
2010-03-31  3:05     ` Robin H. Johnson

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