Letztes Wochenende gab es das erste Mal seit dem chruetertee.ch existiert keinen Befehl der Woche. Grund war die Umstellung des FreeBSD-Portbaumes von CVS auf Subversion was mich das letzte Wochenende und die Woche davor ziemlich ausgelastet hat so das keine Zeit für einen Befehl der Woche da war.
Für Benutzer ändert sich nach der Umstellung nichts, falls man aber cvsup(1) oder csup(1) zum aktualisieren des Portbaumes verwendet sollte man allerdings in Betracht ziehen langsam auf portsnap(8) zu wechseln. CVS und CVSup ist zwar im Moment noch unterstützt, wird aber irgendwann in der Zukunft abgeschaltet, natürlich erst nachdem dies vorgängig angekündigt wurde.
Verwendete man bis anhin CVS um Patches gegen den Portbaum zu erstellen so kann dies nun gegen Subversion gemacht werden. Dazu muss zuerst Subversion in installiert werden:
# cd /usr/ports/devel/subversion && make install clean
Das Ports-Subversion-Repository kann nun wie folgt ausgecheckt werden:
# svn co svn://svn.FreeBSD.org/ports/head ports
Möchte man das ganze Ports-Repository spiegeln, zum Beispiel man einen eigenen Repository-Server anbieten will, so kann das initiale Repository von dem nächsten FTP-Server heruntergelanden werden:
# mkdir svnsync
# cd svnsync
# fetch ftp://ftp.ch.freebsd.org/pub/FreeBSD/development/subversion/svnmirror-ports-r300897.tar.xz
# tar xf svnmirror-ports-r300897.tar.xz
Ist das Repository entpackt (Achtung ca. 16 GB) kann es aufsynchronisiert werden:
# svnsync sync file:///pfad/zu/svnsync/ports
Übertrage Daten .
Revision 300898 übertragen.
Eigenschaften für Revision 300898 kopiert.
Übertrage Daten .
Revision 300899 übertragen.
Eigenschaften für Revision 300899 kopiert.
Übertrage Daten .
Revision 300900 übertragen.
Eigenschaften für Revision 300900 kopiert.
Übertrage Daten ..
Revision 300901 übertragen.
Eigenschaften für Revision 300901 kopiert.
Übertrage Daten .
Revision 300902 übertragen.
[...]
Übertrage Daten ..
Revision 301267 übertragen.
Eigenschaften für Revision 301267 kopiert.
Anschliessend kann man seine Arbeitskopieren vom lokalen Repositroy holen:
# svn co file:///pfad/zu/svnsync/ports/head ports
Auch ist es möglich das Repository via svnserve(8) übers Netzwerk zugänglich zu machen. Mehr Informationen zu Subversion und den FreeBSD-Ports findet man im Ports Subversion Primer im FreeBSD Wiki. Mehr Informationen zu Subversion findet man in den Manpages svn(1), svnync(1) und svnserve(8).