Benutzer-Werkzeuge

Webseiten-Werkzeuge

StrukturPunkt
Klaus Franken

doku:knf2009-svndisk

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
doku:knf2009-svndisk [20.11.2009 21:59]
kfr angelegt
doku:knf2009-svndisk [21.11.2009 10:14]
kfr
Zeile 1: Zeile 1:
 + ​~~SLIDESHOW~~
 +====== Sync Ordner mit SVN ? ======
 +
 +  *
 +  * Kann man mit Subversion (SVN) seine Arbeitsordner syncen?
 +  * Klaus Franken, [[StrukturPunkt.de]]
 +  * KNF Kongress 22.11.2009 ​
 +  *
 +===== Übersicht =====
 +{{:​doku:​svndisk_2ws.png|}}
 +
 +===== Ziel / Wunsch =====
 +
 +  * mehrere Systeme (Peer to Peer / sternförmig)
 +  * Plattformen:​ Linux, Mac OS X, ...
 +  * Sicherheit
 +  * eigener Server
 +    * wegen Sicherheit / Datenschutz
 +  * Konflikterkennung
 +  * offline
 +  * History
 +  * //bequem//
 +  * automatisierbar / soll im Hintergrund laufen
 +
 +
 +===== vorhandene Projekte =====
 +
 +  * Dropbox
 +  * Mobile Me
 +  * Teamdrive
 +  * Powerfolder
 +  * Wuala
 +
 +===== Subversion =====
 +  * eigentlich eine Revision Control System, aber...
 +  * kann 95% von den Wünschen
 +  * kann man ein Script für die restlichen 5% schreiben?
 +
 +===== Theorie =====
 +
 +ein Script läuft in einer Schleife und:
 +  - gelöschte Dateien (in SVN) als //​gelöscht//​ markieren
 +  - Konflikt-Dateien umbenennen
 +  - neue Dateien vom Server holen
 +  - neue Dateien als //neu// markieren
 +  - Änderungen hochladen
    
 +===== Praxis =====
 +<​code>​
 +# gelöschtes löschen:
 +# Beispiel: "​! ​     Klexe/​Arcor-Vertragsänderung-090610.pdf"​
 +$SVN stat \
 +  | $PERL -ne '$_ =~ s/^\!\s+// || next; print $_;' \
 +  | $XARGS $XARGS_OPT $SVN del
 +# FIXME: wie ein ganzes Verzeichnis löschen?
 +
 +# Konflikte beheben (umbenennen):​
 +# Bsp-Zeile: "​M ​     *       ​17 ​  ​NEU.txt"​
 +# Erkennung: Konflikt wenn modifiziert (M) und neue Version auf Server (*)
 +$SVN stat -u \
 +  | perl -ne '$_ =~ s/​^M[\w\s]{6}\*\s*\d*\s*//​ || next; print $_;' \
 +  | xargs $XARGS_OPT -I % mv % %-$USER-$HOSTNAME-`date "​+%y%m%d-%H%M%S"​`
 +
 +# Updates abholen:
 +$SVN update
 +
 +# neues hinzufügen:​
 +# BUG: keine Dateinamen mit "​´"​ oder "​`"​ im Namen
 +$SVN stat \
 +  | $PERL -ne '$_ =~ s/^\?\s+// || next; $_ =~ s/\s(.)/\\ $1/g; print $_;' \
 +  | $XARGS $XARGS_OPT $SVN add
 +
 +$SVN commit -m "​svndisk auto commit"​
 +</​code>​
 +===== wer macht mit? =====
 +
 +Wunsch:
 +  * Open Source Projekt
 +  * Script //​chefsicher//​ machen
 +  * GUI ?
 +
 +Ich stelle:
 +  * vorhandenes Script
 +  * Server: Wiki, Mailingliste,​ Svn
 +
 +Mail an Klaus.Franken@StrukturPunkt.de
doku/knf2009-svndisk.txt · Zuletzt geändert: 23.11.2009 12:18 von kfr

oeffentlich