Skille mellom status og oppdatering

I Subversion har vi prøvd å fjerne en del av forvirringen angående kommandoene cvs status og cvs update.

Kommandoen cvs status har to formål: For det første å vise brukeren alle lokale forandringer i arbeidskopien, og for det andre å vise brukeren hvilke filer som er utdatert. Uheldigvis, på grunn av CVSs uoversiktlige utlisting, er det mange CVS-brukere som ikke bruker denne kommandoen i det hele tatt. Istedenfor har de lagt seg til vanen å kjøre cvs update eller cvs update -n for å få en rask oversikt over forandringene. Hvis brukere glemmer å bruke -n-valget, vil dette føre til at det flettes inn forandringer fra depotet som de kanskje ikke er klare til å håndtere.

Med Subversion har vi forsøkt å fjerne dette rotet ved å gjøre informasjonen fra svn status lettlest både for menneske og maskin. I tillegg begrenser informasjonen fra svn update seg til kun å inneholde filer som blir oppdatert, ikke lokale endringer.

Status

svn status lister alle filer som inneholder lokale forandringer. Standard oppførsel er å ikke kontakte depotet og nettverkskontakt er derfor ikke nødvendig. Denne delkommandoen godtar en god del valg, dette er de mest vanlige:

-u

Kontakt depotet for å finne ut, og deretter vise informasjon om utdaterte elementer.

-v

Vis alle elementer som er under versjonskontroll.

-N

Kjør kommandoen ikke-rekursivt (ikke gå inn i underkataloger).

status-kommandoen har to visningsformater. Med det vanlige “korte” formatet ser lokale forandringer ut som dette:

$ svn status
M      foo.c
M      bar/baz.c

Hvis du spesifisererer valget --show-updates (-u), brukes et lengre format:

$ svn status -u
M            1047   foo.c
       *     1045   faces.html
       *            bloo.png
M            1050   bar/baz.c
Status against revision:   1066

I dette tilfellet kommer to nye kolonner til syne. Den andre kolonnen inneholder en asterisk hvis fila eller katalogen er utdatert. Den tredje kolonnen viser arbeidskopiens revisjonsnummer for elementet. I eksempelet ovenfor indikerer asterisken at faces.html vil bli patchet hvis vi oppdaterer, og at bloo.png er ei fil som nylig er lagt til i depotet. (Når revisjonsnummeret ved siden av bloo.png mangler, betyr det at at fila ikke eksisterer enda i arbeidskopien.)

Til sist, her er en rask oversikt over de vanligste statuskodene som du vil se:

A    Ressursen er klargjort for tillegging (“Addition”)
D    Ressursen er klargjort for sletting (“Deletion”)
M    Ressursen inneholder lokale forandringer (“Modifications”)
C    Ressursen inneholder konflikter (forandringer er enda ikke blitt
       flettet sammen med depotet og arbeidskopien) (“Conflicts”)
X    Ressursen er ekstern i denne arbeidskopien (kan komme fra et annet
       depot (“eXternal”). Se “Externals Definitions”
?    Ressursen er ikke under versjonskontroll
!    Ressursen mangler eller er ikke komplett (fjernet av et annet
       verktøy enn Subversion)

For en mer detaljert diskusjon om svn status, se svn status.

Update

svn update oppdaterer arbeidskopien din og skriver kun informasjon om filer som blir oppdatert.

Subversion har kombinert CVSs P- og U-kode inn i den ene U-koden. Når en fletting eller konflikt oppstår, skriver Subversion rett og slett bare G eller C, istedenfor en hel setning om det.

For en mer detaljert diskusjon om svn update, se “Oppdater arbeidskopien din”.