kdesvn gebruiken

Mogelijkheden van kdesvn
kdesvn begrijpt de volgende protocollen voor browsing repositories:
http 	Het standaard webbrowserprotocol.
https 	Het standaard versleutelde webbrowserprotocol.
(k)svn+http 	Het standaard webbrowserprotocol. Kan worden gebruikt om automatisch kdesvn aan te laten roepen.
(k)svn+https 	Het standaard versleutelde webbrowserprotocol. Kan worden gebruikt om automatisch kdesvn aan te laten roepen.
(k)svn+bestand 	Lokaal repositoryprotocol. Kan worden gebruikt om automatisch kdesvn aan te laten roepen.
(k)svn 	Het eigen serverprotocol van subversion.
(k)svn+ssh 	Subversion over ssh.
bestand 	Directe toegang tot een repository. kdesvn controleert of een opgegeven pad een repository of een werkkopie is en opent het dan in de juiste modus. Voor subversion is file:///dir en /dir niet hetzelfde!
Deze lijst is ook van toepassing voor het geven van s via de commandoregel.

Beginnen met subversion en kdesvn
Deze sectie is grotendeels voor beginners die niet bekend zijn met subversion en legt uit hoe subversion en/of versiebeheersystemen (RCS) werken.

Een werkkopie aanmaken
Werkkopieën MOETEN via lokale paden toegankelijk zijn. Subversion weet niets over pseudo bestandsystemen zoals smb:// of fish://. kdesvn vertaalt indien mogelijk sommige daarvan (zoals system:/home) maar dat is niet mogelijk over een netwerk.
Het eerste wat u moet doen is het creëren van een werkkopie van uw repository. Hiervoor selecteert u Subversion Algemeen Repository uitchecken . In het volgende dialoogvenster moet u de van de repository selecteren dat u wilt gebruiken, ⪚, zoiets als http://localhost/repos/mijnproject. Submappen van een repository zijn ook mogelijk, ⪚, http://localhost/repos/mijnproject/trunk of vergelijkbaar.
Selecteer en/of creëer een lokale map, waar de werkkopie moet verblijven.
Tenslotte, de uit te checken revisie. Meestal zal dat zijn HEAD. Dit zorgt ervoor dat de laatste opgeslagen versie de versie is waaraan gerefereerd wordt.
Na het klikken op de knop OK zal kdesvn uw werkkopie creëren en (als het vakje is aangevinkt) het openen.
Als u een respository heeft geopend om er doorheen te bladeren dan kunt u een map markeren en Subversion Repository Huidige repositorypad uitchecken selecteren en het dialoogvenster zoals boven beschreven invullen. Dan zal alleen de gemarkeerde map worden uitgechecked.

Lokale wijzigingen vastleggen (commit)
Markeer het items of de items die u wilt verzenden en selecteer # Subversion Werkkopie Vastleggen (commit)
Als u probeert om vast te leggen terwijl geen item is geselecteerd, dan gebruikt kdesvn het bovenste element van een geopend werkkopie, , het werkkopie pad zelf.
Deze bewerking is altijd recursief, wat inhoud dat als u een map heeft geselecteerd kdesvn altijd alle gewijzigde items in de submappen daarin zal versturen. Als u heeft ingesteld dat u alle items wilt nakijken voordat u ze vastlegt dan krijgt u een lijst te zien met alle door kdesvn te vast te leggen items in het volgende dialoog. Daar kunt u items die u niet wilt vastleggen deselecteren. In dat geval zal kdesvn alle items apart versturen, , niet recursief. maar u kunt ook items selecteren die zonder versiebeheer zijn om ze toe te voegen en vast te leggen (als ze niet gemarkeerd zijn om over te slaan). hierdoor ziet u of er nieuwe items zijn die u vergeten bent.
Voer een logbericht in over wat u verstuurt en druk op de knop OK zodat de transfer start.

