Bilde av klart tvetydig
Prelog
Denne veiledningen vil gi deg muligheten til å bruke subversionsklienten generelt, og hvis du har en, på din * DD-WRT-ruter. Denne veiledningen er på ingen måte en endelig guide for Subversion, og mye informasjon finnes på Subversion Red Book. Denne veiledningen er bare ment å gi deg shorthand svaret på de mest grunnleggende spørsmålene.
Oversikt
Det kan være mange grunner til at du vil kunne "sjekke ut" den nyeste koden for et programvareprosjekt som bruker et versionssystem. Å gjøre det gjør at du kan dra nytte av de siste fremdeles uendrede endringene, hjelp med testing og jevn utvikling. I denne veiledningen vil vi gå over noen grunnleggende SVN-terminologi, vise hvordan du installerer SVN-klienten på Linux, Windows, og hvis du har en OPKG-aktivert DD-WRT-ruteren. Vi har også tatt med et eksempel på et prosjekt som du kan sjekke ut og bruke for ruteren.
Hva er Subversion?
Subversion er på ingen måte det eneste versjonskontrollsystemet som eksisterer, og alternativer inkluderer Git (som ble opprettet av Linus Torvalds Linux-kjernefageren), Mercurial og PerForce for å nevne noen. Med det sagt er det en av de frie, den er moden og brukes mye over hele verden.
Ut av Subversion "Red Book":
Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”
Merk: Denne boken er Den ultimate samlingen av kunnskap om subversion og du anbefales å referere til det på alle Subversion-relaterte emner.
Hva er Versjonering?
Versjonering er en prosess der tilstanden til et prosjekt på et tidspunkt blir lagret. Denne typen prosedyre brukes ofte til å administrere programvareutvikling, slik at arbeidet kan fortsette å forbedre prosjektet eller legge til funksjoner, samtidig som man kan spore det som har endret seg fra det siste samlede "lagre" -punktet. For å utarbeide, kan denne typen prosedyre være nyttig for en enkelt person, men enda mer for en gruppe mennesker som alle jobber med det samme prosjektet. Dette er fordi vanligvis når man jobber med et prosjekt som en gruppe, er det en fordeling av ansvar og forskjellige mennesker endrer ulike aspekter av prosjektet. Uten en versjonsmekanisme vil det være svært vanskelig å holde alle synkronisert med de siste arbeidsendringene fra alle andre.
Terminologi
The Repository Lageret er stedet der alle dataene fra alle de forskjellige stedene er lagret. I subversion verden, fra kundens synspunkt, er det serveren som har databasen til prosjektet. Denne databasen inneholder alle filene som er en del av prosjektet med alle tidligere versjoner.
Revisjon
Når et lager er opprettet, blir det gitt revisjonsnummeret null (0). Dette tallet økes med en (1) hver gang en forpliktelse utføres. Revisjonsnummeret er globalt for depotet. Det vil si at det ikke finnes noen individuell revisjonsnummer for individuelle filer i depotet, selv om ingenting er endret i den filen for det bestemte engasjementet.
Arbeidsutgaven
En arbeidskopi er en lokal kopi (eller "kassa") av en bestemt versjon. Vanligvis er denne versjonen når den er sjekket ut den "siste" en (også kalt et "hode"), men en tidligere kan bli bedt om. Brukeren kan gjøre med den lokale kopien alt han / hun ønsker, med kunnskap om at de i verste fall bare kunne sjekke koden igjen. Dessuten er denne kopien "privat". Dette skyldes til du enten oppdaterer eller forplikter din kopi, vil du ikke se andres endringer, og de vil heller ikke se din.
Oppdatering og løsning av konflikter
En lokal arbeidskopi kan oppdateres. Det vil si, hvis du "sjekket ut" en bestemt versjon, og mens du jobbet, er versjonen på depotet oppdatert, du kan oppdatere din arbeidskopi til det siste. Faktisk forhindrer serveren deg fra å forandre endringene dine før du oppdaterer til den nyeste versjonen for å matche depotet. Dette er gjort for å tvinge deg til å løse konflikter lokalt, før du til og med tenker på å begå endringer i depotet.
sammenslåing
Sammenslåingen refererer til prosessen der den endrede koden blandes i en versjon. Det kan også medføre konfliktløsning.
inger
Å forplikte er prosessen der endringene du har gjort til din lokale kopi, blir slått sammen igjen i depotet. Dette er den mest farlige delen av prosessen, da det er her som endringer du har gjort, kan påvirke andre mennesker som bruker det samme arkivet. Det er derfor dette gjøres vanligvis etter litt overveielse, med lagets konsensus og etter at du har løst eventuelle fusjonerende konflikter.
Arbeidsflyten
Den mest grunnleggende arbeidsflyten fra brukerens perspektiv når du bruker subversion er dette:
1. Sjekk ut den eksisterende koden (vanligvis "hodet"). 2. Lag endringer, legg til filer og generelt utvikle koden. 3. Oppdater til den nyeste versjonen, for å sikre at den lokale kopien din synkroniseres med oppdateringene på depotet. 4. Lokal sammenføye og løse konflikter om nødvendig. 5. Forbind de fusjonerte endringene i depotet. 6. Gå til trinn 2.
Lar deg sprekke
Installer klienten
For å kunne bruke subversion må du installere klienten på maskinen din.
På Linux
Du trenger bare å installere pakken. På Ubuntu / Mint vil dette bli gjort med:
sudo aptitude install subversion
På DD-WRT
Hvis du har fulgt "Slik installerer du tilleggsprogramvare på hjemmevirksomheten (DD-WRT)", kan du installere svn-klienten ved å bare utstede:
opkg update; opkg install subversion-client
På Windows
Mens vi dype nørdbrukere kan begynne å glemme at GUI selv eksisterer til tider, har ikke alle. Hvis du vil bruke en Windows-klient til å koble til et SVN-depot, er langt den mest populære en "Skildpadde". For å bruke det, bare last ned programmet og installer i den vanlige "neste, neste, ferdig" mote.
Opprett "depot"
Selv om vi ikke vil gå inn på mye detaljert informasjon om hvordan du konfigurerer en subversion-server i denne guiden, er Google-alternativet ikke en dårlig start for nybegynneren. Slik oppretter du et Google-depot:
-
Gå over til Google Code hosting nettsted og "opprett" et nytt prosjekt.
-
På neste side fyller du ut de obligatoriske feltene og velger typen "versjonskontrollsystem" for å være subversion.
Merk: Du vil kanskje se på hva som er forskjellen mellom lisensene Google-tilbudet, før du velger en for prosjektet.
- Klikk på "Opprett prosjekt".
" Checkout" din arbeidskopi
Når prosjektet ditt er opprettet, bør du finne instruksjonene for hvordan du får tilgang til det på "Kilde" -fanen.
Ett notat om hotfortech-prosjektet: Dette prosjektet er ment å være en wrapper for funksjonene som er lagt til i DD-WRT på How-To Geek (som jeg personlig bruker) pluss noen personlige tweaks. Mens dette prosjektet er rettet til å arbeide sammen med artiklene som publiseres her på howtogeek, er det fortsatt mitt private prosjekt. Det er, det passer godt til min Buffalo router (AR71xx arkitektur), mine personlige lunger og er utsatt for sporadisk borkage.
På Linux / DD-WRT
Lag katalogen for å jobbe i, for eksempel på DD-WRT, som kan være:
mkdir -p /jffs/svn; cd /jffs/svn
Den fulle kommandoen på Linux består av SVN-kommandoen selv, "Checkout" -direktivet, adressen til depotet og katalogen til kassen også. Opprett en tom katalog og utfør kommandoen nedenfor:
svn checkout https://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Legg merke til at i eksemplet ovenfor blir den skrivebeskyttede versjonen sjekket ut. Hvis du valgte å lage ditt eget lager, må du bruke httpS-lenken.
På Windows
Fordi skildpadde er en skallutvidelse, må du bruke Windows-filoppdagers kontekstmeny (høyreklikk) for å bruke den. Faktisk, hvis du prøver å påkalle det fra startmenyen, får du:
- Opprett en tom katalog.
- Høyreklikk på den for å få fram kontekstmenyen.
-
Velg "SVN Checkout":
-
Kopier og lim inn lenken for prosjektet (hvis du har en) i «URL» -tekstboksen:
-
Avhengig av størrelsen på prosjektet kan det ta litt tid, men når "Checkout" er fullført, bør du se noe som:
- Du kan begynne å utvikle.
"Oppdater" og "Merge" arbeidskopien din Hvis du jobber med koden med kolleger, eller deg selv, oppdaterer koden fra flere steder (dvs. bærbar datamaskin, skrivebord eller til og med ruteren), må du oppdatere arbeidskopien din før du foretar de siste endringene.
På Linux / DD-WRT
Kommandoen til å gjøre dette på disse POSIX-systemene er ganske enkelt:
svn up
På Windows
-
Høyreklikk i arbeidskatalogen og velg "SVN Update":
- Hvis du støter på konflikter, kan du prøve å følge instruksjonene på skjermen og bruke din vurdering av hva du skal gjøre med dem.
"Forbind" dine endringer Det er det, du bør være konfliktfri og klar til å oppdatere lageret med endringene dine. Det eneste poenget å merke seg her er at det er en vanlig praksis å legge til en "logg" melding til forplikten, for å kunne huske på hvorfor endringene ble gjort. Faktisk gjør Googles repository dette et obligatorisk forutsetning for å begå.
På Linux / DD-WRT
Dette er et eksempel på forpliktelsen jeg har gjort til hotfortech-prosjektet som opped det til versjon 19:
svn commit -m “updated to reflect new ant-ads pack link”
På Windows
-
Høyreklikk i arbeidskatalogen og velg "SVN Commit":
-
Du bør bli møtt av et vindu som gjør at du kan legge merke til en loggmelding:
- Trykk OK, og når du blir bedt om et passord, gi Google generert passord.
-
Hvis begåingen var vellykket, bør du se noe som:
- Det er det, du burde være i stand til å forplikte seg som en BOSS.
Endelige bemerkninger Dette bør være nok til å komme i gang. Det anbefales at du leser SVNs referansebøker for å få en dypere og bedre forståelse for alle SVNs bruksområder, alternativer og advarsler. Også, vi påminner deg (igjen) at subversion er IKKE det eneste versjonskontrollsystemet der ute, og GIT (som ble opprettet av Linus Torvalds Linux-kjernefounder) ser ut til å bli populærere de siste årene.
Hvis du vil velge å kjøre "running-config.sh" fra hotfortech-prosjektet på ruteren, vil du oppdage at det for øyeblikket vil installere for deg: Anti-ads-pack, Opkg geek-init script, så vel som ting som full GNU "ls", "less", "BASH" og mer.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Flere funksjoner er ventende og vil bli lagt til i fremtiden.
Systemadministratorer vil kode seg ut av koding.