Kategorien
Deployment Server SVN Versionierung

rekursives löschen von .svn ordnern

mit folgendem befehl kann man rekursiv .svn ordner löschen:

rm -rf `find . -type d -name .svn`
Kategorien
Deployment Linux Server Shell SVN Versionierung

howto copy merge svn branch trunk

Branch erzeugen

dev@server:~/project> svn cp https://svn.example.com:88/svn/project/trunk https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]

Branch aktuell halten

Es sollte immer in kurzen Abständen der Trunk in den Branch überführt werden, damit es bei späterem Zurückführen keine größeren Konflikte gibt. Mit –dry-run kann man vorher testen was bei merge passieren würde.

dev@server:~/project/branches/[BRANCH_NAME]> svn up
dev@server:~/project/branches/[BRANCH_NAME]> svn merge --dry-run https://svn.example.com:88/svn/project/trunk
dev@server:~/project/branches/[BRANCH_NAME]> svn merge https://svn.example.com:88/svn/project/trunk

Branch in den Trunk zurückführen

Mit –dry-run kann man vorher testen was bei merge –reintegrate passieren würde.

dev@server:~/project/trunk> svn merge --dry-run --reintegrate https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]
dev@server:~/project/trunk> svn merge --reintegrate https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]
Kategorien
Debugging Deployment Linux Server Shell SVN Versionierung

mit find, grep und xargs dateien rekursiv aus svn working copies löschen

Findet alle Dateien die mit ._ anfangen, ignoriert die .svn eigenen kopien und markiert diese zum löschen via svn.

find . -name '._*' -type f | grep -v '.svn/'  | xargs svn rm
Kategorien
Deployment Linux Server Shell SVN Versionierung

svn patches erstellen und ausführen

Um einen Patch für eine geänderte Datei zu erstellen, nutzt man svn diff wie folgt:

svn diff file_with_changes.ext > diff.patch

Um diesen Patch dann zu benutzen, nutzt man svn wie folgt:

patch -p0 -i diff.patch

-p0 sorgt dafür das die zu patchende Datei gefunden wird (zero directories)
-i sagt patch welche patch Datei benutzt werden soll

Kategorien
Deployment GIT Linux Server Shell SVN Versionierung

GIT für SVN Umsteiger

Unter folgendem Link findet Ihr die GIT Quickreferenz für SVN Umsteiger.

http://git-scm.com/course/svn.html

Kategorien
Deployment Linux Server Shell SVN Versionierung

SVN WorkingCopy Version Format ändern

In verteilten Systemen kommt es des öfteren vor, das unterschiedliche SVN Versionen zum Einsatz kommen.

Wenn euer SVN diese Meldung ausgibt:

svn: This client is too old to work with working copy 'xyz'.  You need to get a newer Subversion client, or to downgrade this working copy. See http://subversion.tigris.org/faq.html#working-copy-format-change for details.

kann das Python Script change-svn-wc-format eine SVN WorkingCopy in ein bestimmtes anderes SVN Versionsformat wechseln.

Kategorien
Linux Shell SVN Versionierung XML

SVN-Befehle für Zwischendurch

Ein paar kleine SVN-Befehle und One-liner für den Alltag:

Alle Beitragenden eines Repositories anzeigen lassen (sortiert nach Anzahl der Änderungen):

svn log -q | awk '/^r/ {print $3}' | sort | uniq -c | sort -rn

Alle Änderungen zwischen der aktuellen Arbeitskopie und der Head-Version anzeigen lassen. Sollte im Normalfall auch anzeigen, wer den Build kaputt gespielt hat. ;)

svn log -r BASE:HEAD

History eines Zweiges ausgehend vom Verzweigungspunkt anzeigen lassen:

svn log --stop-on-copy

Alle Änderungen innerhalb eines Zeitraums ausgeben lassen:

svn di -r{2009-10-23}:{2009-11-28}

ALLE Änderungen der lokalen Arbeitskopie rückgängig machen:

svn revert -R .

SVN-Informationen als XML ausgeben lassen, um einfacher Infos für Analysen und Statistiken zu erhalten/zu parsen:

svn log --xml

Noch was für Leute, die keine Angst vor’m Löschen von Externals haben: Alle Dateien, die mit ? gekennzeichnet sind (bei SVN-Status) einfach mal löschen:

svn st | grep ^\? | awk '{print $2}' | xargs rm

Und hier noch ein Befehl um alle neuen Dateien zum Repository hinzuzufügen

svn st|grep ^?|sed s/?//|xargs svn add $1
Kategorien
Deployment Linux Server Shell SVN Versionierung

.svn Verzeichnisse rekursiv aus Ordnern löschen

Folgender Kommandozeilen Befehl löscht alle .svn Verzeichnisse in einem Ordner.

Im Detail sucht das Kommando find
im aktuellen Ordner (.) rekursiv
nach Verzeichnissen (-type d)
mit dem Namen .svn (-name .svn)
und piped (|) diese Liste
nach xargs,
welches dann an erster Stelle (-0) der Liste
mit der Löschoperation (rm -rf) beginnt.


find . -type d -name .svn -print0 | xargs -0 rm -rf

Kategorien
SVN Versionierung

die SVN Quickreferenz als PDF

…für alle die mal eben schnell SVN Kommandos nachsehen wollen.

Subversion_Quickreferenz.pdf

© by Tobias Zeising (tobias.zeising@aditu.de | http://www.aditu.de)