Difference between revisions of "Portage Git Mirror"

From Funtoo Linux
Jump to: navigation, search
(Created page with "=========================== Setting up local git mirror =========================== :keywords: linux, funtoo, git, mirror :description: This tutorial explain how to save bandwi...")
 
(Replaced content with "hi")
Line 1: Line 1:
=========================== Setting up local git mirror ===========================
+
hi
 
+
:keywords: linux, funtoo, git, mirror :description:
+
 
+
This tutorial explain how to save bandwidth when several local computers need to pull updates from a single remote git repository.
+
 
+
:version: 2010-10-08 :author: Tristan de Cacqueray :contact: tc@gcm-sarl.eu :copyright: GCM SARL :license: Creative Commons Attribution 3.0 Unported License :language: English
+
 
+
= Use case =
+
 
+
This tutorial will be about hosting a local mirror of funtoo git based portage tree.
+
 
+
Following terms should be adapted
+
 
+
<table>
+
<col width="25%" />
+
<col width="58%" />
+
<thead>
+
<tr class="header">
+
<th align="left">Terms</th>
+
<th align="left">| Definition</th>
+
</tr>
+
</thead>
+
<tbody>
+
<tr class="odd">
+
<td align="left">git.lan</td>
+
<td align="left">The git-daemon local mirror host</td>
+
</tr>
+
<tr class="even">
+
<td align="left">localhost</td>
+
<td align="left">Any local host</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">nobody</td>
+
<td align="left">Owner user of .git files</td>
+
</tr>
+
 
+
<tr class="even">
+
<td align="left">/home/git-mirrors</td>
+
<td align="left">Base path of git-daemon</td>
+
</tr>
+
</tbody>
+
</table>
+
 
+
= Local mirror =
+
 
+
== Git-daemon configuration ==
+
 
+
Prepare directories and clone portage-mini from github::
+
 
+
<pre>    root@git.lan # mkdir /home/git-mirrors
+
    root@git.lan # chown nobody /home/git-mirrors
+
    root@git.lan # su -s /bin/sh nobody
+
    nobody $ cd /home/git-mirrors
+
    nobody $ git clone --mirror --bare</pre>
+
git://github.com/funtoo/portage-mini-2010.git portage.git
+
 
+
Configure git-daemon in ''/etc/conf.d/git-daemon''::
+
 
+
<pre>    GITDAEMON_OPTS=&quot;--syslog --verbose --enable=receive-pack --export-all&quot;
+
    GITDAEMON_OPTS=&quot;${GITDAEMON_OPTS} --base-path=/home/git-mirrors</pre>
+
/home/git-mirrors&quot; GIT_USER=&quot;nobody&quot; GIT_GROUP=&quot;nobody&quot;
+
 
+
Start Daemon::
+
 
+
<pre>    root@git.lan # /etc/init.d/git-daemon start
+
    root@git.lan # rc-update add git-daemon default</pre>
+
== Pull from remote ==
+
 
+
Add to /etc/cron.daily/funtoo-sync.sh::
+
 
+
<pre>    #!/bin/sh
+
 
+
    cd /home/git-mirrors/portage.git
+
    su nobody -s &quot;/bin/sh&quot; -c &quot;git fetch --all&quot;</pre>
+
= Cloning from local git-daemon =
+
 
+
Local clone from git.lan::
+
 
+
<pre>    root@localhost # mv /usr/portage /usr/portage.old
+
    root@localhost # git clone git://git.lan/portage.git /usr/portage
+
    root@localhost # cd /usr/portage
+
    root@localhost # git checkout funtoo.org</pre>
+

Revision as of 17:03, 5 November 2010

hi

Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff