# Het &kappname; handboek

Rajko
Albrecht

    ral@alwins-world.de

2005
2008
Rajko Albrecht
&FDLNotice;
$Date: 2007-10-16 12:53:18 +0200 (Di, 16 Okt 2007) $
0.3

&kappname; - een subversion cliënt voor &kde;.

KDE
kdesvn
subversion
version control system

## Overzicht

&kappname; is een subversion client voor &kde;.

Subsversion wordt bekend geacht, maar hopelijk leggen de meeste items zichzelf uit.

Gebruik kdesvn.alwins-world.de/ om bugs (programmafouten) en wensen te rapporteren.

### Termen

Indien revisie controle systemen bekend zijn, dan kan dit overgeslagen worden - of lees en korrigeer de auteur ;)

Repository

  Centrale opslag van data. Dit kan een database of een plat bestandsysteem zijn. Zonder een speciale cliënt kan de data hierin niet bekeken worden. Voor Subversion repositories is &kappname; een dergelijke cliënt.

werkkopie

  Een platte kopie van een repository in een lokaal bestandsysteem. Dit wordt gebruikt met een normale bestandsbeheerder, bestanden bewerken enzovoort. RCS-informatie kan bekeken worden met cliënten zoals &kappname;.

  Vergeet niet dat subversion niets weet over KIO, een werkkopie moet daarom op een plek staan waar het bereikt kan worden zonder een speciaal protocool, b.v. "fish://" of vergelijkbare zijn niet mogelijk.

WebDav

  WebDav is een protocool waarmee op afstand bestanden op een webserver veranderd kunnen worden. Subversion is een speciaal soort WebDAV voor toegang tot repositories via een webserver. Normaal is dit alleen lezen. Met speciale instellingen is een lees- en schrijfbare WebDAV mogelijk zodat toegang via een speciale browser mogelijk is. &kappname; is geen webdav-client, Maar Konqueror kan wel met "webdav://" protocool werken. Met &kappname; kan er gebladerd worden door de revisieboom van een repository (via "http://")

## &kappname; gebruiken

### De mogelijkheden van &kappname;.

&kappname; kan de volgende protocolen gebruiken om door repositories te bladeren:

http

  Standaard web browser protocool.

https

  Standaard versleutelde web browser protocool

(k)svn+http

  Standaard web browser protocool. kan gebruikt worden om konqueror automatisch &kappname; te laten starten.

(k)svn+https

  Standaard versleutelde web browser protocool. kan gebruikt worden om konqueror automatisch &kappname; te laten starten.

(k)svn+file

  Lokale repository protocool. kan gebruikt worden om konqueror automatisch &kappname; te laten starten.

(k)svn

  Subversions eigen server protocool.

(k)svn+ssh

  Subversion over ssh. Lees FAQ voor speciale details van dit protocol.

file

  Direct repository toegang. &kappname; controleert of het opgegeven pad een repository of een werkkopie is en opent het daarna in de juiste modus. voor subversion zijn file:///dir en /dir niet hetzelfde!

Deze lijst kan ook gebruikt worden voor de comandoregel.

### De eerste stappen met subversion en &kappname;

Dit hoofdstuk is voornamelijk voor beginners die nog niet erg bekend zijn met subversion en legt uit hoe subversion en/of RCS werken.

#### Een werkkopie maken

Werkkopiën MOETEN lokaal bereikbaar zijn. Subversion weet niets van pseudo filesystems zoals smb:// of fish://. &kappname; vertaalt sommige van deze systemen als dat mogelijk is (zoals system:/home) Maar dat is niet mogelijk over een netwerk.

Als eerste moet een werkkopie gemaakt worden van de repository. ga naar het volgende menu

Subversion Algemeen Repository uitchecken . In de volgende dialoog moet de URL van de gekozen repository ingevuld worden, bijvoorbeeld: http://localhost/repos/myproject. Submappen van een repository zijn ook mogelijk, b.v., http://localhost/repos/myproject/trunk of vergelijkbaar.

Kies en/of maak een lokale map, waar de werkkopie moet komen.

En tenslotte, de revisie die uitgecheckt moet worden. Meestal is dat "HEAD". Dit zorgt ervoor dat naar de laatst opgeslagen versie wordt gewezen.

Klik op "[OK]" en &kappname; maakt een nieuwe werkkopie en (als dat is aangevinkt) opent deze.

Wanneer een repository is geopend om te bekijken, kan een map gemarkeerd worden en ga dan naar het volgende menu Subversion Repository Huidige repositorypad uitchecken . En vul de dialoog in zoals boven beschreven. Alleen de gemarkeerde map zal worden uitgecheckt.

#### Vastleggen van lokale veranderingen

Markeer de items die vastgelegd (commit) moet worden en ga naar dan het volgende menu # Subversion Werkkopie Vastleggen

Indien geprobeerd wordt om te vastleggen (commit) terwijl geen item is geselecteerd, zal &kappname; de bovenste item van de geopende werkkopie gebruiken, b.v. het werkkopie-pad.

Deze opdracht is altijd recursief, dit betekent dat als een map wordt geselecteerd, &kappname; alle veranderde items in deze map zal versturen. Wanneer ingesteld wordt dat alle items eerst nagekeken moeten worden voordat ze verstuurd worden, dan zijn in het volgende dialoog alle te versturen items te zien. Daar kunt U items die U niet wil versturen deselecteren. In dat geval verstuurt &kappname; alle items apart. Of U kunt items selecteren zonder revisie selecteren en deze toevoegen en vastleggen (commit) (als ze niet gemarkeerd zijn om genegeerd te worden). Op deze manier is te zien of er nieuwere items zijn die U vergeten bent.

Voer een logbericht in en druk op "OK" en het verzenden start.

#### Werkkopie bijwerken

Dit brengt de lokale werkkopie in sync met de repository. U kunt &kappname; zo instellen dat &kappname; bij het openen van een werkkopie controleert op nieuwere/veranderde items in de repository. Dit wordt in de achtergrond uitgevoerd terwijl er gewoon gewerkt kan worden met &kappname;. Of start de controle met Subversion Werkkopie Controleren voor updates .

Wanneer dit is uitgevoerd, zijn items met een nieuwere versie of mappen met items die een nieuwere versie hebben gemarkeerd.

Om de wijzigingen op te halen, ga naar het volgende Subversion Werkkopie Bijwerken naar HEAD . Nu wordt de werkkopie bijgewerkt naar de laatste revisie. Indien een speciale revisie gewenst is, selecteer dan Subversion Werkkopie Bijwerken naar revisie... en kies de gewenste revisie in de volgende dialoog.

Indien geen item is geselecteerd, zal de hele werkkopie worden bijgewerkt, anders alleen recursief op de geselecteerde items.

#### Toevoegen aan en verwijderen van een werkkopie

Beide handelingen moet in twee stappen gedaan worden: voeg eerst toe of verwijder en leg dan vast (commit) naar repository. Voor het vastleggen (commit) kan het toevoegen of verwijderen nog ongedaan worden.

##### Items toevoegen

Een item toevoegen aan een werkkopie kan op drie verschillende manieren gedaan worden:

Selecteer de items zonder revisie en voeg deze toe

  Kopieer met konqueror of een ander programma naar de map met de werkkopie. Ga door de lijst, markeer het bestand en selecteer hem. Insert Subversion Werkkopie Geselecteerde bestanden/mappen toevoegen . Wanneer nieuwe mappen met alle subitems toegevoegd moet worden, ga naar &Ctrl;Insert Subversion Werkkopie Gemarkeerde bestanden/mappen recursief toevoegen .

Recursief controleren en toevoegen

  Er kan in de werkkopie gecontroleerd worden 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 worden alle gemarkeerde items aan de werkkopie toegevoegd, ongewenste items moeten eerst ongemarkeerd worden.

Slepen en loslaten

  Markeer in konqueror of een andere vergelijkbare bestandsbeheerder de gewenste items die toegevoegd moeten worden en versleep ze naar &kappname;. Laat ze los op de mappen in de geopende werkkopie en &kappname; 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 "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 kan gestart worden met &Ctrl;L waneer een of geen item in het overzicht is gemarkeerd. Af hankelijk van Uw instellingen (lees ) &kdesvn; haalt de log informatie startend bij head en toont het .

##### Het log display venster

Aan de linkerzijde is de lijst met logentries te zien die &kdesvn; ophaalde . Het logbericht is beperkt tot een regel . Wanneer een logentrie wordt gekozen is het volledige logbericht is 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 boven het venster kan een andere bereik (range) voor de logs gekozen worden.

Dit bereik wordt zonder vooringestelde grenzen verstuurd, denk dus goed na bij grote repositories.

