You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
SVN_ROOT=/raid/svn |
|
TMP_DIR=/tmp |
|
EMAIL_DOMAIN=ugn-umwelttechnik.de |
|
|
|
default: convert-all |
|
|
|
clean: |
|
@echo Räume auf… |
|
@mkdir -p bare checkout convert |
|
@rm -fr bare/* checkout/* convert/* projects.list |
|
|
|
svn.users: |
|
@echo Lese Benutzerkennungen aus der Commit-Liste… |
|
@mkdir -p data |
|
@svn log file://$(SVN_ROOT) | grep '|' | awk '{print $$3}' | sort -u > svn.users |
|
|
|
users.map: svn.users |
|
@echo Bereite Benutzer-Map-Datei vor… |
|
@echo '# Bitte gib die Echt-Namen der Benutzer zwischen den Gleichheitszeichen und den Email-Adressen ein!' > users.map |
|
@cat data/svn.users | sed -e "s|\(.*\)|\1\t = \1\t <\1@$(EMAIL_DOMAIN)>|g" >> users.map |
|
@echo "(no author) = (unbekannter Urheber) <info@$(EMAIL_DOMAIN)>" >> users.map |
|
@echo "(kein Autor) = (unbekannter Urheber) <info@$(EMAIL_DOMAIN)>" >> users.map |
|
@emacs users.map |
|
|
|
checkout/%: |
|
@echo Kopiere History von $* |
|
@mkdir -p checkout |
|
svn checkout "file://$(SVN_ROOT)/$*" "checkout/$*" |
|
|
|
convert/%: users.map |
|
@echo Konvertiere $* zu GIT: |
|
@mkdir -p "convert/$*" |
|
@rm -rf "convert/$*" |
|
@git svn clone --no-metadata -A users.map "file://$(SVN_ROOT)/$*" "convert/$*" |
|
@cd "convert/$*"; git svn show-ignore > .gitignore; git add .gitignore; git commit -m 'SVN-Repository zu GIT konvertiert' |
|
|
|
bare/%: |
|
make "convert/$*" |
|
@echo Konvertiere zu Bare-Repository: $* |
|
@mkdir -p "bare/$*.git" |
|
@mv "convert/$*/.git" "bare/$*.git" && rm -rf "convert/$*" |
|
@cd "bare/$*.git" && git config --bool core.bare true |
|
|
|
projects.list: |
|
@echo Lese Projektstruktur von $(SVN_ROOT)… |
|
@echo '# Dies ist die Liste der Projekte, welche vom Makefile-Script erstellt wurde.' > projects.list |
|
@echo '# Bitte prüfen Sie diese Liste, nehmen Sie ggf. Änderungen vor.' >> projects.list |
|
@echo '# Es wird außerdem empfohlen, diese ersten drei Zeilen aus der Liste zu löschen, bevor Sie fortfahren.' >> projects.list |
|
@svn list file://$(SVN_ROOT) | grep -v ^20.. | grep "/$$" >> projects.list |
|
@YEARS=$$(svn list file://$(SVN_ROOT) | grep -e ^20..); \ |
|
for YEAR in $$YEARS; do \ |
|
echo Lese Projekte des Jahres $$YEAR…; \ |
|
svn list file://$(SVN_ROOT)/$$YEAR | grep "/$$" | sed -e "s|^|$$YEAR|g" >> projects.list; \ |
|
done |
|
@echo Nachbearbeitung der Projektliste… |
|
@sed -i "s|/$$||g" projects.list |
|
@emacs projects.list |
|
|
|
convert-all: projects.list |
|
@echo Konvertiere alle Projekte aus projects.list |
|
while read LINE; do \ |
|
make "bare/$$LINE"; \ |
|
done < projects.list |
|
|
|
|