tdesvn"> konqueror"> krusader"> ]> Het &kappname; handboek Rajko Albrecht
ral@alwins-world.de
2005 2006 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 tdesvn 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 tdesvn.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 TDEIO, 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 wanneer 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. 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 TDEIO::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: 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). 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. 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. 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://tdesvn.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.
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.
Konqueror, TDEIO, &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. TDEIO 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 tdesdk zijn eigen kleine svn-tdeio 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 TDEIO 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 TDEIO::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 TDEIO::ksvn voor programmeurs U kunt dit gedeelte overslaan indien U niet geïnterreseerd bent in TDEIO-programmeren. TDEIO::ksvn::special kent de volgende opdrachten, ze zijn in aanroep bijna gelijk gemaakt aan de huidige bestaande in TDEIO van kdesk dus, bijvoorbeeld, tdevelop kan het gebruiken als kdesk niet is geïnstalleerd in de vorm van tdesvn::TDEIO::svn. Overzicht met commando's Commando overzicht voor TDEIO::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 TDEIO 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 tdesvn 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 tdesvn 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 tdesvn exec diff myfile.c Toont de verschillen tussen revisie's tdesvn 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 tdesvn exec diff http://www.alwins-world.de/repos/tdesvn/tags/rel_0_6_2 http://www.alwins-world.de/repos/tdesvn/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. 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! Iteminformatie 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. 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. TDEIO / 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. TDEIO-handelingen met het gebruik van standaard logberichten Wanneer een repository bewerkt wordt via het &kappname; TDEIO 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 TDEIO-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 TDEIO-url. Standaard berichten Het bericht dat tdesvn-tdeio zou moeten geven bij bewerkingen vanuit konqueror wanneer bovenstaande vlag is gezet. Standaard is "Revision made with tdesvn TDEIO." 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 <guimenu>Bladwijzers</guimenu> Lees de helppagina's van konqueror. Het menu <guimenu>Subversion</guimenu> &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 <guimenu>Help</guimenu> 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) Steamedpenguin heeft een mooie beschrijving hoe &kappname; te gebruiken met ssh en keychain. 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 tdesvnaskpass. (Lees ook Manpage van ssh-add). 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/trinity/tdesvnpart.so tdesvn unset LD_PRELOAD (/usr/lib/trinity kan op Uw systeem anders zijn, controleer daarom de plaats waar het is geïnstalleerd) Met behulp van veel output is te zien waarom tdesvnpart.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 - cliënt. 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 tdesvn-bugs@alwins-world.de, vragen over het gebruik of andere terugkoppelingen naar tdesvn@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 tdesvn@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 tdesvn-i10n@alwins-world.de mailinglist. Documentatie copyright 2005-2006 Rajko Albrecht tdesvn@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://tdesvn.alwins-world.de/ Benodigde bibliotheken Subversion 1.2 of moderner en &kde; 3.4.x of moderner. Subversion ouder dan 1.2 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://tdesvn.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=`tde-config --prefix` -DCMAKE_BUILD_TYPE=Release % make % make install &documentation.index;