De enige moeilijkheid die
zich kan voordoen is wanneer twee personen hetzelfde
bestand hebben bewerkt. In de figuur links, veronderstel dat Sally en Harry elk het - lokale - bestand A hebben bewerkt en dat Sally haar versie heeft gecommit. Wanneer Harry zijn versie wil committen veroorzaakt dit een out-of-date error. Harry moet eerst zijn bestand actualiseren: hij moet Sally's veranderingen en de zijne samenvoegen. Dit noemt men een merge en wordt getoond in de figuur rechtst. Pas hierna kan hij het samengevoegde bestand committen. De merge kan automatisch gebeuren tenzij Harry en Sally dezelfde lijnen hebben aangepast. In dat geval moet Harry de merge zelf uitvoeren. Dit noemt men conflict resolution. Merk op dat, zelfs als de merge automatisch kan gebeuren, het toch een goed idee is het resultaat nauwkeurig te bestuderen. |
TortoiseSVN is deel van het
context menu van Windows Explorer. Om een project uit te
checken, maak je een nieuwe folder aan, selecteer de de
folder met de rechter muis toets en kies je checkout. Je zal
gevraagd worden om een host URL, naam en paswoord. Het is verstandig een lege folder te gebruiken! Vanaf dan zie je een groen 'v'-symbool verschijnen op elk bestand of elke folder die gesynchroniseerd is met de repository. In het context menu vind je de commit en update commando's. Bij elke commit kan je eventueel een commentaar toevoegen die de gemaakte veranderingen verduidelijkt. Conflict Resolution Als je een bestand tracht up te daten dat niet up-to-date is, krijg je een out-of-date error. Om deze op te lossen moet je synchroniseren: kies TortoiseSVN => Check for Modifications en dubbelklik op het samen te voegen bestand. In het TortoiseMerge venster, zie je links de versie van de repository en rechts je eigen versie. Alle verschillen zijn aangegeven. Rechts kies je voor elke lijn wat je wil. Eens je alle conflicten heb opgelost, sluit het merge venster na je bestand te hebben bewaard. Geef vervolgens aan dat alle conflicten opgelost zijn door Resolved te kiezen uit het context menu. Voer tenslotte een commit uit. Wanneer je een udpate doet, tracht Subversion je veranderingen automatisch samen te voegen met deze op de server. In het geval van conflicten zullen beide versies verschijnen in jouw bestand als volgt: <<<<<<< .mine
Eerst wordt jouw versie getoond en
vervolgens deze van de server. * TORTOISE ======= * == TORTOISE == * >>>>>>> .r20 (Merk op dat Subversion ook copies maakt can beide versies ). Kies wat je wil, markeer het bestand als opgelost en commit. |