Werkkopie bijwerken
Dit brengt de lokale werkkopie in sync met de repository. U kunt kdesvn zo instellen dat kdesvn bij het openen van een werkkopie controleert op nieuwere/veranderde items in de repository. Dit gebeurt in de achtergrond zodat u gewoon met kdesvn kan blijven werken. Als dit is gebeurt, dan zijn items met een nieuwere versie of mappen met items die een nieuwere versie hebben gemarkeerd.
Om de wijzigingen op te halen, selecteert u Subversion Werkkopie Bijwerken naar HEAD . Dit werkt bij naar de laatste versie. Als u een specifieke revisie wilt hebben dan selecteert u Subversion Werkkopie Bijwerken naar revisie en selecteert u vervolgens in het volgende dialoogvenster de gewenste revisie.
Als u geen item heeft geselecteerd, dan zal het bijwerken over de hele geopende werkkopie worden uitgevoerd, anders zal alleen de geselecteerde items recursief worden bijgewerkt.

Toevoegen aan en verwijderen uit de werkkopie
Voor beide bewerkingen zijn twee stappen nodig: eerst toevoegen of verwijderen en daarna deze wijzigingen vastleggen in de repository. Voordat u vastlegt kunt u nog de toevoeging of verwijdering ongedaan maken.

Item toevoegen
Items toevoegen aan een werkkopie kan op drie manieren gebeuren:
Items zonder versiebeheer selecteren en deze toevoegen 	Kopieer met of enig ander hulpmiddel naar de werkkopie. Ga door de lijst, markeer ze en selecteer Insert Subversion Werkkopie Gemarkeerde bestanden/mappen toevoegen . Als u nieuwe mappen met alle subitems wilt toevoegen, selecteer dan Insert Subversion Werkkopie Gemarkeerde bestanden/mappen recursief toevoegen .
Controleren en recursief toevoegen 	U kunt in de werkkopie controleren op onbeheerde items. Ga naar Subversion Werkkopie Controleren voor onbeheerde items . Een dialoog verschijnt met alle onbeheerde items in een overzicht. Door op OK te klikken, voegt u alle gemarkeerde items aan de werkkopie toe, ongewenste items moet u eerst deselecteren.
Sleep en Drop 	Markeer in of een andere vergelijkbare bestandsbeheerder de gewenste items die u wilt toevoegen en versleep ze naar kdesvn. Laat ze los op de mappen in de geopende werkkopie en kdesvn kopieert deze items daar naar toe en voegt ze toe.

Items met revisie uit de werkkopie verwijderen
Items verwijderen is altijd recursief. B.V.,wanneer een map verwijderd wordt, dan worden ook alle subitems verwijderd. Markeer de de gewenste items en kies Subversion Algemeen Gemarkeerde bestanden/mappen verwijderen van het algemene menu. De revisiecontrole wordt van de items verwijderd en daarna worden de items van de harde schijf verwijderd.

Logs tonen
Het tonen van de log kunt u starten met L als u een of geen item in het overzicht heeft gemarkeerd. Afhankelijk van u instellingen (zie Subversion) kdesvn haalt de log informatie startend bij HEAD en toont het .

Het log display venster
Aan de linkerzijde is de lijst met log-items te zien die kdesvn ophaalde. Het logbericht is beperkt tot één regel. Wanneer een log-item wordt gekozen is het volledige logbericht rechtsboven te zien. Rechtsonder is een lijst met de veranderde bestanden. Dit venster verschijnt ALLEEN als kdesvn zo is ingesteld dat deze lijst wordt opgehaald.
Met de knoppen bovenaan kunt u een andere bereik (range) voor de logs kiezen.
Dit bereik wordt zonder vooringestelde grenzen verstuurd, wees dus vorzichtig bij grote repositories.
De knoppen onderaan het dialoogvenster werken altijd op het gekozen log-item, maar niet op geselecteerde items in de lijst met veranderingen. Dus wanneer u het commando Vorige diff kiest, maakt het een diff over alle veranderde items in deze revisie als ze een gelijke of lagere revisie hebben. Hetzelfde geldt voor Diff revisie's
Annotate werkt natuurlijk alleen als het item waarvan de log is een bestand is.
Bij alle items in beide lijsten kunt u een contextmenu openen voor extra mogelijkheden. In de linker lijst is dit Versie voor de linkerkant van diff ( begin revisie) en Versie voor de rechterkant van diff ( eind of doel van diff, in unified wordt dit gedeelte gemarkeerd met een +++). De hier gekozen revisie's worden gemarkeerd met een pijltje.

