Vorlage:Auschecken

Aus TuxBoxWIKI
Version vom 21. Juni 2011, 11:18 Uhr von Dbt (Diskussion | Beiträge) (Doppelte Zeile entfernt)
Wechseln zu: Navigation, Suche

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.

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 .


Stop hand.png HINWEIS:

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


Stop hand.png HINWEIS:

Obwohl es eigentlich keiner Erklärung bedarf, soll aber hier trotzdem darauf hingewiesen werden, dass es nach einem Update in der Regel notwendig ist, ein neues configure durchzuführen!