git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luciano Rocha <luciano@eurotux.com>
To: Paul Gardiner <osronline@glidos.net>
Cc: git@vger.kernel.org
Subject: Re: New to git: sorry for obvious question.
Date: Mon, 4 Feb 2008 10:50:07 +0000	[thread overview]
Message-ID: <20080204105006.GA15855@bit.office.eurotux.com> (raw)
In-Reply-To: <47A6E130.7090909@glidos.net>


[-- Attachment #1.1: Type: text/plain, Size: 1069 bytes --]

On Mon, Feb 04, 2008 at 09:56:00AM +0000, Paul Gardiner wrote:
>  Hi,
> 
>  I've moved a project from CVS on sourceforge to git on repo.or.cz.  I
>  want a local mirror on my own home server, so that it appears amongst
>  the projects shown by my own gitweb set up, and so it gets caught by
>  my backup system.  I've created the mirror with
> 
>    git clone --bare <remote-url> <local-dir>
> 
>  and that seems fine.  But how do I now keep it up to date.  I was
>  guessing a cron job doing some sort of git pull, but pull doesn't
>  look to work on --bare proj.git type repositories.

You want git fetch. Git pull also updates the working copy, which you
don't have.

Also, git clone --bare doesn't set up the origin configuration, and I
have to do it by hand:
  git config remote.origin.url "$url"
  git config remote.origin.fetch "+refs/heads/*:refs/heads/*"

As for keeping clones up to date, I include a script I use daily for
that purpose.

-- 
Luciano Rocha <luciano@eurotux.com>
Eurotux Informática, S.A. <http://www.eurotux.com/>

[-- Attachment #1.2: update --]
[-- Type: text/plain, Size: 1480 bytes --]

#!/bin/bash

cd /media/stuff/src || exit 1

lockf=/tmp/.uprepo.lock
lockfile -60 -l 36000 -r 20 $lockf || exit 1

TL=$((20*60))

running()
{
	kill -0 $* &> /dev/null
}

tl()
{
	local max=$(($1+SECONDS))
	shift
	exec "$@" &
	while running $! &> /dev/null && [ $max -ge $SECONDS ]; do sleep 1; done
	if running $!; then
		kill $! &> /dev/null
		sleep 1
		kill -9 $! &> /dev/null
	fi
}

trap "rm -f $lockf" EXIT

shopt -s dotglob

for i in *.git */*.git; do
	[ -h "$i" ] && continue
	[ -d "$i" ] || continue

	d="${i%/.git}"

	echo $d
	if [ "$d" = "$i" ]; then
		(cd "$d" && tl $TL git fetch) 2>&1 | nocr
	elif [ -d "$i/svn" ]; then
		(cd "$d" && tl $TL git svn fetch) 2>&1 | nocr
	elif [ -e "$d/.cvsurl" ]; then
		(cd "$d" && tl $TL git cvsimport $(<.cvsurl)) 2>&1 | nocr
	elif [ -e "$d/.svnurl" ]; then
		(cd "$d" && tl $TL git svnimport -r $(<.svnurl)) 2>&1 | nocr
	else
		(cd "$d" && tl $TL git pull) 2>&1 | nocr
	fi
done

for i in */*.hg */*/*.hg; do
	[ -h "$i" ] && continue
	[ -d "$i" ] || continue

	d="${i%/.hg}"

	echo $d
	(cd "$d" && tl $TL hg pull)
done

for i in */*_darcs; do
	[ -h "$i" ] && continue
	[ -d "$i" ] || continue

	d="${i%/_darcs}"

	echo $d
	(cd "$d" && tl $TL darcs pull -aq)
done

for i in */.svn; do
	[ -h "$i" ] && continue
	[ -d "$i" ] || continue

	d="${i%/.svn}"

	echo $d
	(cd "$d" && tl $TL svn up -q)
done

for i in */CVS; do
	[ -h "$i" ] && continue
	[ -d "$i" ] || continue

	d="${i%/CVS}"

	echo $d
	(cd "$d" && tl $TL cvs -Q -z3 up -P)
done

[-- Attachment #1.3: nocr --]
[-- Type: text/plain, Size: 130 bytes --]

#!/usr/bin/perl
use warnings;
use strict;

-t && exec "/bin/cat";

undef $/;

my $in = <>;

$in =~ s/^.*\r(?!\n)//gm;

print $in;

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2008-02-04 10:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-04  9:56 New to git: sorry for obvious question Paul Gardiner
2008-02-04 10:27 ` Matthieu Moy
2008-02-04 10:41   ` Paul Gardiner
2008-02-04 10:51     ` Boaz Harrosh
2008-02-04 10:50 ` Luciano Rocha [this message]
2008-02-04 12:04   ` Paul Gardiner
2008-02-04 13:10   ` Boaz Harrosh
2008-02-04 14:17     ` Paul Gardiner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080204105006.GA15855@bit.office.eurotux.com \
    --to=luciano@eurotux.com \
    --cc=git@vger.kernel.org \
    --cc=osronline@glidos.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).