Version Tracking With Subversion (SVN) For Beginners
Har du nogensinde ønsket at arbejde på et projekt med evnen til at spore dine ændringer samt tilbagekalde dem? How-To Geek forklarer, hvordan man bruger det populære versionssporingssystem, Subversion (a.k.a SVN).
Billede af klart tvetydigt
Prelog
Denne vejledning vil give dig mulighed for at bruge subversionsklienten generelt og, hvis du har en, på din * DD-WRT-router. Denne vejledning er på ingen måde en endelig vejledning til Subversion, og meget information findes på Subversion Red Book. Denne vejledning er kun beregnet til at give dig kortfattet svar på de mest grundlæggende spørgsmål.
Oversigt
Der kan være mange grunde til, at du vil kunne "checke" den nyeste kode til et softwareprojekt, der bruger et versionssystem. Det gør det muligt at drage nytte af de seneste uudgivne ændringer, hjælp til test og lige udvikling. I denne vejledning vil vi gå over nogle grundlæggende SVN-terminologier, vise hvordan du installerer SVN-klienten på Linux, Windows, og hvis du har en din OPKG-aktiverede DD-WRT-router. Vi har også medtaget et eksempel på et projekt, du kan checke ud og bruge til den nævnte router.
Hvad er Subversion?
Subversion er på ingen måde det eneste versionsstyringssystem, der eksisterer, og alternativer omfatter Git (som blev oprettet af Linus Torvalds Linux-kernefounder), Mercurial og PerForce for at nævne nogle få. Med det sagt er det en af de frie, den er moden og udbredt i hele verden.
Ud af subversionen "Red Book":
Subversion er en fri / åben kilde version kontrol system (VCS). Dvs., Subversion styrer filer og mapper, og de ændringer, der er foretaget til dem over tid. Dette giver dig mulighed for at gendanne ældre versioner af dine data eller undersøge historien om, hvordan dine data ændres. I den henseende tænker mange på et versionsstyringssystem som en slags "tidsmaskine".
Bemærk: Denne bog er Den ultimative samling af viden om subversion og det anbefales at henvise til det på alle Subversion-relaterede emner.
Hvad er Versioning?
Versioning er en proces, hvor tilstanden af et projekt på et tidspunkt er gemt. Denne form for procedure bruges ofte til at styre softwareudvikling, så arbejdet kan fortsætte med at forbedre projektet eller tilføje funktioner, samtidig med at man kan spore, hvad der er ændret fra det sidste samlede "gem" -punkt. For at udarbejde, kan denne form for procedure være nyttig for en enkelt person, men endnu mere for en gruppe mennesker, der alle arbejder på det samme projekt. Dette skyldes, at der normalt er en fordeling af ansvaret, når der arbejdes på et projekt som en gruppe, og forskellige mennesker ændrer forskellige aspekter af projektet. Uden en versionsmekanisme ville det være meget svært at holde alle synkroniseret med de seneste arbejdsændringer fra alle andre.
Terminologi
Repository
Opbevaringsstedet er det sted, hvor alle dataene fra alle de forskellige steder er gemt. I subversion verdenen, fra kundens synspunkt, er det den server, der har databasen i projektet. Denne database indeholder alle de filer, der er en del af projektet med alle deres tidligere versioner.
Revision
Når et lager er oprettet, får det revisionsnummeret nul (0). Dette tal øges med en (1) hver gang en commit udføres. Revisionsnummeret er globalt for depotet. Det vil sige, at der ikke er noget individuelt revisionsnummer for individuelle filer i depotet, selvom der ikke er ændret noget i den pågældende fil for den pågældende forpligtelse.
Arbejdskopien
En arbejdskopi er en lokal kopi (eller "checkout") af en bestemt version. Normalt er denne version, når den er checket ud, den "nyeste" (også kaldet et "hoved"), men en tidligere kan anmodes om. Brugeren kan gøre med den lokale kopi alt, hvad han / hun ønsker, med viden om, at de i værste fald kun kan checke koden igen. Desuden er denne kopi "privat". Dette skyldes, at indtil du enten opdatere eller forpligte din kopi, kan du ikke se andre folks ændringer, og de vil heller ikke se dine.
Opdatering og løsning af konflikter
En lokal arbejdskopi kan opdateres. Det vil sige, hvis du "tjekket ud" en bestemt version, og mens du arbejdede, er versionen på depotet opdateret, og du kan opdatere din arbejdskopi til senest. Faktisk forhindrer serveren dig fra at begå dine ændringer, før du opdaterer til den nyeste version for at matche depotet. Dette er gjort for at tvinge dig til at løse konflikter lokalt, før du endda tænker på at begå ændringer i depotet.
Fletning
Sammensmeltning refererer til processen, hvormed ændret kode blandes i en version. Det kan også medføre konfliktløsning.
begår
Forpligtelse er den proces, hvor de ændringer, du har foretaget til din lokale kopi, slås sammen igen i depotet. Dette er den mest farlige del af processen, da det er her, at ændringer, du har foretaget, kan påvirke andre mennesker, der bruger det samme depot. Det er derfor, det gøres normalt efter en vis overvejelse, med holdets konsensus og efter at du har løst eventuelle fusionerende konflikter.
Workflow
Den mest grundlæggende arbejdsgang fra brugerens perspektiv, når du bruger subversion, er dette:
1. Checkout den eksisterende kode (normalt "head").
2. Lav ændringer, tilføj filer og generelt udvikle koden.
3. Opdater til den nyeste version for at sikre, at din lokale kopi er synkroniseret med opdateringerne på depotet.
4. Sammenflet og løse konflikter lokalt, hvis det er nødvendigt.
5. Forbind de fusionerede ændringer i depotet.
6. Gå til trin 2.
Lad os få revner
Installer klienten
For at kunne bruge subversion skal du installere klienten på din maskine.
På Linux
Du skal kun installere pakken. På Ubuntu / Mint ville dette ske med:
sudo aptitude install subversion
På DD-WRT
Hvis du har fulgt "Sådan installeres ekstra software på din hjemmerouter (DD-WRT)", kan du installere svn-klienten ved blot at udstede:
opkg opdatering; opkg installere subversion-klient
På Windows
Mens vi dybe nørdsbrugere kan begynde at glemme, at GUI selv eksisterer til tider, har ikke alle alle. Hvis du vil bruge en Windows-klient til at oprette forbindelse til et SVN-depot, er langt den mest populære en "Skildpadde". For at bruge det, skal du blot downloade programmet og installere i den normale "næste, næste, færdige" mode.
Opret "depot"
Selvom vi ikke vil gå ind på meget detaljer om, hvordan du opsætter en subversion-server i denne vejledning, er Google-alternativet ikke en dårlig start for nybegynderbrugeren. Sådan oprettes et Google-depot:
- Gå over til Google Code hosting website og "opret" et nyt projekt.
- På den næste side skal du udfylde de ønskede felter og vælge typen af "versionsstyringssystem" for at være subversion.
Bemærk: Du vil muligvis se på, hvad der er forskellen mellem licensen Google-tilbud, inden du vælger en til projektet. - Klik på "Opret projekt".
Når dit projekt er oprettet, bør du kunne finde vejledningen om, hvordan du får adgang til det på fanen "Kilde".
Det gode ved Google-kode er, at det vil aktivere en anonym skrivebeskyttet version til dit projekt. Hvis du ikke ønsker at håndtere besværet med at oprette dit eget projekt, kan du anonymt afkrydsningsfeltet denne forfatterens arkiv.
En note om hotfortech-projektet: Dette projekt er beregnet til at være en wrapper for de funktioner, der er blevet tilføjet til DD-WRT på How-To Geek (som jeg personligt bruger) plus nogle personlige tweaks. Mens dette projekt er gearet til at arbejde sammen med artiklerne, der udgives her på howtogeek, er det stadig mit private projekt. Det er det meget velegnet til min Buffalo router (AR71xx arkitektur), mine personlige luner og er tilbøjelig til lejlighedsvis borkage.
På Linux / DD-WRT
Opret biblioteket til at arbejde i, for eksempel på DD-WRT, som kunne være:
mkdir-p / jffs / svn; cd / jffs / svn
Den fulde kommando på Linux består af selve SVN-kommandoen, "Checkout" -direktivet, adressen til depotet og biblioteket til checkout også. Opret en tom mappe og udfør kommandoen nedenfor:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Bemærk, at i den ovenstående eksempel bliver den læste version afkrydset. Hvis du har valgt at oprette dit eget repository, skal du bruge httpS linket.
På Windows
Fordi skildpadde er en shell-udvidelse, skal du bruge Windows-filopkonkurternes kontekstmenu (højreklik) for at bruge den. Faktisk, hvis du forsøger at påberåbe det fra startmenuen, får du:
- Opret en tom mappe.
- Højreklik på den for at hente kontekstmenuen.
- Vælg "SVN Checkout":
- Kopier og indsæt linket for projektet (hvis du har en) i "URL" -tekst:
- Afhængigt af projektets størrelse kan det tage et stykke tid, men når "Checkout" er gennemført, skal du se noget som:
- Du kan begynde at udvikle.
"Opdater" & "Flet" din arbejdskopi
Hvis du arbejder med koden med kolleger, eller du selv opdaterer koden fra flere steder (dvs. laptop, desktop eller endda router), skal du opdatere din arbejdskopi, inden du forpligter de seneste ændringer.
På Linux / DD-WRT
Kommandoen til at gøre dette på disse POSIX-systemer er simpelthen:
svn op
På Windows
- Højreklik i arbejdskataloget og vælg "SVN Update":
- Hvis du støder på konflikter, skal du prøve at følge instruktionerne på skærmen og bruge din vurdering af hvad du skal gøre ved dem.
"Forplig" dine ændringer
Det er det, du skal være konfliktfri og klar til at opdatere depotet med dine ændringer.
Det eneste punkt at bemærke her er, at det er en almindelig praksis at tilføje en "log" -meddelelse til forpligten, for nemt at kunne huske, hvorfor ændringerne blev foretaget. Faktisk gør Googles repository dette et obligatorisk krav til at begå.
På Linux / DD-WRT
Dette er et eksempel på det engagement, jeg har lavet til hotfortech-projektet, der gav det til version 19:
svn commit -m "opdateret til at afspejle nye ant-ads pack link"
På Windows
- Højreklik på arbejdskataloget og vælg "SVN Commit":
- Du skal blive mødt af et vindue, der gør det muligt at notere en logbesked:
- Tryk OK, og når du bliver bedt om at få adgangskode, skal du give Google genereret adgangskode.
- Hvis tilsagnet var vellykket, skal du se noget som:
- Det er det, du burde være i stand til at forpligte sig som en BOSS.
Endelige bemærkninger
Dette bør være nok til at komme i gang. Du anbefales at læse SVN-referencebøgerne for at få en dybere og bedre forståelse for alle SVN's anvendelser, muligheder og advarsler. Desuden minder vi om, at subversion ikke er det eneste versionskontrolsystem derude, og GIT (som blev oprettet af Linus Torvalds Linux-kernestifteren) synes at være ved at blive populær i de senere år.
Hvis du vil vælge at køre "running-config.sh" fra hotfortech-projektet på din router, vil du opdage, at det i øjeblikket vil installere for dig: Anti-ads-pack, Opkg geek-init scriptet, samt ting som den fulde GNU "ls", "less", "BASH" og meget mere.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Flere funktioner afventer og vil blive tilføjet i fremtiden.
Systemadministratorer vil kode deres vej ud af kodningen.