Vorlage:Auschecken: Unterschied zwischen den Versionen

Aus TuxBoxWIKI
Zur Navigation springen Zur Suche springen
(Syntaxhighlighting angewendet)
(Auf Git angepasst)
Zeile 1: Zeile 1:
Der [[Tuxbox|Tuxbox]] Quellcode wird derzeit hauptsächlich durch den [[Tuxbox|Tuxbox]] [[CVS-Server]] bereitgestellt. Dort befindet sich der Hauptentwicklungszweig des Projektes im so genannten [[HEAD.]]
Der [[Tuxbox|Tuxbox]] Quellcode wird derzeit bei [https://www.sourceforge.net/p/tuxbox-cvs/apps/ Sourceforge] bereitgestellt. Dort befinden sich die Hauptentwicklungszweige des Projektes in Form von 5 Git-Repositries
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|tuxbox]]-[[CVS|cvs]]'' und in diesen Ordner wechselt, und diese Befehle oder auch Scripte dort ausführt.
 
===CVS===
<source lang="bash">
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .
</source>
 
Auschecken nach Datum. Bsp.: 26.10.2009 19:00 Uhr
<source lang="bash">
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -D "2009-10-26 19:00+0100" -P .
</source>
 
====Update der CVS-Quellen====
Für ein Update der Quellen, diesen Befehl verwenden:
<source lang="bash">
cvs -z3 -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox up -dP .
</source>


<br style="clear:right;" />
<br style="clear:right;" />
<div style="padding:0.5em; margin-bottom:1em; border: 2px solid #a00;">[[Bild:Stop hand.png]] '''HINWEIS:'''
<div style="padding:0.5em; margin-bottom:1em; border: 2px solid #a00;">[[Bild:Stop hand.png]] '''HINWEIS:'''
''Es ist durchaus sinnvoll wegen des Traffics möglichst nur ein Update zu machen, als jedesmal komplett auszuchecken!''
''Die Struktur der momentan verfügbaren Repositories, entspricht in etwa der Modulstruktur, wie man sie vor Umstellung von [[CVS]] auf [[Git]] kannte, wobei es noch zu diversen Anpassungen kommen dürfte. Welche Art diese Anpassungen sind, ist noch nicht vollständig geklärt. Weitere Hintergründe dazu im [http://www.dbox2-tuning.net/forum/viewtopic.php?f=51&t=50224 Tuxbox-Forum].
''
</div>
</div>


===Git===
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|tuxbox]]-[[CVS|cvs]]'' und in diesen Ordner wechselt, und diese Befehle oder auch Scripte dort ausführt.
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====
==Klonen der Repositories==
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]].
<source lang="bash">
<source lang="bash">
#!/bin/sh
#!/bin/sh


# use this script for cloning all git repos to your machine
REPLIST="apps boot cdk driver hostapps sandbox"
# 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
for f in  $REPLIST ; do
$GITCLONE/$f.git $f
git clone git://git.code.sf.net/p/tuxbox-cvs/$f $f
done
done
</source>
</source>
 
oder auch per http:
====Sourceforge====
Hier handelt es sich um ein Repository bestehend aus mehreren [[Branch]]es, 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.
<source lang="bash">
<source lang="bash">
#!/bin/sh
REPLIST="apps boot cdk driver hostapps sandbox"
 
# 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
for f in  $REPLIST ; do
$GITCLONE/$f
git clone http://git.code.sf.net/p/tuxbox-cvs/$f $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
done
</source>
</source>


====Update der GIT-Repositories====
==Abgleichen des lokalen Standes mit dem Remote Repositories==
Für beide Repos kann dieses Script zum Updaten verwendet werden.
Für beide Repos kann dieses Script zum Updaten verwendet werden.
<source lang="bash">
<source lang="bash">
Zeile 100: Zeile 34:
# this will update all repos in your clone directory
# this will update all repos in your clone directory
# change to the directory that contains all repositories and execute this script
# change to the directory that contains all repositories and execute this script
# ensure that you have changed to branch 'master' !
CVSREPOS="apps boot cdk driver hostapps"
CVSREPOS="apps boot cdk driver hostapps"
DIR=`pwd`
DIR=`pwd`
REPLIST="$CVSREPOS"
REPLIST="$CVSREPOS"
GITPULL="git pull -v"
GITPULL="git pull --rebase"


#pull all
#pull all

Version vom 9. Dezember 2012, 13:09 Uhr

Der Tuxbox Quellcode wird derzeit bei Sourceforge bereitgestellt. Dort befinden sich die Hauptentwicklungszweige des Projektes in Form von 5 Git-Repositries


Stop hand.png HINWEIS:

Die Struktur der momentan verfügbaren Repositories, entspricht in etwa der Modulstruktur, wie man sie vor Umstellung von CVS auf Git kannte, wobei es noch zu diversen Anpassungen kommen dürfte. Welche Art diese Anpassungen sind, ist noch nicht vollständig geklärt. Weitere Hintergründe dazu im Tuxbox-Forum.

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.


Klonen der Repositories

#!/bin/sh

REPLIST="apps boot cdk driver hostapps sandbox"
for f in  $REPLIST ; do
	git clone git://git.code.sf.net/p/tuxbox-cvs/$f $f
done

oder auch per http:

REPLIST="apps boot cdk driver hostapps sandbox"
for f in  $REPLIST ; do
	git clone http://git.code.sf.net/p/tuxbox-cvs/$f $f
done

Abgleichen des lokalen Standes mit dem Remote 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
# ensure that you have changed to branch 'master' !
CVSREPOS="apps boot cdk driver hostapps"
DIR=`pwd`
REPLIST="$CVSREPOS"
GITPULL="git pull --rebase"

#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!