Version Tracking With Subversion (SVN) För Nybörjare
Har du någonsin velat arbeta med ett projekt med möjlighet att spåra dina ändringar och återställa dem? How-To Geek förklarar hur man använder det populära versionsspårningssystemet Subversion (a.k.a SVN).
Bild av klart tvetydigt
Prelog
Denna guide syftar till att ge dig möjlighet att använda subversionsklienten generellt och, om du har en, på din * DD-WRT-router. Denna guide är inte på något sätt en slutgiltig guide till Subversion och mycket information finns på Subversion Red Book. Denna guide är endast avsedd att ge dig kortfattat svar på de mest grundläggande frågorna.
Översikt
Det kan finnas många anledningar till varför du skulle vilja kunna "checka ut" den senaste koden för ett mjukvaruprojekt som använder ett versionssystem. Genom att göra det kan du dra nytta av de senaste, fortfarande oinställda ändringarna, hjälp med testning och jämn utveckling. I den här guiden kommer vi att gå över några grundläggande SVN-terminologi, visa hur du installerar SVN-klienten på Linux, Windows och om du har en OPKG-aktiverad DD-WRT-router. Vi har också inkluderat ett exempel på ett projekt som du kan checka ut och använda för nämnda router.
Vad är Subversion?
Subversion är inte den enda versionen styrsystem som finns och alternativ inkluderar Git (som skapades av Linus Torvalds Linux-grundaren), Mercurial och PerForce för att nämna några. Med det sagt är det en av de fria, den är mogen och används i stor utsträckning över hela världen.
Utan subversionen "Red Book":
Subversion är en fri / öppen källkod versionskontrollsystem (VCS). Det vill säga, Subversion hanterar filer och kataloger, och de förändringar som gjorts till dem över tiden. Detta låter dig återställa äldre versioner av dina data eller undersöka historiken om hur dina data ändrats. I detta avseende tänker många på ett versionsstyrningssystem som en slags "tidsmaskin".
Obs: Den här boken är Den ultimata samlingen av kunskap om subversion och du rekommenderas att referera till det på alla Subversion-relaterade ämnen.
Vad är Versioning?
Versioning är en process där tillståndet för ett projekt vid en tidpunkt sparas. Denna typ av procedur används ofta för att hantera mjukvaruutveckling, så att arbetet kan fortsätta att förbättra projektet eller lägga till funktioner samtidigt som man kan spåra vad som har ändrats från den senaste övergripande "spara" -punkten. För att utarbeta, kan denna typ av procedur vara användbar för en enda person men ännu mer för en grupp människor som alla arbetar på samma projekt. Detta beror på att det oftast finns en ansvarsfördelning och olika människor förändrar olika aspekter av projektet när man arbetar på ett projekt som en grupp. Utan en versionsmekanism skulle det vara mycket svårt att hålla alla synkroniserade om de senaste arbetsförändringarna från alla andra.
Terminologi
Förvaret
Förvaret är den plats där alla data från alla olika platser sparas. I subversionsvärlden är det från kundens synvinkel den server som har databasen i projektet. Den här databasen innehåller alla filer som ingår i projektet med alla tidigare versioner.
Revision
När ett förråd skapas, ges det revisionsnumret noll (0). Detta nummer ökas med en (1) varje gång en commit utförs. Revisionsnumret är globalt för förvaret. Det vill säga att det inte finns något individuellt revisionsnummer för enskilda filer i förvaret, även om inget ändrats i den filen för det specifika engagemanget.
Arbetet
En arbetskopia är en lokal kopia (eller "checkout") av en viss version. Vanligtvis är den här versionen när den är utcheckad den "senaste" (även kallad "huvud"), men en tidigare kan begäras. Användaren kan göra med den lokala kopian någonting som han / hon önskar, med vetskap om att i värsta fall kunde de bara koda koden igen. Dessutom är denna kopia "privat". Detta beror på att tills du antingen uppdaterar eller begår din kopia ser du inte andras ändringar, och de kommer inte att se dina.
Uppdatering och konfliktlösning
En lokal exemplar kan uppdateras. Det vill säga, om du "checkat ut" en viss version, och när du arbetade har versionen i förvaret uppdaterats, du kan uppdatera din arbets kopia till det senaste. Faktum är att servern hindrar dig från att begå dina ändringar innan du uppdaterar till den senaste versionen för att matcha förvaret. Detta görs för att tvinga dig att lösa konflikter lokalt innan du ens tänker på att begå förändringar i förvaret.
sammanslagning
Sammanslagning hänvisar till processen genom vilken ändrad kod blandas i en version. Det kan också medföra konfliktlösning.
Begår
Att åta sig är den process där de ändringar du har gjort till din lokala kopia kommer att slås samman igen i förvaret. Det här är den mest farliga delen av processen, eftersom det här är de förändringar du har gjort, kan påverka andra personer som använder samma förråd. Därför görs det vanligtvis efter viss övervägning, med lagets överenskommelse och efter att du har löst några sammanslagna konflikter.
Arbetsflödet
Det mest grundläggande arbetsflödet från användarens perspektiv när du använder subversion är detta:
1. Kassa den befintliga koden (vanligtvis "huvudet").
2. Gör ändringar, lägg till filer och generellt utveckla koden.
3. Uppdatera till den senaste versionen, för att säkerställa att din lokala kopia är synkroniserad med uppdateringarna i förvaret.
4. Sammanfoga lokalt och lösa konflikter om det behövs.
5. Överför de sammanslagna ändringarna till förvaret.
6. Gå till steg 2.
Kan få sprickbildning
Installera klienten
För att kunna använda subversion måste du installera klienten på din maskin.
På Linux
Du behöver bara installera paketet. På Ubuntu / Mint skulle detta göras med:
sudo aptitude installera subversion
På DD-WRT
Om du har följt "Installera ytterligare programvara på din hemruter (DD-WRT)", kan du installera svn-klienten genom att enkelt utfärda:
opkg uppdatering; opkg installera subversion-klienten
På Windows
Medan vi djupa nörd användare kan börja glömma att GUI ens existerar ibland, inte alla har. Om du vill använda en Windows-klient för att ansluta till ett SVN-arkiv, är den mest populära en "Sköldpadda". För att använda det, ladda bara programmet och installera i det vanliga "nästa, nästa, avsluta" sättet.
Skapa "förvaret"
Medan vi inte kommer att gå in på mycket detaljer om hur du konfigurerar en subversionsserver i den här guiden, är Google-alternativet inte en dålig start för nybörjaren. Så här skapar du ett Google-arkiv:
- Gå vidare till Googles kodhotell och skapa ett nytt projekt.
- På nästa sida fyller du i de obligatoriska fälten och väljer typ av "version control system" för att vara subversion.
Obs! Du kanske vill titta på vad som är skillnaden mellan licensen Google-erbjudandet, innan du väljer en för projektet. - Klicka på "Skapa projekt".
När ditt projekt har skapats bör du kunna hitta instruktionerna om hur du får tillgång till det på fliken "Källa".
Det fina med Google-kod är att det kommer att möjliggöra en anonym läs-version för ditt projekt. Om du inte vill ta itu med besväret med att skapa ditt eget projekt, kan du anonymt kassa den här författarens arkiv.
En anteckning om hotfortech-projektet: Detta projekt är tänkt att vara ett omslag för de funktioner som har lagts till DD-WRT på How-To Geek (som jag personligen använder) plus några personliga tweaks. Även om detta projekt är inriktat på att fungera i samband med artiklarna som publiceras här på howtogeek, är det fortfarande mitt privata projekt. Det är, det är mycket lämpligt för min Buffalo router (AR71xx arkitektur), mina personliga lustar och är benägen för tillfällig borkage.
På Linux / DD-WRT
Skapa katalogen för att fungera, till exempel på DD-WRT, som kan vara:
mkdir-p / jffs / svn; cd / jffs / svn
Det fullständiga kommandot på Linux består av SVN-kommandot själv, "Checkout" -direktivet, adressen till förvaret och katalogen till kassan också. Skapa en tom katalog och kör kommandot nedan:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Observera att i det ovanstående exemplet är läsningsversionen utcheckad. Om du valde att skapa ditt eget förråd måste du använda httpS-länken.
På Windows
Eftersom sköldpadda är en skalförlängning, måste du använda Windows-filutforskarens snabbmeny (högerklicka) för att använda den. Faktum är att om du försöker åberopa det från startmenyn får du:
- Skapa en tom katalog.
- Högerklicka på den för att få fram snabbmenyn.
- Välj "SVN Checkout":
- Kopiera och klistra in länken för projekt (om du har en) i textrutan "URL":
- Beroende på projektets storlek kan det ta en stund, men när "Checkout" har slutförts bör du se något som:
- Du kan börja utveckla.
"Uppdatera" och "Sammanfoga" din arbets kopia
Om du arbetar med koden med kollegor eller du själv uppdaterar koden från flera platser (dvs laptop, skrivbord eller router) måste du uppdatera din arbets kopia innan du gör de senaste ändringarna.
På Linux / DD-WRT
Kommandot att göra detta på dessa POSIX-system är helt enkelt:
svn upp
På Windows
- Högerklicka i arbetsmappen och välj "SVN Update":
- Om du stöter på konflikter, försök följa instruktionerna på skärmen och använd din bedömning om vad du ska göra om dem.
"Förplikta" dina ändringar
Det är det, du borde vara konfliktfri och redo att uppdatera förvaret med dina ändringar.
Det enda som ska noteras här är att det är en vanlig praxis att lägga till ett "logg" -meddelande till fördraget, för att enkelt kunna komma ihåg varför ändringarna gjordes. Faktum är att Googles repository gör detta ett obligatoriskt förutbestämmande att begå.
På Linux / DD-WRT
Detta är ett exempel på det åtagande jag har gjort till hotfortech-projektet som upped det till version 19:
svn commit -m "uppdaterad för att återspegla nya ant-ads pack länk"
På Windows
- Högerklicka i arbetskatalogen och välj "SVN Commit":
- Du bör hälsas med ett fönster som låter dig notera ett loggmeddelande:
- Klicka på OK och när du uppmanas till ett lösenord, ge det genererade Google-lösenordet.
- Om förbindelsen var framgångsrik bör du se något som:
- Det är det, du borde kunna begå sig som en BOSS.
Slutliga kommentarer
Detta borde räcka för att komma igång. Du rekommenderas att läsa SVN-referensböckerna för att få en djupare och bättre förståelse för alla SVNs användningar, alternativ och försiktighetsåtgärder. Också, vi påminner dig (igen) att subversion är INTE det enda versionsstyrsystemet där ute och GIT (som skapades av Linus Torvalds Linux-grundaren) verkar bli populärare under de senaste åren.
Om du väljer att köra "running-config.sh" från hotfortech-projektet på din router, kommer du att upptäcka att det för tillfället kommer att installeras för dig: Anti-ads-pack, Opkg geek-init-scriptet, liksom saker som full GNU "ls", "less", "BASH" och mer.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Fler funktioner väntar och kommer att läggas till i framtiden.
Systemadministratörer kommer att koda sig ur kodningen.