Vorlage:Auschecken
Der Tuxbox Quellcode wird derzeit hauptsächlich durch den Tuxbox CVS-Server bereitgestellt. Dort befindet sich der Hauptentwicklungszweig des Projektes im so genannten HEAD. Regelmäßige Quellreleases sind niemals gemacht worden, und sind auch nicht für die Zukunft geplant.
Inzwischen werden auch einige Repositories von einigen Entwicklern auf der Basis von Git parallel dazu gepflegt. Grund: Die Möglichkeiten von CVS sind leider in gewissen Bereichen erheblich eingeschränkt und es ist daher für Entwickler nicht immer optimal, mit CVS zu arbeiten. Git bietet hier deutliche Vorteile auch gegenüber SVN. Es ist aber für den Normal-Auschecker ohne größere Bedeutung.
Als Normalbenutzer werden die Quellen anonym "ausgecheckt", was bedeutet, dass diese auf die eigene Festplatte kopiert werden, indem man zuerst auf einer (lokalen) Festplatte mit "ordentlich" freiem Platz ein leeres Verzeichnis erstellt, z.B. /tuxbox-cvs und in diesen Ordner wechselt, und diese Befehle oder auch Scripte dort ausführt.
Inhaltsverzeichnis
CVS
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .
Auschecken nach Datum. Bsp.: 26.10.2009 19:00 Uhr
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -D "2009-10-26 19:00+0100" -P .
Update der CVS-Quellen
Für ein Update der Quellen, diesen Befehl verwenden:
cvs -z3 -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox up -dP .
Es ist durchaus sinnvoll wegen des Traffics möglichst nur ein Update zu machen, als jedesmal komplett auszuchecken!
Git
Alternativ kann man auch von Git-Repositories auschecken, welche quasi sog. Mirrors vom Tuxbox-CVS darstellen. Bei Git spricht man hier allerdings vom "Klonen", bei dem ein Repository-Clone auf dem Lokalen Rechner angelegt wird und unabhängig vom CVS arbeiten kann.
Gitorious
Hier handelt es sich um ein reines Mirror-Repository von Seife. Es wird regelmäßig aktualisiert, wobei die Sychronisierung mit dem Tuxbox-CVS nicht immer umgehend erfolgt. Der Master-Branch entspricht dem HEAD aus dem Tuxbox-CVS.
#!/bin/sh
# use this script for cloning all git repos to your machine
# How to:
# create a empty clone directory
# mkdir /home/[USER]/[CLONE_DIRECTORY]
# enter to your clone directory
# cd /home/[USER]/[CLONE_DIRECTORY]
# execute this script
# ./clone.sh
# this will clone all repos to your clone directory
CVSREPOS="apps boot cdk driver hostapps"
REPLIST="$CVSREPOS"
GITCLONE="git clone git://gitorious.org/~seife/tuxbox-cvs/"
#clone all
for f in $REPLIST ; do
$GITCLONE/$f.git $f
done
Sourceforge
Hier handelt es sich um ein Repository bestehend aus mehreren Branches, von dem einer davon dem HEAD aus dem Tuxbox-CVS entspricht, auf den im folgenden Clone-Script automatisch gewechselt wird und mit dem man arbeiten kann. Dieser wird derzeit auch regelmäßig sychronisiert.
#!/bin/sh
# use this script for cloning all git repos to your machine
# How to:
# create a empty clone directory
# mkdir /home/[USER]/[CLONE_DIRECTORY]
# enter to your clone directory
# cd /home/[USER]/[CLONE_DIRECTORY]
# execute this script
# ./clone.sh
# this will clone all repos to your clone directory
PROJECT=novatux
CVSREPOS="apps boot cdk driver hostapps"
REPLIST="$CVSREPOS"
GITCLONE="git clone git://$PROJECT.git.sourceforge.net/gitroot/$PROJECT"
#clone all
for f in $REPLIST ; do
$GITCLONE/$f
done
#create remotes to original repos from tuxbox-cvs
TUXBOX="tuxbox-cvs"
for f in $CVSREPOS ; do
cd $f
git branch -v $TUXBOX
git branch -v "novatux_experimental"
git checkout $TUXBOX
cd ..
done
Update der GIT-Repositories
Für beide Repos kann dieses Script zum Updaten verwendet werden.
#!/bin/sh
# this will update all repos in your clone directory
# change to the directory that contains all repositories and execute this script
CVSREPOS="apps boot cdk driver hostapps"
DIR=`pwd`
REPLIST="$CVSREPOS"
GITPULL="git pull -v"
#pull all
for f in $REPLIST ; do
cd $DIR/$f
$GITPULL
cd ..
done