Subversion kommandoer

(Last Updated On: 17. marts 2022)

Rul tilbage til tidligere version

Gå tilbage til en tidligere revision (erstat 3523 med dit revisionsnr):

Fortryd en handling

Med svn revert  can du fortryde ændringer til filer eller handlinger foretaget lokalt.

Dette eksempel viser hvordan du fortryder svn add  på en fil:

Jeg kom på et tidspunkt til at køre svn add * i et nyt projekt, og kunne se at det faktisk også tilføjer alle de filer jeg ellers har bedt subversion om at ignorere:

Jeg reddede den fejl med:

Se log for en fil

Vis commit loggen for en specifik fil (erstat filnavn med stien til din fil)

Vis commit loggen for en fil i en bestemt periode:

Vær opmærksom på at subversion formoder 00:00:00 hvis du ikke angiver tid. Du får heller ikke nødvendigvis commits ud i rækkefølge. Brug af dato er generelt upræcist jvf. apache.org. Men output inkluderer revisionsnumre som du herefter kan bruge til at få et mere præcist output: 

Seneste revisionsnummer

Hent seneste revisionsnummer i repo uden at opdatere din kopi:

Ignorer filer og foldere

Ignorer filer og foldere der ikke skal versioneres:

Herefter kan du redigere en liste over filer der skal ignoreres. Den vil naturligvis være tom den første gang.

Hvis du får denne fejl, er det fordi du mangler at fortælle subversion hvilken editor du vil benytte:

Dette fikses ved at sætte SVN_EDITOR … i eksemplet her sættes den til ‘vim’. Det kunne også være ‘vi’ eller ’emacs’. Prøv derefter igen… hvis det ikke virker, så prøv VISUAL eller EDITOR.

Vis indholdet af ignore listen:

Vis effekten af ignore listen:

Forhåndsvisning af opdatering

Hvis du vil se hvilke opdateringer der er tilgængelige, uden at foretage en egentlig opdatering:

Nedenstående viser alle ændringer i filer der er forskellige fra dem der ligger i repo:

Du kan med fordel læse ændringerne ud i en fil, for gennemgang:

Ændre rettigheder på filer i subversion

Hvis et shell script oprindeligt blev føjet til subversion uden x sat (executable), og dette senere er tilføjet, vil du opleve at ændringen ikke slår igennem. I stedet forsvinder denne rettighed hver eneste gang filen opdateres med en ny version fra dit repo… og det er mildest talt irriterende. Det skyldes at subversion kun registrerer rettigheder første gang filen tilføjes. Så hvis dette skal ændres senere, må det gøres manuelt.

Jeg løste det ved hjælp af find og svn’s propset:

Først findes alle filer der ender på .bash eller .sh. og har executable rettighed på gruppen (-perm -g=x). Dernæst afvikles subversions executable kommando for at registrere ændringen på filen.

Du kan bagefter se ændringen med svn diff :

Når du opdaterer en fil der har fået ændret sine egenskaber, vil du opdage at der faktisk er 2 kolonner der kan indeholde en kode:

I eksemplet herover er file1.sh’s indhold opdateret, mens file2.sh har fået en eller flere egenskaber opdateret, og file3.sh har fået opdateret både indhold og egenskaber.

Tilføje og fjerne mapper

Du kan tilføje og fjerne mapper direkte i dit repository: