Difference between revisions of "Portage Git Mirror"

(Pull from remote)
(Pull from remote)
Line 66: Line 66:
  
 
{{File
 
{{File
|/etc/cron.daily/funtoo-sync.sh
+
|/etc/cron.daily/funtoo-sync.sh|<pre>
 
#!/bin/sh
 
#!/bin/sh
 
cd /home/git-mirrors/portage.git
 
cd /home/git-mirrors/portage.git
 
su nobody -s "/bin/sh" -c "git fetch --all"
 
su nobody -s "/bin/sh" -c "git fetch --all"
</pre}}
+
</pre>}}
  
 
== Cloning from local git-daemon ==
 
== Cloning from local git-daemon ==

Revision as of 20:55, 28 January 2014

Setting up local git mirror

This tutorial explains how to save bandwidth when several local computers need to pull updates from a single remote git repository.

Use case

This tutorial will be about hosting a local mirror of funtoo git based portage tree.

Following terms should be adapted

Terms Definition
git.lan The git-daemon local mirror host
localhost Any local host
nobody Owner user of .git files
/home/git-mirrors Base path of git-daemon

Local mirror

Git-daemon configuration

Prepare directories and clone portage-mini from github::

# mkdir /home/git-mirrors
# chown nobody /home/git-mirrors
# su -s /bin/sh nobody
$ cd /home/git-mirrors
$ git clone --mirror --bare git://github.com/funtoo/ports-2012.git portage.git

Configure git-daemon in /etc/conf.d/git-daemon:

{{{name}}}
{{{body}}}

Start the daemon:

# /etc/init.d/git-daemon start
# rc-update add git-daemon default

Pull from remote

Add the following to /etc/cron.daily/funtoo-sync.sh:

{{{name}}}
{{{body}}}

Cloning from local git-daemon

Local clone from git.lan:

# mv /usr/portage /usr/portage.old
# git clone git://git.lan/portage.git /usr/portage
# cd /usr/portage
# git checkout funtoo.org