Selv om de ikke blir så ofte brukt som kommandoene tidligere nevnt i dette kapitlet, vil du innimellom trenge disse kommandoene.
Når Subversion modifiserer arbeidskopien din (eller noe som
helst i .svn), prøver programmet å gjøre
det på en så trygg måte som mulig.
Før arbeidskopien blir forandret, skriver Subversion det som
skal utføres til en loggfil.
Deretter kjører programmet kommandoene i loggfila for å utføre
forandringen det blir bedt om mens det setter opp en lås på den
relevante delen av arbeidskopien mens det arbeider – dette er
for å hindre andre Subversionklienter fra å aksessere
arbeidskopien midt under forandringer.
Til slutt fjerner Subversion loggfila.
Arkitekturmessig er dette likt et journalfilsystem.
Hvis en Subversionoperasjon blir avbrutt (hvis prosessen blir
drept eller maskinen krasjer, for eksempel), blir loggfila
liggende på disken.
Ved å utføre kommandoene i loggfila en gang til kan Subversion
fullføre den tidligere påbegynte operasjonen, og arbeidskopien
din kan sette seg tilbake til en fullverdig tilstand.
Og dette er nøyaktig hva svn cleanup
gjør:
Den leter gjennom arbeidskopien og kjører alle etterlatte logger
mens den fjerner låser i arbeidskopien under prosessen.
Hvis Subversion noen ganger forteller deg at en del av
arbeidskopien er “låst”
(locked), er dette kommandoen du
bør kjøre.
I tillegg vil svn status vise en
L ved siden av låste elementer:
$ svn status L somedir M somedir/foo.c $ svn cleanup $ svn status M somedir/foo.c
Du må ikke forveksle disse arbeidskopilåsene med de vanlige låsene som Subversionbrukere oppretter når de bruker “lås-modifiser-lås opp”-versjonskontrollmodellen; se Three meanings of “lock” for forklaring på dette.
svn import-kommandoen er en rask måte å kopiere et uversjonert filtre inn i et depot og lage mellomliggende kataloger der det er nødvendig.
$ svnadmin create /usr/local/svn/nyttdepot
$ svn import mitt_tre file:///usr/local/svn/nyttdepot/et/prosjekt \
-m "Innledende import"
Legger til mitt_tre/foo.c
Legger til mitt_tre/bar.c
Legger til mitt_tre/subdir
Legger til mitt_tre/subdir/quux.h
La inn revisjon 1.
Det forrige eksempelet kopierte innholdet av katalogen
mitt_tre under katalogen
etellerannet/prosjekt i depotet:
$ svn list file:///usr/local/svn/nyttdepot/etellerannet/prosjekt bar.c foo.c subdir/
Legg merke til at etter importen er fullført, blir det originale treet ikke konvertert til en arbeidskopi. For å starte arbeidet, trenger du fortsatt å kjøre svn checkout for å få en fersk arbeidskopi av treet.