Spass mit Git Episode 1: Wie werden aus 126MB 4.8GB

Oder wie krieg ich alle im SVN getagten Typo3-Releases als typo3_src-Targets

Was brauch ich:

  1. git mit SVN Support
  2. Internet
  3. Genug Platz auf der Platte

Schritt 1: Wir holen und das Typo3-SVN-Repository in der git-Version auf die Platte

cd ~/tmp
mkdir repo
cd repo

git svn init --stdlayout https://svn.typo3.org/TYPO3v4/Core
git svn fetch

Das Ganze dauert je nach Bandbreite etwas. Updates gehen später natürlich schneller.

Die Option –stdlayout gibt an daß das SVN-Repo die Standard-Aufteilung in trunk/branches/tags verwendet.

Die finale Grösse des git-Repositories (im .git Verzeichnis) beträgt nach heutigem Stand ca. 126M. Während des Checkouts kanns schon mal auf > 400MB anwachsen.
git gc machts immer wieder schön klein.

git branch -a zeigt alle erkannten SVN-Branches & Tags an.

Interessant sind die Tag-Branches:

  tags/TYPO3_3-6-0FINAL
  tags/TYPO3_3-6-0RC2
  tags/TYPO3_3-6-1
  tags/TYPO3_3-6-2
  tags/TYPO3_3-7-0
  tags/TYPO3_3-7-0RC1
  tags/TYPO3_3-7-0RC2
  tags/TYPO3_3-7-1
  tags/TYPO3_3-8-0
  tags/TYPO3_3-8-0beta1
  tags/TYPO3_3-8-0beta2
  tags/TYPO3_3-8-0rc1
  tags/TYPO3_4-0-0
  tags/TYPO3_4-0-0beta1
  tags/TYPO3_4-0-0beta2
  tags/TYPO3_4-0-0beta3
  tags/TYPO3_4-0-0rc1
  tags/TYPO3_4-0-0rc2
  tags/TYPO3_4-0-0rc4
  tags/TYPO3_4-0-1
  tags/TYPO3_4-0-10
  tags/TYPO3_4-0-11
  tags/TYPO3_4-0-12
  tags/TYPO3_4-0-13
  tags/TYPO3_4-0-2
  tags/TYPO3_4-0-3
  tags/TYPO3_4-0-4
  tags/TYPO3_4-0-5
  tags/TYPO3_4-0-6
  tags/TYPO3_4-0-7
  tags/TYPO3_4-0-8
  tags/TYPO3_4-0-9
  tags/TYPO3_4-1-0
  tags/TYPO3_4-1-0RC1
  tags/TYPO3_4-1-0RC2
  tags/TYPO3_4-1-1
  tags/TYPO3_4-1-10
  tags/TYPO3_4-1-11
  tags/TYPO3_4-1-12
  tags/TYPO3_4-1-13
  tags/TYPO3_4-1-14
  tags/TYPO3_4-1-15
  tags/TYPO3_4-1-2
  tags/TYPO3_4-1-3
  tags/TYPO3_4-1-4
  tags/TYPO3_4-1-5
  tags/TYPO3_4-1-6
  tags/TYPO3_4-1-7
  tags/TYPO3_4-1-8
  tags/TYPO3_4-1-9
  tags/TYPO3_4-2-0
  tags/TYPO3_4-2-0RC1
  tags/TYPO3_4-2-0RC2
  tags/TYPO3_4-2-0alpha1
  tags/TYPO3_4-2-0alpha2
  tags/TYPO3_4-2-0alpha3
  tags/TYPO3_4-2-0beta1
  tags/TYPO3_4-2-0beta1a
  tags/TYPO3_4-2-0beta2
  tags/TYPO3_4-2-0beta2a
  tags/TYPO3_4-2-0beta3
  tags/TYPO3_4-2-0snapshot-20070427
  tags/TYPO3_4-2-1
  tags/TYPO3_4-2-10
  tags/TYPO3_4-2-11
  tags/TYPO3_4-2-12
  tags/TYPO3_4-2-13
  tags/TYPO3_4-2-14
  tags/TYPO3_4-2-15
  tags/TYPO3_4-2-16
  tags/TYPO3_4-2-17
  tags/TYPO3_4-2-2
  tags/TYPO3_4-2-3
  tags/TYPO3_4-2-4
  tags/TYPO3_4-2-5
  tags/TYPO3_4-2-6
  tags/TYPO3_4-2-7
  tags/TYPO3_4-2-8
  tags/TYPO3_4-2-9
  tags/TYPO3_4-3-0
  tags/TYPO3_4-3-0RC1
  tags/TYPO3_4-3-0RC2
  tags/TYPO3_4-3-0alpha1
  tags/TYPO3_4-3-0alpha2
  tags/TYPO3_4-3-0alpha3
  tags/TYPO3_4-3-0beta1
  tags/TYPO3_4-3-0beta2
  tags/TYPO3_4-3-0beta3
  tags/TYPO3_4-3-1
  tags/TYPO3_4-3-10
  tags/TYPO3_4-3-11
  tags/TYPO3_4-3-2
  tags/TYPO3_4-3-3
  tags/TYPO3_4-3-4
  tags/TYPO3_4-3-5
  tags/TYPO3_4-3-6
  tags/TYPO3_4-3-7
  tags/TYPO3_4-3-8
  tags/TYPO3_4-3-9
  tags/TYPO3_4-4-0
  tags/TYPO3_4-4-0RC1
  tags/TYPO3_4-4-0RC2
  tags/TYPO3_4-4-0alpha1
  tags/TYPO3_4-4-0alpha2
  tags/TYPO3_4-4-0beta1
  tags/TYPO3_4-4-0beta2
  tags/TYPO3_4-4-0beta3
  tags/TYPO3_4-4-1
  tags/TYPO3_4-4-2
  tags/TYPO3_4-4-3
  tags/TYPO3_4-4-4
  tags/TYPO3_4-4-5
  tags/TYPO3_4-4-6
  tags/TYPO3_4-4-7
  tags/TYPO3_4-5-0
  tags/TYPO3_4-5-0alpha1
  tags/TYPO3_4-5-0alpha2
  tags/TYPO3_4-5-0alpha3
  tags/TYPO3_4-5-0beta1
  tags/TYPO3_4-5-0beta2
  tags/TYPO3_4-5-0beta3
  tags/TYPO3_4-5-0beta4
  tags/TYPO3_4-5-0rc1
  tags/TYPO3_4-5-0rc2
  tags/TYPO3_4-5-0rc3
  tags/TYPO3_4-5-1
  tags/TYPO3_4-5-2

