Tag Archive SVN

rekursives löschen von .svn ordnern

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

rm -rf `find . -type d -name .svn`

Tags, , , , , , ,

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]

Tags, , , , ,

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

Tags, , , , , ,

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

Tags, , , , ,

GIT für SVN Umsteiger

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

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

Tags, , , , ,

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.

Tags, , , ,

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

Tags, ,

.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

Tags, , , , , , , ,

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)

Tags, , , ,