De knoppen onder het venster werken altijd op het gekozen log item, maar niet op geselecteerde items in de lijst met veranderingen. Dus wanneer het volgende commando "`Vorige diff`" gekozen word, 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 On all listentries (beide lijsten)kan een contekstmenu geopend worden voor extra mogelijkheden. In de linker lijst is dit "Versie voor de linkerkant van diff" (dwz., begin revisie) en "Versie voor de rechterkant van diff" (dwz., 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 kan gedaan worden met &konqi; ,&krus; of vergelijkbare bestandsbeheerders: Open een URL met een protocool zoals beschreven in (Alle varianten die starten met "k") en zij zullen de inhoud tonen. Hierdoor kunnen eenvoudige opdrachten zoals kopieren, verplaatsen en verwijderen uitgevoerd worden. Wanneer het volgende filter "?rev=<xxx>" wordt ingesteld, zijn alleen de gegevens van een specifiek revisie te zien. De syntax van een revisie-filter wordt beschreven in , lees meer over KIO::ksvn in

Alle opdrachten behalve "Kopieren" kunnen alleen uitgevoerd worden in de revisie HEAD.

#### Terugplaatsen van verwijderde items

Het terugplaatsen van verwijderde items in subversion is het kopieeren van items uit een gekozen revisie. Wanneer U dus van plan bent om items terug te plaatsen, kijk naar de revisie voordat het item werdt verwijderd. Ga naar Subversion Repository Selecteer revisie om te bladeren en kies de gewenste revisie. &kappname; toont nu inhoud hiervan. Markeer het de items die teruggezet moeten worden en ga naar C Subversion Algemeen Kopieren . 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 kopieren start. Ga na het succesvol kopieeren terug naar de HEAD revisie en het teruggeplaatste item zou tezien moeten zijn.

#### Importeren van mappen

Vanwege beperkingen van subversion zelf, kunnen alleen mappen en geen losse bestanden geïmporteerd worden.

##### Slepen en loslaten

Markeer in een bestandsbeheerder de map die geïmporteerd moet worden en sleep het naar de map in &kappname; waar U het wilt importeren.

##### Markeer een map die geïmporteerd moet worden in de bestandsbeheerder

Markeer de map waar naar toe een nieuwe map geïmporteerd moet worden. 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 samengevoegd (merge) moet worden 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 de interne diff, subversion danwel een extern samenvoeg-programma zoals kdiff3 gebruikt wordt. Het doel moet ALTIJD een lokaal bestand of map zijn. Er mag gewisseld worden 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 verwijderen bij gewijzigd/niet in versiebeheer

  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.

##### Extern samenvoegprogramma:

Lees voor de details hoe een externe (merge) samenvoegprogramma ingesteld moet worden. &kappname; geeft via de commandoregel opdrachten. Eerst wordt het volgende uitgevoerd:

1. 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 ja is, dan is het een drievoudig samenvoegen, anders is het een eenvoudig samenvoegen van bron naar doel. Als bron2 leeggelaten is, is het ook een eenvoudig samenvoegen (merge).

2. Maak een export naar een tijdelijke map. Alleen de start-revisie als bron1 als het simpel samenvoegen (merge) is, anders beide bronnen met hun revisies. Neem de inhoud van een Als het item geen map is maar een bestand, neem dan de inhoud van een aangewezen revisie.

3. Maakt de aanroep naar het gewenste externe (merge) samenvoeg-programma zoals ingesteld in de Instellingen. De foutmeldingen worden getoond in een log-venster zodat te zien is 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, wordt de export uitgevoerd als een platte export. Wees voorzichtig: wanneer dit wordt gedaan met werkkopiën, worden externals NIET geëxporteerd.

#### Konflicten oplossen

&kappname; heeft zelf geen module om konflicten op te lossen maar er kan een extern programma gebruikt worden vanuit &kappname;. In is een beschrijving hoe dit ingesteld kan worden.

Wanneer een item de status heeft van "konflict" ( er is dan een rood kruis te zien bij zulke items) dan kan het volgende gekozen worden Subversion Werkkopie Konflict oplossen . of vanuit het contextmenu konflict oplossen (alleen bij items met een konflict) &kappname; Nu start het programma dat door U is geinstalleerd (of het standaard programma). Na dit opgelost te hebben, kan dit item als opgelost gemarkeerd worden (Subversion Werkkopie Markeer als opgelost) , anders kunnen de veranderingen niet vastgelegd worden.

### Eigenschappen van &kappname; instellen

#### Bugtracker integratie

Het TortoiseSVN project ontwierp een mooi systeem om bugtracker te integreren in het subversion GUI. Op dit moment ondersteund &kappname; geen extra velden in het vastleg vak (dit zal later volgen) en begrijpt alleen de volgende eigenschappen:

##### Bugtracker Integratie Eigenschappen

Eigenschap | Omschrijving | Voorbeeld
--- | --- | ---
bugtraq:url | Dit is het url naar de bugtracker. Het moet het woord %BUGID% bevatten. | http://kdesvn.alwins-world.de/ticket/%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, wordt de eerste uitdrukking gebruikt om de regel met het bug ID te vinden (b.v "Issue #123" of "resolve 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 overgenomen en vertaald worden naar een url in de logoutput.

Twee uitdrukkingen:

    [Ii]ssue #?(\d+)(,? ?#(\d+))*
    (\d+)

Vergeet niet: let op de spaties na de (\d+)! Dit is een van de meest voorkomende fouten waarom deze expressie niet werkt!

Bij lokaal geopende repositories (b.v., file://-Protocool) en bij werkkopiën worden deze eigenschappen vanaf de geopende map omhoog gezocht totdat het gevonden is of het bovenste nivo van subversion is bereikt. In repositories die via een netwerk geopend zijn (alles behalve file:// protocool) wordt alleen de geopende map doorzocht.

Ondersteuning voor meervoudige sets van deze eigenschappen volgen mischien 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 gescan worden omdat er informatie verzameld moet worden dat subversion niet (en ik denk niet zal) geven. Omdat dit veel verkeer zal geven, gebruikt gebruikt revisie boom de interne logcache.

#### Benodigheden

De revisie boom is ggenereerd met dot. Dus moet voor een werkende revisie boom, het graphviz pakket zijn geinstalleerd.

### Interne log cache

&kappname; 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 genumberde bestand is een opslag voor een andere repository.

De databases kunnen groot worden! Het automatische updaten van de logcache kan daarom uitgeschakeld worden in de instellingen.

Ook kan eenvoudig een database verwijdert worden, 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 de repository wordt geopend, of een bijbehorende werkkopie.

#### Offline mode

Kdesvn kan werken zonder netwerk-toegang, dwz..,het kan zo ingesteld worden dat netwerk-toegang niet toegestaan is. Dit kan handig zijn wannneer er gewerkt wordt zonder een netwerk zoals met een notebook. In zulke gevallen haalt &kappname; altijd de logs vanuit de interne cache. Op dit moment (2008-06-23) is de log beperkt tot basisfuncties vanwege technische redenen, daarom kan de cached log (maar niet moet) 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 opgehaalt. Het ververst NIET de logcache (maar dit kan veranderen in een latere release).

### Betekenissen van de iconen

Items die niet in een "normale" staat zijn, kunnen gemarkeerd worden met een icoon.

Vergrendeld

  Dit item is vergrendeld. In de laatste kolum wordt de eigenaar van het slot genoemd. &kappname; kan zo ingesteld worden 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 vergrendeld worden voordat het bewerkt en weer samengevoegd kan worden. Totdat het vergrendeld is, houdt subversion het als "alleen lezen".

Updates

  Dit item of - als het een map is - een item daarin heeft een nieuwere versie in repository. Dit werkt alleen met subversion => lokaal of op afstand.

Veranderd

  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).

Conflict

  Dit item - als het een map is - een item daarin heeft conflicten met (die opgelost moeten worden) gekregen met de laatste update.

### &kappname; en wachtwoorden

&kappname;/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 &kappname;. Speciaal de achtergrond processen van...In particular the background processes of &kappname; 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" uitschakelen.

#### Wachtwoorden opslaan in KDE Portefeuillebeheer

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

#### Wachtwoorden opslaan in subversions eigen wachtwoord opslag

Dit word niet aanbevolen omdat het wachtwoord als leesbare tekst word opgeslage, niet geloofwaardig? Kijk dan maar in de banstanden in ~/.subversion/auth/svn.simple. Doe dit alleen als ook regelmatig andere clients dan &kappname; 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 &kappname; voor commit/move/copy, gebruik in dat geval KDE Portefeuillebeheer.

#### Interne wachtwoord cache

Het interne wachtwoord cache kan ingeschakeld worden, zodat het wachtwoord onthouden wordt zolang als &kappname; in het geheugen is. Het is dan niet nodig om een wachtwoord twee keer in te voeren als het biet in KDE Portefeuillebeheer is opgeslagen.

#### Het speciale geval svn+ssh

Waneer subversion via svn+ssh wordt gebruikt, dan kan wachtwoord opslag gebruikt worden via ssh en ssh-agent. Hiervoor is ssh-toegang tot de andere machine en en repository nodig. Wanneer hiervan gebruik wordt gemaakt dan moet gebruik gemaakt worden van de public key authentication van ssh, niet wachtwoord authentication. (In feite ssh geeft de voorkeur aan public key authentication). Hiervoor moet de pulic ssh-key in het doel worden geplaatst, dwz. het repository systeem. SSH wachtwoorden worden gebruikt door subversion wachtwoord opslag of KDE Portefeuillebeheer of de interne wachtwoord cache.

Als de vraag voor het wachtwoord van de ssh-key ongewenst is, dan kan de ssh-agent, met een keuze-menu gebruikt worden: Subversion Voeg de ssh identities toe aan ssh-agent Hier kan de ssh-key-wachtwoord voor de huidige sessie bewaart worden, zodat het niet nodig is mo iedere keer het wachtwoord in te vullen.

#### Wat &kdesvn; niet is

&kappname; heeft NIET de capaciteit om direct subversion repositories te wijzigen. Dit is niet omdat het niet is erin geprogrammeerd, dit is omdat behalve bij speciaal daarvoor ingestelde op webserver gebaseerde repositories, deze voorziening geen onderdeel van subversion zelf. Subversion is GEEN transferprotocool zoals FTP of SFTP. De data moet daarom eerst veranderd worden in een werkkopie. Het importeren van nieuwe bestanden of mappen via verslepen en loslaten is een ander idee.

## Konqueror, KIO, &kappname;

### Omschrijving

Vanaf versie 0.7.0 van &kappname; , zijn er enkele modules die enkele commando's direct in de menu's van konqueror integreren.

KIO protocools

  Zorgt voor het verwerken van de volgende protocools:

  - ksvn+http

  - ksvn+https

  - ksvn+file

  - ksvn+ssh

  - ksvn

  Dit geldt mischien ook voor "svn+..." maar vanaf kde 3.4, heeft kdesdk zijn eigen kleine svn-kio genaamd "svn+http"enz. Deze pakketten zijn zo georganiseerd - of zouden dat moeten zijn - dat "svn+..." als een extra pakket komt zodat het geïnstalleerd kan worden als kdesk het niet geïnstalleerd heeft.

  Deze protocools zijn alleen ontworpen voor repositories, niet voor werkkopieën. B.v. "ksvn+file:///<pad>" moet naar een ander startpunt wijzen dan het programma zelf of Kpart. Werkkopieën kunnen bekeken worden met konqueror.

  Om door een aangewezen revisie te kunnen bladeren, moet de volgende zoekopdracht gegeven worden "?rev=<revision>" naar het url.

Context menus

  &kappname; installeert context menu's voor konqueror. Deze zijn zichtbaar na een rechter muisklik in het het venster (alleen in het standaard venster, niet in KPart) , het is daarom mogelijk om de meeste akties direkt in konqueror uit te voeren ( of elke andere bestandsbeheerder dat konquerors context menu's kan gebruiken zoals krusader). Dit wordt gedaan via een call naar de commandoregel variant van &kappname;.

  Dit menu is altijd ingeschakeld in kde 3.5, Let daarom op wanneer U iets selecteerd. Anders geeft &kappname; een foutmelding.