Ich will jetzt Exports aller Tag-Releases haben.
Das geht mit folgendem, schnell gehacktem Script (sicher optimierbar, zb. Parameter für TARGET).
Es sollte nach einem chmod +x irgendwo im PATH abgelegt werden (bei mir ~/bin/exportalltypo3tagreleases.sh)

#!/bin/bash

TARGET="../src/"

for BRANCH in `git branch -a |grep "remotes/tags"`;
do
	RELEASE=`echo ${BRANCH}|sed -e s-remotes/tags/TYPO--`;
	DIR=${TARGET}${RELEASE};
	if [ -d ${DIR} ] ;then
		echo ${DIR} "skipped"
	else
		mkdir -p ${DIR};
		git archive ${BRANCH} | tar x -C ${DIR};
	fi			
done

Das Script starte ich im repo-Verzeichnis (cd ~/tmp/repo) mit exportalltypo3tagreleases.sh
Das dauert wieder etwas, es werden dabei massig Files erzeugt.
In ~/tmp/src landed:

 17M	TYPO3_3-6-0FINAL
 17M	TYPO3_3-6-0RC2
 17M	TYPO3_3-6-1
 17M	TYPO3_3-6-2
 22M	TYPO3_3-7-0
 23M	TYPO3_3-7-0RC1
 23M	TYPO3_3-7-0RC2
 22M	TYPO3_3-7-1
 21M	TYPO3_3-8-0
 21M	TYPO3_3-8-0beta1
 21M	TYPO3_3-8-0beta2
 21M	TYPO3_3-8-0rc1
 28M	TYPO3_4-0-0
 27M	TYPO3_4-0-0beta1
 28M	TYPO3_4-0-0beta2
 29M	TYPO3_4-0-0beta3
 27M	TYPO3_4-0-0rc1
 27M	TYPO3_4-0-0rc2
 28M	TYPO3_4-0-0rc4
 28M	TYPO3_4-0-1
 29M	TYPO3_4-0-10
 29M	TYPO3_4-0-11
 29M	TYPO3_4-0-12
 29M	TYPO3_4-0-13
 29M	TYPO3_4-0-2
 29M	TYPO3_4-0-3
 29M	TYPO3_4-0-4
 29M	TYPO3_4-0-5
 29M	TYPO3_4-0-6
 29M	TYPO3_4-0-7
 29M	TYPO3_4-0-8
 29M	TYPO3_4-0-9
 29M	TYPO3_4-1-0
 30M	TYPO3_4-1-0RC1
 30M	TYPO3_4-1-0RC2
 29M	TYPO3_4-1-1
 29M	TYPO3_4-1-10
 29M	TYPO3_4-1-11
 29M	TYPO3_4-1-12
 29M	TYPO3_4-1-13
 29M	TYPO3_4-1-14
 29M	TYPO3_4-1-15
 29M	TYPO3_4-1-2
 30M	TYPO3_4-1-3
 30M	TYPO3_4-1-4
 30M	TYPO3_4-1-5
 30M	TYPO3_4-1-6
 30M	TYPO3_4-1-7
 29M	TYPO3_4-1-8
 29M	TYPO3_4-1-9
 34M	TYPO3_4-2-0
 33M	TYPO3_4-2-0RC1
 33M	TYPO3_4-2-0RC2
 30M	TYPO3_4-2-0alpha1
 32M	TYPO3_4-2-0alpha2
 32M	TYPO3_4-2-0alpha3
 32M	TYPO3_4-2-0beta1
 32M	TYPO3_4-2-0beta1a
 32M	TYPO3_4-2-0beta2
 32M	TYPO3_4-2-0beta2a
 33M	TYPO3_4-2-0beta3
 30M	TYPO3_4-2-0snapshot-20070427
 34M	TYPO3_4-2-1
 33M	TYPO3_4-2-10
 33M	TYPO3_4-2-11
 33M	TYPO3_4-2-12
 33M	TYPO3_4-2-13
 33M	TYPO3_4-2-14
 33M	TYPO3_4-2-15
 33M	TYPO3_4-2-16
 33M	TYPO3_4-2-17
 34M	TYPO3_4-2-2
 34M	TYPO3_4-2-3
 33M	TYPO3_4-2-4
 33M	TYPO3_4-2-5
 33M	TYPO3_4-2-6
 33M	TYPO3_4-2-7
 33M	TYPO3_4-2-8
 33M	TYPO3_4-2-9
 48M	TYPO3_4-3-0
 44M	TYPO3_4-3-0RC1
 48M	TYPO3_4-3-0RC2
 39M	TYPO3_4-3-0alpha1
 39M	TYPO3_4-3-0alpha2
 40M	TYPO3_4-3-0alpha3
 44M	TYPO3_4-3-0beta1
 44M	TYPO3_4-3-0beta2
 44M	TYPO3_4-3-0beta3
 48M	TYPO3_4-3-1
 48M	TYPO3_4-3-10
 48M	TYPO3_4-3-11
 48M	TYPO3_4-3-2
 48M	TYPO3_4-3-3
 48M	TYPO3_4-3-4
 48M	TYPO3_4-3-5
 48M	TYPO3_4-3-6
 48M	TYPO3_4-3-7
 48M	TYPO3_4-3-8
 48M	TYPO3_4-3-9
 59M	TYPO3_4-4-0
 55M	TYPO3_4-4-0RC1
 59M	TYPO3_4-4-0RC2
 51M	TYPO3_4-4-0alpha1
 53M	TYPO3_4-4-0alpha2
 54M	TYPO3_4-4-0beta1
 55M	TYPO3_4-4-0beta2
 55M	TYPO3_4-4-0beta3
 59M	TYPO3_4-4-1
 59M	TYPO3_4-4-2
 59M	TYPO3_4-4-3
 59M	TYPO3_4-4-4
 59M	TYPO3_4-4-5
 59M	TYPO3_4-4-6
 59M	TYPO3_4-4-7
 65M	TYPO3_4-5-0
 60M	TYPO3_4-5-0alpha1
 60M	TYPO3_4-5-0alpha2
 63M	TYPO3_4-5-0alpha3
 65M	TYPO3_4-5-0beta1
 66M	TYPO3_4-5-0beta2
 66M	TYPO3_4-5-0beta3
 67M	TYPO3_4-5-0beta4
 65M	TYPO3_4-5-0rc1
 65M	TYPO3_4-5-0rc2
 65M	TYPO3_4-5-0rc3
 66M	TYPO3_4-5-1
 66M	TYPO3_4-5-2

mit insgesamt ca. 4.8GB

Beim nächsten Typo3-Release lässt sich die typo3_src-Sammlung dann easy mit folgendem Kommandos ergänzen.

cd ~/tmp/repo
git svn fetch
exportalltypo3tagreleases.sh

Und schon liegt das neue Release im ~/tmp/src Verzeichnis und man linkt seine Typo3-Installation mit rm typo3_src && ln -s ~/tmp/src/ typo3_src auf die neue Version um.

Man könnte sich natürlich einfach den Tarball von http://www.typo3.org holen und entpacken, aber dann hätte man vielleicht weniger Spass gehabt ;-)

Comments are closed.

Anfrage