Werken met repositories
Eenvoudig bladeren door de repository kunt u doen met , of vergelijkbare bestandsbeheerders: Open een URL met een protocol zoals beschreven in Mogelijkheden van kdesvn (Alle varianten die starten met k) en zij zullen de inhoud tonen. Hierdoor kunt u eenvoudige opdrachten zoals kopiëren, verplaatsen en verwijderen uitvoeren. Wanneer u het volgende filter ?rev=xxx instelt, zijn alleen de gegevens van een specifiek revisie te zien. De syntax van een revisie-filter is beschreven in Opbouw voor revisies, lees meer over KIO::ksvn in , KIO, kdesvn
Alle opdrachten behalve Kopiëren kunt u alleen uitvoeren in de revisie HEAD

Terugplaatsen van verwijderde items
Het terugplaatsen van verwijderde items in subversion is het kopiëren van items uit een gekozen revisie. Wanneer U dus van plan bent om items terug te plaatsen, kijk naar de revisie voordat het item werd verwijderd. Ga naar Subversion Repository Selecteer revisie om te bladeren en kies de gewenste revisie. kdesvn toont nu inhoud hiervan. Markeer het de items die teruggezet moeten worden en ga naar C Subversion Algemeen Kopiëren . In de volgende dialoog is het doel altijd de revisie HEAD, de bron is de revisie waarin men aan het bladeren was. Vul het pad in en klik OK en het kopiëren start. Ga na het succesvol kopiëren terug naar de HEAD revisie en het teruggeplaatste item zou te zien moeten zijn.

Mappen importeren
Vanwege beperkingen van subversion zelf, kunt u alleen mappen en geen losse bestanden importeren.

Slepen en loslaten
Markeer in een bestandsbeheerder de map die u wilt importeren en sleep het naar de map in kdesvn waar U het wilt importeren.

Markeer in de bestandsbeheerder een map die u wilt importeren
Markeer de map waar u een nieuwe map naartoe wilt importeren. En ga naar Subversion Algemeen Mappen importeren in huidige map en selecteer de gewenste map.

Overige handelingen

Samenvoegen
Open repository of werkkopie, markeer het item dat u wilt samenvoegen (merge) en ga naar Subversion Algemeen Samenvoegen . Vul in de volgende dialoog de gewenste waarden. Wanneer de repository is geopend, worden bron1 en bron2 gevuld, wanneer de werkkopie is geopend, dan wordt het doel gevuld met het huidige geselecteerde item. Het afhandelen van deze parameter is afhankelijk of u de interne diff, subversion dan wel een extern samenvoeg-programma zoals gebruikt. Het doel moet ALTIJD een lokaal bestand of map zijn. U mag wisselen tussen extern en intern samenvoegen (merge) via het keuzevakje Externe samenvoeging gebruiken.