#### Gebruik van KIO buiten konqueror - een voorbeeld

Elke op &kde; gebaseerde programma kan deze protocools gebruiken. Het is daarom mogelijk om alle verschilen tussen twee revisies te verkrijgen met kDiff3 zonder veel kennis.

##### Het verschil verkrijgen tussen twee revisies door gebruik van kDiff3 en KIO::ksvn

    kdiff3 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=423127 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=455064

Laat kdiff3 alle verschillen tussen twee revisie's tonen. Letop! Gebruik hiervan in &kappname;(diffen tussen twee revisie's) is VEEL sneller omdat het interne mechanisme van subversion wordt gebruikt.

### Informatie over KIO::ksvn voor programmeurs

U kunt dit gedeelte overslaan indien U niet geïnterreseerd bent in KIO-programmeren.

KIO::ksvn::special kent de volgende opdrachten, ze zijn in aanroep bijna gelijk gemaakt aan de huidige bestaande in KIO van kdesk dus, bijvoorbeeld, kdevelop kan het gebruiken als kdesk niet is geïnstalleerd in de vorm van kdesvn::KIO::svn.

#### Overzicht met commando's

##### Commando overzicht voor KIO::ksvn::special

Naam/commando | Numerieke id | Parameter lijst | Ingevoerd in 0.11.x?
--- | --- | --- | ---
Checkout | 1 | KURL repository, KURL target, int revnumber, QString revkind Het doel wordt NIET veranderd, b.v., maar de inhoud wordt uitgecheckt zonder een submap te maken! b.v. de bron is http://server/repos/project/trunk, en als het doel is /home/user/proj/ , dan zal de inhoud van trunk gekopieërd worden naar /home/user/proj/ en niet naar /home/user/proj/trunk/! | Yes
Update | 2 | KURL url,int revnum, QString revstring Indien revnum < 0 de revstring is ingevoegt. De opbouw van revstring is omschreven in Appendix. | Yes
Commit | 3 | KURL::List urls Geeft een overzicht met lokale URL's om vast te leggen. Vraagt naar een log. | Yes
Log | 4 | int startrevnumber,QString startrevstring,int endrevnumber,QString endrevstring,KURL::List Gebruik dit voorzichtig - dit kan veel data produceren. | Yes
Import | 5 | KURL targetrepository, KURL sourcepath | Yes
Add | 6 | KURL | Yes
Del | 7 | KURL::List | Yes
Revert | 8 | KURL::List Terugdraaien in KIO is altijd niet-recursief, geen vragen (aanroepend programma moet dat zelf doen) | Yes
Status | 9 | KURL item,bool checkRepos, bool recurse item - het item waarover informatie opgevraagd moet worden, checkRepos - controleert of er nieuwere versies zijn in de repository, recurse - controleert recursief of niet. | Yes
Mkdir | 10 | KURL::List | Yes
Resolve | 11 | KURL, bool recursive | Yes
Switch | 12 | KURL working_copy_path,KURL new_repository_url,bool recursive,int revnumber, QString revkind | Yes
Diff | 13 | URL uri1, KURL uri2, int r1, QString rstring1, int r2, QString rstring 2, bool recursive Voor verschillen tussen het repository bestand:/// en de werkkopie, de URL van de werkkopie kan zonder protocool ingesteld worden! | Yes

#### Return waarden

Return waarden mogen gegeven worden via metadata, lees apidoc voor de details.

##### Inhoud van metadata

Key | mogelijke waarde
--- | ---
path | Het pad van het item waarop een aktie is uitgevoerd, b.v. een gegeven url.
action | Numeric action type
kind | Soort item (meestal een map of een bestand)
mime_t | Subversion mimetype van item
content | De inhoud (subversion waarde)
prop | Eigenschappen (subversion waarde)
rev | De resulterende revisie of de revisie waarmee is gewerkt
string | Intern leesbare bericht.
loggedaction | Door subversion gedefineerde actie string voor item (A,M,D)
loggedcopyfrompath | Via welk pad gekopieerd? (mag leeg zijn)
loggedcopyfromrevision | Van welke revisie gekopieerd? (mag < 0)
loggedpath | Via welk enkel pad de logged actie worden weggeschreven. (pad is ingesteld naar het opgeroepen url)
diffresult | Een regel van een verschil output

## &kappname; via de commandoregel gebruiken

### Overzicht

Sommige subversion opdrachten kunnen via de commandoregel worden uitgevoerd, b.v. zoals een standaard commandoregel cliënt maar interactie met een gebruiker gebeurt via de KDE-UI. De standaard syntax is kdesvn exec <command> [parameter] <url>.

Als een enkele revisie van een enkele url is gewenst, dan kan dit als parameter ingesteld worden via

    svn://your-server/path-to-repository/item?rev=<your-rev>

Dit overschrijft de optie -r <rev>.

Een revisie kan opgegeven worden als een nummer of als HEAD of BASE of als een datum zoals {YYYY-MM-DD}.

### Overzicht van opdrachten

Indien in de volgende overzicht de parameter -r revision is gegeven, dan mag deze revisie worden ingesteld met <url>?rev=the-revision.

#### Subversion commando's

