Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:subversion:tortoisesvn [2013-05-01 10:59] – Konflikte lösen abajricsoftware:subversion:tortoisesvn [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== TortoiseSVN ====== 
-<box 30% right green | QuickLinks> 
-  * [[http://tortoisesvn.net/downloads | Download TortoiseSVN]] 
-  * [[http://tortoisesvn.net/docs/release/TortoiseSVN_de/index.html | Ausführliche Dokumentation]] 
-</box> 
-Diese Seite erklärt den grundlegenden Umgang mit TortoiseSVN. Tortoise-SVN ist eine Erweiterung für den Windows Explorer und bietet eine gute Integration von SVN. Der Zugriff auf TortoiseSVN geschieht über das Kontextmenu des Windows-Explorers. Eine umfassende [[http://tortoisesvn.net/docs/release/TortoiseSVN_de/index.html | Dokumentation]] ist auf der [[http://tortoisesvn.net/ | Projektseite]] zu finden. 
  
-===== Lokale Arbeitskopie erstellen (checkout) ===== 
-[{{ .:tortoise_svn_checkout_dialog.png?300&direct|Checkout Dialog}}] 
-Eine lokale Arbeitskopie kann in jedem beliebigen Ordner erstellt werden: Rechtsklick auf den Ordner -> //SVN Checkout...//. In der daraufhin erscheinenden Maske muss nur noch die URL zum Repository angegeben werden. Befindet sich das Repository auf dem NTB-SVN-Server sieht die URL z.B. so aus: ''https://svn.ntb.ch/svnba/RepositoryName''. Bei einem lokalen Repository z.B. so: ''file:%%///%%D:/work/SVN/WasAuchImmer''. 
- 
-===== Lokale Arbeitskopie aktualisieren (update) ===== 
-Es ist wichtig, die lokale Arbeitskopie stets aktuell zu halten. Dazu wird ein sogenanntes //update// durchgeführt. Dies wird wie folgt gemacht: Rechtsklick auf den obersten Ordner -> //SVN Update//. 
- 
-===== Lokale Änderungen übermitteln (commit) ===== 
-Hat man in der lokalen Arbeitskopie Änderungen gemacht, sollten diese regelmässig wieder ins Repository übermittelt werden. Dazu wird ein sogenannter //commit// durchgeführt: Rechtsklick auf den obersten Ordner -> //SVN Commit//. Anschliessend werden alle Dateien aufgelistet, die sich vom Repository unterscheiden. Man wählt diejenigen an, welche übertragen werden sollen, gibt einen Kommentar ein und klickt auf //OK//. 
- 
-===== Konflikt lösen ===== 
-[{{ .:commit-conflict.png?300&direct|Konflikt beim Commit}}] 
-[{{ .:update-conflict.png?300&direct|Konflikt beim Update}}] 
-Wenn mehere Benutzer im gleichen Repository arbeiten, kann es vorkommen, dass zwei Benutzer die gleiche Datei abändern. Da man aber nur auf einer lokalen Kopie des Repositories arbeitet, merkt man nichts davon. Einer der beiden Benutzer wird seine Änderungen als erster übermitteln (//commit//). Wenn der zweite Benutzer seine Änderungen übermitteln will (//commit//), erhält er eine Fehlermeldung (siehe Bild). Als nächstes wird man gefragt, ob die lokale Arbeitskopie aktualisiert werden soll (//update//). 
- 
-Nach dem Update gibt es wieder eine Fehlermeldung, welche auch aufgetreten wäre, wenn zuvor kein Commit gemacht wurde. Alle betroffenen Dateien wurden mit der Version, welche im Repository liegt, vereinigt. Eine Kopie der lokalen Dateien wurde unter dem Namen //*.mine// erstellt. 
- 
-Um den Konflikt zu lösen klickt man mit der rechten Maustaste auf die betroffene Datei und wählt  -> //TortoiseSVN// -> //Edit conflicts// aus. Es erscheint ein Fenster mit drei Bereichen: 
-  * //Theirs// -> Version auf dem Repository (oben links) 
-  * //Mine// -> Version auf lokaler Kopie (oben rechts) 
-  * //Merged// -> vereinigte Version (unten) 
- 
-[{{ .:edit-conflict.png?300&direct|Bearbeiten der Konflikte}}] 
- 
-Nun kann mit den Pfeil-Symbolen für jede Linie gewählt werden, welche Version verwendet werden soll (//Mine// -> Pfeil nach links oder //Theirs// -> Pfeil nach rechts). Die vereinigten Linien sind im //Merged// Bereich zu sehen. Bei grossen Dateien kann mit den //Pfeilen nach oben/unten// zum nächsten Konflikt gesprungen werden. Im //Merged// Bereich können die Konflikte auch manuell gelöst werden. Nach dem alle Konflikte gelöst wurden, muss die Datei als bereinigt markiert werden, indem im Menü unter -> //Edit// -> //Mark as resolved// oder auf das Symbol geklickt wird. Die Änderungen können nun ganz normal übermittel werden (//commit//). 
- 
-===== Tag/Branch erstellen ===== 
-TODO 
- 
-===== Lokales Repository erstellen ===== 
-Mit TortoiseSVN ist es möglich lokale Repositories an einem beliebigen Ort auf dem Dateisystem zu erstellen. Diese sind jedoch nur für den Eigengebrauch geeignet und sollten nicht über ein Netzlaufwerk mit anderen gemeinsam verwendet werden. Grund für diese Einschränkung sind die fehlenden Lock-Funktionen der Windows-Dateisysteme. Dadurch kann das Repository unbrauchbar gemacht werden, wenn zwei Personen gleichzeitig einen Commit durchführen! Praktisch sind diese privaten Repositories jedoch, da man dadurch jederzeit wieder zu einer früheren Version zurückkehren kann und man die Änderungsschritte automatisch dokumentiert hat (natürlich nur wenn man die Änderungsmitteilung immer brav ausfüllt). 
- 
-Ein Repository erstellen ist relativ einfach: Gewünschen Ordner aussuchen, //Rechtsklick -> TortoiseSVN -> Create repository here//. Anschliessend muss nur noch eine lokale Arbeitskopie erstellt werden. 
- 
-Wird ein Projekt von mehreren Personen bearbeitet, eignet sich ein solches Repository nicht. Für eine einfach und sichere Zusammenarbeit stellt die NTB einen [[NTB SVN-Server | SVN-Server]] zur Verfügung. 
- 
-===== Was tun, wenn das Repository verschoben wurde? ===== 
-Ändert sich die URL von einem Repository, kann kein Update/Commit mehr ausgeführt werden. Um dieses Problem zu lösen muss TortoiseSVN mitgeteilt werden, wohin das Verzeichnis verschoben wurde. Dazu gibt es die Funktion **Relocate**: 
-  - Rechtsklick auf die lokale Arbeitskopie -> TortoiseSVN -> Relocate 
-  - URL anpassen und mit OK speichern 
-  - Update und Commit sollten nun wieder funktionieren.