Intern samenvoegen
Het doel is hetzelfde als bij subversions eigen commandoregel. Wanneer bron1 en bron2 aan elkaar gelijk zijn, moeten start- en eind-revisie verschillend zijn. Als de bronnen niet gelijk zijn, dan is start-revisie toegewezen aan bron1 en de eind-revisie aan bron2. Het doel MOET een werkkopie zijn, anders stuurt subversion een foutmelding.
De keuzevakjes hebben de volgende betekenissen:
Recursief 	Voer alle opdrachten op mappen recursief uit.
Ongerelateerde items behandelen als gerelateerde items 	Indien ingeschakeld, zullen items zonder relatie worden vergeleken (diff) alsof zij wel een relatie hebben. Anders zal subversion de ene zijde verwijderen en het aan de andere zijde toevoegen.
Forceer het verwijderen van veranderde items/ items buiten versie beheer 	Indien niet ingeschakeld en samenvoegen (merge) verlangt het verwijderen van een veranderde item of een item zonder rivisiecontrole, zal het samenvoegen (merge) mislukken. Anders zal het item worden verwijderd.
Uitvoeren als test zonder wijzigingen 	Indien ingeschakeld, verstuurt subversion alleen meldingen over wat het zou doen, maar verandert de werkkopie niet.

Externe samenvoeging gebruiken
Lees de sectie Diff & Merge voor de details hoe een externe (merge) samenvoegprogramma ingesteld moet worden. kdesvn geeft via de commandoregel opdrachten. Alvorens het volgende wordt uitgevoerd:
Wijs een start-revisie toe als bron1 en een eind-revisie als bron2. Controleer dan of er verschillen zijn (pad en/of revisie). Als dat zo is, dan is het een drievoudig samenvoegen, anders is het een eenvoudig samenvoegen van bron naar doel. Als bron2 leeg gelaten is, is het ook een eenvoudig samenvoegen (merge).
Maak een export naar een tijdelijke map. Alleen de start-revisie van bron1 een simpel samenvoegen (merge) is, anders beide bronnen met hun revisies. Als het item geen map is maar een bestand, neem dan de inhoud van een aangewezen revisie.
Maakt de aanroep naar het gewenste externe (merge) samenvoeg-programma zoals ingesteld in de Instellingen. De foutmeldingen worden getoond in een log-venster zodat u kunt zien wat fout is gegaan (als iets fout is gegaan).
In afwijking met het interne (merge) samenvoeg-programma, mag het doel een gewone map/bestand (zonder revisie controle) zijn, omdat externe programma's dit niet belangrijk vinden.
Indien recursief niet is ingeschakeld, dan wordt de export uitgevoerd als een platte export. Wees voorzichtig: wanneer dit wordt gedaan met werkkopiën, worden externals NIET geëxporteerd.

Conflicten oplossen
kdesvn heeft zelf geen module om conflicten op te lossen maar u kunt vanuit kdesvn een extern programma gebruiken. In Conflict oplossend programma is een beschrijving hoe u dit kan instellen.
Wanneer een item de status heeft van conflict ( er is dan een rood kruis te zien bij zulke items) dan kan het volgende gekozen worden Subversion Werkkopie Conflict oplossen . of vanuit het contextmenu conflict oplossen (alleen bij items met een conflict) kdesvn start nu het programma dat door u is geïnstalleerd (of het standaard programma). Na dit opgelost te hebben, kunt u dit item als opgelost markeren (Subversion Werkkopie Markeer als opgelost), anders kunt u de veranderingen niet vastleggen.

Eigenschappen van kdesvn instellen

Bugtracker integratie
Het TortoiseSVN project ontwierp een mooi systeem om bugtracker te integreren in de subversion-GUI. Op dit moment ondersteund kdesvn geen extra velden in het vastlegvak (dit zal later volgen) en begrijpt alleen de volgende eigenschappen:

Bugtracker Integratie Eigenschappen
Eigenschap	Beschrijving	Voorbeeld
bugtraq:url	Dit is het naar de bugtracker. Het moet het woord %BUGID% bevatten.	https://bugs.kde.org/show_bug.cgi?id=%BUGID%