Commando | Betekenis | Geaccepteerde opties
--- | --- | ---
commit (or ci) | Legt veranderingen van een item vast (commit) naar de repository. |
log | Geeft de log van een item | -r startrevision:endrevision -l limit_display
cat | Toont de inhoud van een item. | -r revisie
copy (or cp) | Kopieert een item binnen een werkkopie of een repository. Als er geen doel is opgegeven, dan vraagt &kappname; ernaar. |
move (of mv, rename) | Verplaats/Herbenoem een item binnen een werkkopie of een repository. Als er geen doel is opgegeven, dan vraagt &kappname; ernaar. |
get | Verkrijg de inhoud van een item en slaat het op. | -r revisie -o <outputfile> (output is verplicht!)
blame (of annotate) | Aantekeningen bij bestand | -r startrevisie:eindrevisie
update | Een item in de werkkopie updaten | -r revisie
diff | Vergelijk (diff) twee revisie's van een item of vergelijk (diff) twee items bij bepaalde revisie's. | -r startrev:endrev
info | Gedetaileerde informatie over een item. | -r revisie
checkout (or co) | Checkout repository-pad naar een nieuw werkkopie-pad. Er wordt gevraagd naar het doelpad en de bron-revisie. |
checkoutto (or coto) | Checkout repository-pad naar een nieuw werkkopie-pad. Er wordt gevraagd naar het verschil van de bronpad en bron-revisie. |
export | Exporteerd de repository- of werkkopie-pad naar een map. Er wordt gevraagd naar het doelpad en de bron-revisie. |
exportto | Exporteerd repository- of werkkopie-path naar een map. Er wordt gevraagd naar het doelpad en de bron-revisie. |
delete (del, remove, rm) | verwijder de url(s) van de repository of de werkkopie. |
add | Voegt een url toe aan een werkkopie. De url moet aan een werkkopie toebehoren (het is niet een import!) |
revert (of undo) | Maakt de huidige veranderingen aan de werkkopie weer ongedaan. Mag alleen gebruikt worden bij werkkopieën! |
checknew (of addnew) | Controleert in een opgegeven url voor nieuwe, items zonder revisie en voegt ze dan (indien gewenst) toe aan de werkkopie. |
tree | Toont de revisie-boom van een item (alleen het eerste argument), Als de url met de parameter "?rev=xxx" wordt gegeven, dan start de revisie-boom vanaf hier. | -r startrev:endrev
lock | Vergrendel url(s), als de parameter "-f" wordt meegegeven worden bestaande vergrendelingen verwijderd. | -f
unlock | Ontgrendeld een url(s), Als de parameter "-f" wordt meegegeven worden ook vergrendelingen die niet in eigendom zijn ontgrendeld en niet bestaande vergrendelingen overgeslagen. | -f
help | Toon deze pagina |

#### Parameters voor subversion commando's

Parameter | Mogelijke waardes | toegestaan bij
--- | --- | ---
-r | revisie of startrev:endrev | alle behalve commit
-R | (geen) | alle behalve commit
-o | <bestandsnaam> | get
-l | <nummer> | log
-f |  | (un-)lock

#### Het "log" commando

Het log commando geeft een venster met de log van het gegeven url. Met subversion 1.2 of hoger accepteert het filters b.v. hoeveel items het moet vertonen.

In het venster kan men log-entries selecteren en de verschillen daartussen zien.

##### Toon de laatste 20 toevoeg (commit) logs

    kdesvn exec log -l 20 -r HEAD:1 myfile.c

Let op de volgorde van de revisie's: Men gaat van HEAD naar START voor de LAATSTE. Geef daarom revisie HEAD als startpunt, anders krijgt men de eerste 20 entries te zien.

#### Het "diff" commando

Men ziet de verschillen tussen revisie's van een item of tussen items in een dezelfde werkkopie of repository. Wanneer revisie's van een item worden vergeleken (diff) , dan mogen deze revisie's worden gegeven als -r STARTREV:ENDREV. Wanneer een item in een werkkopie zonder een revisie wordt vergeleken (gediff't), dan wordt het verschil met de repository getoond.

##### Toon het verschil tegen de repository, b.v. lokale veranderingen

    kdesvn exec diff myfile.c

##### Toont de verschillen tussen revisie's

    kdesvn exec diff -r 21:20 myfile.c

