Subversion
siehe auch Subclipse @ eclipse.txt Quick Reference: http://www.oxygenxml.com/doc/ug-standalone/cmd-line-quick-reference.html
Repos http://foobar.com/svn/repos/foo/ mit -r jederzeit auf ältere Revisions zugreifen, z. B. zum Mergen z. B. svn copy -m „Tag für's Merging angelegt“ http://foobar.com/svn/repos/foo/branches/profil_umbau/htdocs -r 3547 http://foobar.com/svn/repos/foo/tags/PRE-Profile
Repo anlegen
sudo svnadmin create /svn/foo sudo chown -R www-data:wwwdata inaudito sudo vi /etc/apache2/authz_svn.access
Rechte * /etc/apache2/authz_svn.access [foo:/] karl = rw heinz = rw
Subversion-Verzeichnisse löschen
Verzeichnisse aus der Versionierung herausnehmen.
find . -type d -name ".svn" -print0 | xargs -0 rm -rdf
Hilfe * svn help * svn help foo
Checkout * svn co * auch für einzelne Verzeichnisse, z. B. wenn Checksummen durcheinandergeraten ….. URL des betroffenen Verzeichnisses via .svn/entries auslesen, in temporärem Verzeichnis neu ausschecken (svn co url), das alte ersetzen cd ..; rm -r -f foo; mv ~/temp/…/foo foo
Eigenschaften auslesen .svn/entries
Ignore
propdel propedit propget propset
svn propget PROPNAME [ZIEL[@REV]…] svn propset svn:ignore „uploads“ web: Suchmuster zeilenweise, dahinter der relative Pfad svn propset svn:ignore -F web/.svnignore web: Suchmuster aus Datei, da Zeilenumbrüche im Terminal nicht angenommen svn propget svn:ignore web: Ignore-Eigenschaften prüfen
svn propset svn:ignore “ .project .cache .settings “ /home/theil/dev/workspace/foo
Merge - Repositories zusammenführen
- Situation: isolierte Änderungen in eigenem Branch erstellt, Trunk parallel weiterentwickelt –> jetzt zusammenzuführen
- Diff anlegen: beide Projekte auswählen, … diff … als Datei speichern
- Branch: Apply Patch: Datei auswählen, Konflikte manuell auflösen
- Branch: Commit
- Trunk: Merge … Branch auswählen ………………..
- Trunk: Commit
Update * svn up -r 17 foo/bar: Ordner foo/bar auf Revision 17 zurücksetzen
Geben Sie 'svn help UNTERBEFEHL' ein, um Hilfe zu einem Unterbefehl zu erhalten.
Die meisten Unterbefehle akzeptieren Datei und/oder Verzeichnisparameter, wobei die Verzeichnisse rekursiv durchlaufen werden. Wenn keine Parameter angegeben werden, durchläuft der Befehl das aktuelle Verzeichnis rekursiv.
Verfügbare Unterbefehle:
add blame (praise, annotate, ann) cat checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) log merge mkdir move (mv, rename, ren) propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) resolved revert status (stat, st) switch (sw) update (up)
Externals und Ignore propedit svn propedit svn:externals projektpfad extern einzubindende Verzeichnisse des Projektes anzeigen und bearbeiten svn propedit svn:ignore projektpfad zu ignorierende Verzeichnisse des Projektes
Externals einbinden svn propget svn:externals . svn propedit svn:externals . z. B.: plugins/sfDoctrinePlugin -r7754 http://svn.symfony-project.com/plugins/sfDoctrinePlugin/branches/1.0 * Verzeichnis wird nicht versioniert! * wenn Verzeichnis neu in bestehendes Projekt angelegt: komplett neu auschecken! * wenn versioniertes Verzeichnis durch symbolischen Link ersetzt
Status …
Override and update * svn revert -R . * svn update