bugtraq:logregex	Bevat een of twee uitdrukkingen, gescheiden door een regeleinde. Indien alleen een enkele uitdrukking is ingesteld, dan moet de kale bug ID overeenkomen met een groepje van de regex-regel. Indien twee uitdrukkingen zijn ingesteld, dan wordt de eerste uitdrukking gebruikt om de regel met het bug ID te vinden maar die ook meer dan alleen de bug ID kan bevatten (⪚ Issue #123 of resolves issue 123). De tweede uitdrukking wordt vervolgens gebruikt om de kale bug ID te krijgen uit de regel verkregen met de eerste uitdrukking. Let op ongewenste spaties aan het eind van de uitdrukking en vergeet niet de haakjes om het nummer-omschrijving.	Enkele uitdrukking (bruikbaar met TRAC): #(\d+) Niet alle nummers zoals #190 zullen worden overgenomen en vertaald naar een in de log-uitvoer. Twee uitdrukkingen: [Ii]ssue #?(\d+)(,? ?#(\d+))* (\d+) Onthouden let op de spaties na de (\d+)! Dit is een van de meest voorkomende fouten waarom deze expressie niet werkt!
Bij lokaal geopende repositories ( file:// protocol) en bij werkkopiën worden deze eigenschappen vanaf de geopende map omhoog gezocht totdat het gevonden is of het bovenste niveau van subversion is bereikt. In repositories die via een netwerk geopend zijn (alles behalve file:// protocol) wordt alleen de geopende map doorzocht.
Ondersteuning voor meervoudige sets van deze eigenschappen volgen misschien later, (b.v. in een submap een andere waarde voor een ander item ) maar meestal is het opzoeken van van een enkele item genoeg.

De revisie boom
De revisie probeert de hele geschiedenis van een item te laten zien, zodat de gebruiker een beter idee heeft over de geschiedenis van een item. Er moet daarom de complete log van respository gescand worden omdat er informatie verzameld moet worden dat subversion niet geeft (en ik denk ook niet zal) geven. Omdat dit veel verkeer zal geven, wordt voor de revisie boom de interne log cache gebruikt.

Vereisten
De revisie boom wordt gegenereerd met dot. Dus moet voor een werkende revisie boom, het pakket graphviz zijn geïnstalleerd.

Interne log cache
kdesvn kan een interne logcache gebruiken voor sommige operatie´s. Meestal is dit in gebruik voor de revisie boom maar ook wanneer een eenvoudige log in de offline modus wordt bekeken. De caches zijn als SQLite databases opgeslagen in $HOME/.sqvnqt/logcache. Elk genummerd bestand is een opslag voor een andere repository.
De databases kunnen groot worden! Het automatische updaten van de logcache kunt u daarom uitschakelen in de instellingen.
U kunt ook eenvoudig een database verwijderen, dan zal er geen cached log terugkomen voor deze repository (en geen revisie boom!) maar als het automatisch updaten van de cache niet is uitgeschakeld, zal de cache weer opnieuw gevuld worden wanneer u de repository of een bijbehorende werkkopie opent

Offline-modus
kdesvn kan werken zonder netwerk-toegang, u kunt netwerk-toegang voor kdesvn uitschakelen. Dit kan handig zijn als u zonder een netwerk werkt zoals met een notebook. In zulke gevallen haalt kdesvn altijd de logs vanuit de interne cache. Deze log is vanwege technische redenen beperkt tot basisfuncties, daarom kan de cached log (maar hoeft niet) verschillen van de echte log. Verschillen betekent dat niet alle bewerkingen te zien zijn, zelfs als Log volgt nodechanges is ingeschakeld.

Logcache en revisie boom
De revisie boom gebruikt alleen de logcache omdat anders iedere keer de logs opnieuw moeten worden opgehaald. Het ververst NIET de logcache (maar dit kan veranderen in een latere release).

Betekenissen van de pictogrammen
Items die niet in een normale staat zijn, kunnen gemarkeerd zijn met een icoon.
Vergrendeld 	Dit item is vergrendeld. In de laatste kolom wordt de eigenaar van het slot genoemd. kdesvn kunt u instellen dat het ook naar vergrendelde items zoekt. Wees voorzichtig: afhankelijk van het type server, kan dit een lange tijd in beslag nemen!
Vergrendelen vereist 	Dit item moet u vergrendelen voordat u het weer kunt bewerken en samenvoegen. Totdat het vergrendeld is, houdt subversion het als "alleen lezen".
Elementen voor bijwerken 	Dit item of (als het een map is een item daarin) heeft een nieuwere versie in repository.
Gewijzigd 	Dit item (als het een map is een item daarin) is veranderd op de lokale schijf.
Toegevoegd 	Dit item is lokaal toegevoegd aan subversion maar nog niet vastgelegd (commit).
Verwijderd 	Dit item is lokaal verwijderd van subversion maar nog niet vastgelegd (commit).
Verwijderd 	Dit item (als het een map is een item daarin) heeft conflicten (die u moet oplossen) gekregen met de laatste update.

kdesvn en wachtwoorden
kdesvn/subversion kan wachtwoorden opslaan. Het opslaan van wachtwoorden heeft altijd een risico, maar het maakt de grafische userinterface wel meer gebruiksvriendelijk.

Wachtwoorden niet opslaan
De meest veilige manier, maar soms onhandig met GUI's zoals kdesvn. Speciaal de achtergrond processen van kdesvn zullen altijd een wachtwoord vragen als de respository de toegang heeft beperkt voor lees operaties zoals update en status. Hetzelfde geldt voor commit enzovoorts. Dus als U de wachtwoorden niet opslaat, kunt U beter Controleren voor updates wanneer een werkkopie geopend wordt en anderen uitschakelen.

Wachtwoorden opslaan in
Veilige opslag van wachtwoorden wordt veel gebruikt in -programma's zoals en . Als U wachtwoorden wil opslaan (en de meeste die kdesvn gebruiken, willen dit), dat zou u dit willen gebruiken. Bedenk wel dat versleutelde opslag geen heel erg veilige opslag (high-secure storage) is. Voor details lees de documentatie.

Wachtwoorden opslaan in subversions eigen wachtwoord opslag
Dit word niet aanbevolen omdat het wachtwoord als leesbare tekst is opgeslagen, niet geloofwaardig? Kijk dan maar in de bestanden in ~/.subversion/auth/svn.simple. Doe dit alleen als ook regelmatig andere clients dan kdesvn zoals rapidsvn of esvn of de originele svn commandline client. Als meestal de commandline client wordt gebruikt voor checkouts of updates die geen wachtwoord nodig hebben en kdesvn voor commit/move/copy, gebruik in dat geval .

Interne wachtwoord cache
De interne wachtwoord-cache kunt u inschakelen, zodat het wachtwoord onthouden wordt zolang kdesvn in het geheugen is. Het is dan niet nodig om een wachtwoord twee keer in te voeren als u het niet in heeft opgeslagen.

Het speciale geval svn+ssh
Wanneer u subversion via svn+ssh gebruikt, dan kunt u wachtwoord opslaan via ssh en ssh-agent. Hiervoor is ssh-toegang tot de andere machine en en repository nodig. Wanneer u hiervan gebruik maakt dan moet u gebruik maken van de public key authentication van ssh, en niet wachtwoord authentication. (Eigenlijk geeft ssh de voorkeur aan public key authentication). Hiervoor moet de public ssh-key in het doel worden geplaatst, ⪚ het repository systeem. SSH-wachtwoorden worden nooit door subversion wachtwoord opslag of of de interne wachtwoord cache beheert.
Als de vraag voor het wachtwoord van de ssh-key ongewenst is, dan kan u ssh-agent, met een keuze-menu gebruiken: Subversion Voeg de ssh identities toe aan ssh-agent. Hier kunt u de ssh-key-wachtwoord voor de huidige sessie bewaren, zodat het niet nodig is om iedere keer het wachtwoord in te vullen.