Wanneer twee items worden vergeleken (gediff't), dan mogen revisie's worden toegevoegd aan de url van de items. b.v.:

    http://server/path/item?rev=HEAD

##### Vergelijken (diffing) van twee gemarkeerde versie's

    kdesvn exec diff http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_2 http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_3

## Instellingen

Via het instellingenscherm kunnen de instellingen veranderd worden. Ze zijn ingedeeld in verschillende deelschermen.

### Algemeen

Formaat van de pictogrammen | Hoe groot (vierkant) moeten de iconen in de hoofdlijst zijn.
Bestandsinformatie tonen | Schakel deze optie in als u tekstballonnen wilt zien als u uw muis op een pictogram laat rusten.
Afbeeldingsweergave tonen | &kappname; toont een voorbeeld in de tekstballon als de muis op een pictogram rust (alleen bij lokale bestanden, niet bij repositories via een netwerk).
Items gemarkeerd met iconen | Items die niet in een "normale" staat zijn, kunnen gemarkeerd worden met een icoon. (lees ook )
Itemvolgorde is hoofdlettergevoelig | De volgorde in het hoofdvenster is wel of niet hoofdlettergevoelig, b.v., een "a" is niet gelijk aan "A".
Externe weergave | De standaard weergave wordt gebruikt bij dubbelklikken. Indien standaard ingesteld, gebruikt &kappname; het als de standaard aktie die is ingesteld voor de entry.
Maximum aantal logberichten in de history | Het aantal logberichten dat &kappname; moet onthouden.

### Instellingen van Subversion

Controleren voor updates wanneer een werkkopie geopend wordt | Wanneer een werkkopie wordt geopend, start onmiddelijk een controle voor updates in de achtergrond.

De log cache vullen bij het openen

Indien ingeschakeld, gaat &kappname; de logcache opnieuw vullen waneer een repository of een werkkopie wordt geopend repository als de url niet lokaal is (

    file://

)

Controleer of items de eigenschap \"svn:needs-lock\" hebben | Controleer bij werkkopie's of een item deze eigenschap heeft en toont in dat geval een speciaal icoontje ernaast. Dit inschakelen maakt het overzicht erg langzaam.
Bestandsdetails laden wanneer bestanden op afstand getoond worden | Indien ingeschakeld, haalt &kappname; meer gedetailleerde informatie over bestanden in de overzicht van de repositorie . Men kan dan vergrendelingen van anderen in het overzicht zien. Wees voorzichtig: dit inschakelen maakt de lijst ERG langzaam!
Item-informatie recursief opvragen | Wanneer "info" bij een map is ingeschakeld, zal informatie over alle items in deze map verzameld worden, kan erg langzaam zijn.
Genegeerde bestanden tonen | Toon items in subversion gemarkeerd om wel of niet genegeerd te worden.

Wachtwoorden opslaan voor verbindingen op afstand

Het opslaan van wachtwoorden is vaak een veiligheidsprobleem. Subversion bewaart zijn wachtwoorden in een plat bestand, dat wil zeggen wachtwoorden in leesbare tekst! Wees daarom voorzichtig met het inschakelen hiervan en lees daarom ook het volgende item. In dit item wordt alleen verteld dat wachtwoorden opslaan de standaard is, dit kan voor speciale doelen veranderd worden in het login venster.

Wachtwoord opslaan in de KDE-portefeuille

Bij het bewaren van wachtwoorden is het bestand met leesbare tekst een gat in de veiligheid. &kappname; kan de wachtwoorden opslaan en ook weer gebruiken in de versleutelde KDE-portefeuille in plaats van de normale plek (vanaf versie 0.12.0). Aan de andere kant kunnen andere subversion-cliënt's dit niet inlezen, dus moet bij het gebruik van programma's zoal svn-cmdline of rapidsvn ze toch opnieuw ingevoerd worden. Zolang subversion de opslag van wachtwoorden niet versleuteld is het mischien verstandiger om ze helemaal niet op te slaan.

Interne wachtwoord cache gebruiken | Een wachtwoord wordt niet definitief is opgelagen &kappname; zal het onthouden totdat &kappname; afsluit, het hoeft daarom niet bij iedere gebeurtenis opnieuw ingevoerd te worden. Deze cache is niet permanent, het wordt dus nergens opgeslagen.
Logbestanden houden node-veranderingen bij | Indien ingeschakeld, komen kopieerakties ook in de log.
Logs altijd een overzicht van gewijzigde bestanden laten inlezen | Het logcommando kan een overzcht van gewijzigde bestanden in de vastlegging (commit) opnemen. Dit is erg handig en meestal kost dit niet meer verkeer.
Items nakijken voor vastlegging | Wanneer toevoeging wordt uitgevoerd, kan &kappname; controleren wat te doen. B.V. zijn er items zonder revisie toegevoegd, toon veranderde items en legt daarna vast (commit). Dit kost afhankelijk van de boom meer of minder tijd.
Maximale hoeveelheid loggegevens wanneer de log vol is | Een "Volledige log" uitvoeren kan veel kosten, afhankelijk van de start-revisie. Dit kan begrenst worden tot een standaard maximum waarde. Indien "0", is het onbegrenst.

### DiffMerge instellingen

Vergelijking (diff) negeert inhoudstype

  Alleen interresant wanneer de diff is gemaakt met subversion zelf. Indien ingeschakelt, negeert subversions diff de inhoudstype van de items. Anders geeft het geen diffs van binaries.

Vergelijking (diff) in revisieboom is recursief

  Indien ingeschakelt, zijn vergelijkingen (diffs) in een revisieboom recursief zoals in alle andere gevallen. Anders worden alleen worden alleen de veranderde items in die map getoond. Hoe dat wordt gedaan is afhankelijk van hoe de vergelijkingen (diff) worden gemaakt (door subversion zelf of door een extern programma).

Verschil negeert spatie-wijzigingen

  Negeert veranderingen in de hoeveelheid spatie's (optie "-b" naar diff)

Diff negeert alle spatie's

  Negeer alle spatie's (optie "-w" naar diff)

#### Verschilweergave

Bepaalt op welke manier de inhoud van een diff word getoond. De standaard is "kompare" Indien "Externe weergave" is ingeschakeld, moet een geldig programma in "Externe verschilweergave:" worden ingevuld. Alleen als de interne weergave wordt gebruikt, zijn er verschillen in eigenschappen te zijn.

#### Externe diff-weergave gebruiken

Bepaalt wat &kappname; gebruikt voor de externe weergave en hoe het wordt aangeroepen. Dit kan op drie manieren:

<program> <parameter>

  De vergelijking wordt gemaakt door subversion en direct aan de standaard input van het externe programma doorgegeven (voordeel: geen tijdelijke bestanden nodig)

<program> <parameter> %f

  De vergelijking wordt gemaakt door subversion, bewaart in een tijdelijk bestand, waarbij de parameter "%f" wordt vervangen door het bestandsnaam. Dit kan worden gebruikt bij een eenvoudige aanroep naar less of een textviewer.

<program> <parameter> %1 %2

  &kappname; laat een extern programma de vergelijking uitvoeren. %1 en %2 worden vervangen door de verlangde waarden (bestandsnamen of mappen). &kappname; bewaart de inhoud die vergeleken moet worden in een tijdelijke omgeving (indien mappen een "export" uitvoeren, indien een enkel bestand een "cat" uitvoeren) wanneer nodig en ruimt op na het sluiten van het externe programma of het zichzelf sluiten.

Extern samenvoegprogramma gebruiken

  Indien in het (merge) samenvoeg dialoog "Externe samenvoeging gebruiken, niet die van Subversion" is wel of niet aangevinkt.

#### Externe samenvoeg programma

Stelt het programma en de mogelijkheden daarvan in voor gebruik wanneer de ingebouwde mogelijkheden van subversion ongewenst zijn. De standaard is kdiff3 %s1 %s2 %t. De volgorde van de vervangende variabelen is niet belangrijk, en kunnen meer keren voorkomen, b.v. zoals kdiff3 -o %t %s1 %s2 %t. Dit is alleen getest met "meld" en "kdiff3". Bedenk dat externe programma's meestal geen weet hebben van subversion ignore-parameters en dat daarom veel meer te zien is dan verwacht.

##### Vervangings-variabelen voor het externe (merge) samenvoeg programma

%s1

  Vervang door bron nummer een.

%s2

  Vervang door bron nummer twee. Als deze leeg is of gelijk is aan de bron een en de start en eind revisie zijn dezelfde, dan wordt deze variabele overgeslagen. Wees daarom voorzichtig met het opstellen van commandoregel zoals xxdiff --title1 %s1 --title2 %s2 %s1 %s2 %t.

%t

  Vervang door doel.

#### Programma voor het oplossen van konflikten

Een extern programma zoals `kdiff3` kan gebruikt worden voor het oplossen van konflikten, de standaard keuze is kdiff3 %o %m %n -o %t.

##### Parameters aanpassen voor het extern konflikt oplossen

Tussen haakjes na elke beschrijving een voorbeeld hoe subversion de bestanden oproept. Deze keuzes zijn ontworpen voor kdiff3, omdat op dit moment (2008-02-07) dit de enige manier is die ik ken om alle parameters die nodig zijn om een konflict goed op te lossen.

%o or %l

  Oude (lokale,links) versie. Dit betekent dat de lagere revisienummer, is bijvoorbeeld het startpunt van de veranderingen waar een konflikt begint. (foo.cc.r2)

%m or %w

  Mijn(werkende) versie van het bestand, byv. waar iets verrandert is tegenover de oude versie. (foo.cc.mine)

%n or %r

  Nieuwe (remote, rechts) versie van het bestand, byv. de versie die een ander heeft gemaakt. (foo.cc.r3)

%t

  Doel naam, byv. de orginele naam. Voor kdiff3 (als voorbeeld) moet dit achter "-o" parameter (= output file). (foo.cc)

### KIO / commandoregel

Log tonen na het uitvoeren van een commando

  Moet een dialoog geopend worden met de log van de laatste via de commandoregel of via konqueror gegeven subversion-commando.

Minimaal aantal logregels tonen:

  Indien "Toon log..." is ingeschakeld, wat is het minimum aantal regels dat dit dialoog moet tonen. Zodat dit zo ingesteld kan worden dat alleen interresante output te zien is (toevoeglog enzovoorts).

Contextmenu niet weergeven in Konqueror

  Indien ingeschakelt, wordt er geen menu-item voor &kappname; aangemaakt in konqueror. Werkt alleen in KDE 3.5.

KIO-handelingen met het gebruik van standaard logberichten

  Wanneer een repository bewerkt wordt via het &kappname; KIO protocool vanuit konqueror (b.v. het "ksvn+..." protocool) met grote operaties zoals het verplaatsen of kopieren van mappen, moet &kappname; dan vragen naar een logbericht voor elk item. Dit is normaal gedrag van konqueror. Wanneer dit is ingeschakeld, zal de KIO-implementatie van &kappname; niet vragen naar een logbericht maar een standaard logbericht meegeven. Dit gebeurt niet bij akties vanuit het &kappname;-menu voor konqueror maar alleen bij het kopieren/ verplaatsen en het aanmaken of weer verwijderen van mappen in konqueror of een andere bestandsmanager met een KIO-url.

Standaard berichten

  Het bericht dat kdesvn-kio zou moeten geven bij bewerkingen vanuit konqueror wanneer bovenstaande vlag is gezet. Standaard is "Revision made with kdesvn KIO."

## De inhoud van de menu's

### Het &kappname; hoofdvenster

#### Het menu Bestand

&Ctrl;O Bestand Openen

  Opent een lokale werkkopie of een repository die al is uitgecheckt.

&Ctrl;W Bestand Sluiten

  Sluit de huidige geopende repository of werkkopie.

&Ctrl;Q Bestand Afsluiten

  Afsluiten van &kappname;

#### Het menu Bladwijzers

Lees de helppagina's van konqueror.

#### Het menu Subversion

&Ctrl;U Subversion Weergave vernieuwen

  Vernieuw de huidige weergave van alle getoonde items. Dit toont de huidige status van alle gevraagde items.

##### Algemene subversion aktie's

&Ctrl;L Subversion Algemeen Volledige log

  Toont de levenslange log van het geselecteerde item. Wees voorzichtig, deze lijst kan erg lang zijn!

&Ctrl; &Shift;L Subversion Algemeen Log...

  Toont een log, waarbij een revisie/datum bereik ingesteld kan worden.

I Subversion Algemeen Details

  Toont gedetaileerde informatie over het geselecteerde item(s)

Subversion Algemeen Blame

  Maakt een lijst met aantekeningen (annotatie's) over alle vastleggingen (commit). Dit kan veel tijd kosten!

Subversion Algemeen Blame bereik

  Stelt het bereik in voor de vastleggingen (commit) van een bestand.

Subversion Algemeen Cat HEAD

  Toont de inhoud van de laatste vastgelegde (commit) versie van het item. (Dit kan verschillen met de werkkopie indien er gewerkt is aan de werkkopie!)

F2 Subversion Algemeen Verplaatsen

  Verplaats of hernoem een item in een werkkopie of in de repository.

F5 Subversion Algemeen Kopiëren

  Kopieer een item in werkkopie of in een repository

Del Subversion Algemeen Gemarkeerde bestanden/mappen verwijderen

  Verwijdert de geselecteerde items. Indien men in een werkkopie werkt, moeten de verwijderingen daarna vastgelegd worden.

Subversion Algemeen Nieuwe map

  Maakt een nieuwe map.

Subversion Algemeen Mappen importeren in huidige map

  Selecteer de mappen die U wilt importeren naar de huidige geselecteerde map.

Subversion Algemeen Repository uitchecken

  Maakt een nieuwe werkkopie van een repository.

Subversion Algemeen Repository exporteren

  Exporteert een repository naar een bestands-systeem, maakt b.v. een schone boom van mappen zonder de subversion-informatie.

Subversion Algemeen Huidige items vergrendelen

  Markeer de huidige items als vergrendeld. Lees voor het gebruik het subversion handboek!

Subversion Algemeen Huidige items ontgrendelen

  Ontgrendel de huidige items. Lees voor het gebruik het subversion handboek!

##### Werkkopie

&Ctrl;u Subversion Werkkopie Bijwerken naar HEAD

  De werkkopie bijwerken naar de HEAD van de repository.

Subversion Werkkopie Bijwerken naar revisie...

  De werkkopie bijwerken naar een bepaalde revisie van de repository.

# Subversion Werkkopie Vastleggen

  Legt de veranderingen van de gemarkeerde items in de werkkopie vast (commit) naar de repository.

&Ctrl;D Subversion Werkkopie Verschil bepalen lokale wijzigingen

  Toont de lokale verschillen als een diff-output (zonder toegang tot een netwerk). Dit is alleen het verschil tegen de laatste bijgewerkte stand van de werkkopie, niet tegen de versie in de repository.

&Ctrl;H Subversion Werkkopie Verschil bepalen ten opzichte van HEAD

  Diff's de huidige werkkopie tegen HEAD van de repository.

P Subversion Werkkopie Eigenschappen

  Tonen/Bewerken van eigenschappen van het huidige item.

Insert Subversion Werkkopie Gemarkeerde bestanden/mappen toevoegen

  Leg de gemarkeerde bestanden/mappen vast (commit) aan revisie controle.

Subversion Werkkopie Huidige veranderingen terugdraaien

  Maak de veranderingen in de werkkopie ongedaan naar de laatste bijgewerkte toestand.

Subversion Werkkopie Recursief oplossen

  Markeer de in conflict zijnde items als "niet in conflict" en verwijder de daarbijhorende bestanden.

Subversion Werkkopie Twee revisies samenvoegen

  Voeg twee revisies van een item samen (merge )in de werkkopie.

Subversion Werkkopie Huidige item negeren/negeren opheffen

  Bewerk de eigenschap van de bovenliggende map van dit item zo dat dit item gemarkeerd wordt als negeren of juist weer van de negeer-lijst afhalen.

Subversion Werkkopie Opruimen

  Ruim de werkkopie op en verwijder de aanwezig zijnde (commit-)vergrendelingen.

Subversion Werkkopie Repository switchen

  Verandert de hoofdmap van de huidige werkkopie. "relocate" Dit wordt op dit moment niet ondersteund.

Subversion Werkkopie Repository switchen

  Opent de repositoryboom van een andere werkkopie.

##### Repository

Subversion Repository Huidige repositorypad uitchecken

  Maakt een werkkopie van de huidige geselecteerde item als het een map is.

Subversion Repository Huidige repositorypad exporteren

  Maakt een schone kopie op het lokale bestandsysteem van de geselecteerde item als het een map is.

#### Het Help Menu

&help.menu.documentation;

#### De subversion werkbalk

Openen

  Open een werkkopie

## Vraag en antwoord

Wanneer het (k)svn+ssh protocol gebruikt wordt, wordt telkens opnieuw naar het wachtwoord gevraagt, waarom ?

Het "probleem" is ssh zelf. Subversion maakt voor elk verzonden commando een tunnel naar de repository. En elke tunnel is een nieuw ssh- verbinding. En elke ssh moet geïndentificeerd worden. Dit kan verbeteren wanneer Uw lokale publieke identiteit naar de host de repository bevat. Indien Uw publieke indentiteit een wachtwoord heeft, zal het aan ssh-agent worden gevraagd (wanneer ssh-agent is geïnstalleerd).

Wanneer een ssh-agent wordt gestart voordat &kappname; is gestart, voeg dan Uw indentiteit toe aan de cache van deze ssh-agent, &kappname; zal dit niet veranderen vanwege de veiligheid, en vraagt daarom steeds opnieuw naar Uw wachtwoord. (Lees ook Manpage van ssh-add)

Het wachtwoord prompt voor (k)svn+ssh komt in de terminal wanneer &kappname; vanuit de terminal wordt gestart, hoe kan ik dit uitschakelen?

Het mag niet uitgeschakeld worden. Dit is een eigenschap van ssh-agent zelf, wanneer het merkt dat het in een terminal is gestart, dan vraagt het voor een wachtwoord in een terminal en niet in een X-dialoog zoals kdesvnaskpass. (Lees ook Manpage van ssh-add).

Hoe kan ik een andere poort of een andere gebruikersnaam gebruiken bij het svn+ssh protocoll?

Een entry in. $HOME/.ssh/config kan gebruikt worden, lees Ssh config manpage voor de juiste syntax.

Bij controles voor nieuwere versies, toont &kappname; iets niet terwijl ik weet dat er nieuwere items zijn!

Updates worden alleen getoond wanneer de bestandserver ook subversion 1.2 is. B.v. wanneer het lijkt dat repository subversion <1.2 is. Er zijn geen plannen dat &kappname; zelf recursief de controle uitvoert - dit is niet zinvol. Vraag of de repository een modernere versie van subversion kan krijgen.

Wanneer &kappname; wordt gestart, toont het de dialoog "Kon de KPart niet vinden" en toont vervolgens een leeg venster, waarom?

Er kunnen vele redenen zijn waarom het programma niet geladen kon worden. Dit gebeurt meestal wanneer men de subversion-bibiotheken zelf compileert. Lees in dat geval de beschrijving van de issue entry.

Het volgende probleem kan zijn dat bij het compileren de libsuffix voor 64-Bit systemen niet is meegegeven. De onderdelen worden dan geïnstalleerd in $PREFIX/lib inplaats van $PREFIX/lib64. Geef daarom -DLIB_SUFFIX=64 als paramter naar cmake.

Als het probleem nog niet is opgelost, probeer dan het volgende in een terminal:

      export LD_PRELOAD=/usr/lib/kde4/libkdesvnpart.so
      kdesvn
      unset LD_PRELOAD

(/usr/lib/kde4 kan op Uw systeem anders zijn, controleer daarom de plaats waar het is geinstalleerd)

Met behulp van veel output is te zien waarom libkdesvnpart.so niet geladen kan worden, dit kan helpen om het probleem op te lossen.

## Opbouw voor revisies

Revisies kunnen in dezelfde vorm gegeven worden als bij de standaard svn - client. Dit betekent: een nummer, trefwoord of een datum.

Nummers

  Een nummer gelijk of groter dan -1. -1 betekend "unspecified revision", 0 is het begin. Normaal is het beter als deze nummers niet gebruikt worden (de meeste opdrachten zullen hiermee mislukken).

Trefwoord

  Een van

  - HEAD

  - BASE

  - COMMITED

  - PREV

  - START

  - WORKING

  De trefwoorden zijn hoofdlettergevoelig! b.v. head is niet hetzelfde als HEAD.

Datum

  De datum moet in volgorde {YYYY-MM-DD}. Het moet echt MM of DD - b.v. 2005-1-1 moet worden geschreven als {2005-01-01}.

Een gewenst revisie toevoegen naar url moet altijd gedaan worden via "?rev=<revision>.

## Meer informatie

### Bugs melden / terugkoppeling

Bugmeldingen en wensen (in het Engels)kunnen gezonden worden naar kdesvn-bugs@alwins-world.de, vragen over het gebruik of andere terugkoppelingen naar kdesvn@alwins-world.de.

Een overzicht van de mailinglijsten voor &kappname; zijn te verkrijgen op mailinglijsten overzicht.

### Dankbetuigingen en licenties

Programma copyright 2005-2006 Rajko Albrecht kdesvn@alwins-world.de

Hartelijk dank aan de volgende personen:

- Andreas Richter ar@oszine.de - voor de overzetting naar qt4 van svnqt

- Michael Biebl biebl@teco.edu - voor de vele hulp, ideeën en aanwijzingen.

- Bram Schoenmakers bramschoenmakers@kde.nl - voor de kde-specific aanwijzingen, Nederlandse vertaling van de menu's, opschonen van mijn code.

- Ronald Stroethoff stroet43@zonnet.nl - voor de Nederlandse vertaling van deze help-pagina's.

Hartelijk dank aan alle andere vertalers (Ik had nooit gedacht dat ik zo snel zoveel vertalingen zou krijgen!) en voor alle positieve en negatieve terugkoppelingen. Dat heeft veel geholpen.

Indien U Uw eigen vertaling van &kappname; wilt en hulp wenst, lees meer op de homepage van &kappname; of vraag op kdesvn-i10n@alwins-world.de mailinglist.

Documentatie copyright 2005-2006 Rajko Albrecht kdesvn@alwins-world.de

&underFDL;

&underGPL;

## Installatie

### Hoe U &kappname; kunt verkrijgen

&kappname; kan worden gevonden op de &kappname; download area.

Op de laatste repository versie is te zien wat de laatste ontwikkelingen zijn.

De homepage van het project is http://kdesvn.alwins-world.de/

### Benodigde bibliotheken

Subversion 1.3 of moderner en &kde; 4.1.x of moderner. Subversion ouder dan 1.3 wordt NIET ondersteund!

Subversion kan worden gevonden op its homepage , maar Uw distributeur heeft waarschijnlijk pakketten voor Uw systeem en/of ditributie.

Een lijst met wijzigingen kan gevonden worden op http://kdesvn.alwins-world.de/browser/trunk/ChangeLog.

### Compileren en installeren

&kappname; heeft voor compilatie cmake 2.4 of moderner nodig, automake wordt niet ondersteund. Voer de volgende stappen uit met naar naar keuze een tar-archief van een distributie of een tar-archief vanuit het repository . Pak het archief uit of checkout / exporteer een kopie van repository en ga naar de resulterende bron-map.

    % mkdir build
    % cd build
    % cmake ../ -DCMAKE_INSTALL_PREFIX=`kde-config --prefix` -DCMAKE_BUILD_TYPE=Release
    % make
    % make install

&documentation.index;