Uppgifter på svn

Om man skall koda något lite större bör man versionshantera sitt jobb, det system så vi tar upp är subversion (svn). Det är ett av de vanligaste versionshanteringssystemen och bygger på i princip samma tänk som de flesta andra. På senare tid har git börjat komma och det jobbar på ett lite annorlunda sätt.

  • Man kan köra subversion på en massa olika sätt, ni skall här pröva att sätta upp ett eget repository på era lokala filer eller på freetux och hämta till er bärbara via ssh eller direkt via lokala filer.
  • Extra - gör både via ssh och lokala filer

Om du skall jobba med ssh rekommenderar jag att du använder dig av ssh public key för att slippa logga in hela tiden

# På den dator som du har tänk ha ditt repository
# Detta kommando skapar ett nytt "repository" under $HOME/my-repo.
svnadmin create $HOME/my-repo
 
# Skapa en arbetskopia
# På din bärbara eller på ett annat ställe på servern. Det är här du ska jobba med filerna.
 
mkdir my-files
svn import -m "My files" my-files svn+ssh://my-username@my-server/my-home/my-repo/my-project
# alternativt om du kör lokalt
svn import -m "My files" my-files file:///my_home/my-repo/my-project
rm -rf my-files
svn checkout svn+ssh://my-username@my-server/my-home/my-repo/my-project
# alternativt om du kör lokalt
svn checkout file:///my-home/my-repo/my-project

Nu kan man skillnaden mella file och svn+ssh!
Lättaste sättet att lägga till flera filer som inte är versionshanterade är via import.
Om du vill lägga till all din kod för en websida med ett enda kommando

#För att slippa skriva en massa varje gång så kan man sätta en miljövariabel
export SVNROOT="svn+ssh://my-username@my-server/my-home/my-repo"
svn import -m "My website" www ${SVNROOT}/www
mv www www_bak
svn checkout ${SVNROOT}/www www
  • Du skall göra följande steg och reflektera över vad som händer och hur det funkar.

OBS!! Du skall byta ut https://svn.oedu.se/my_repos/ mot dit eget repository som du skapat.

# Tips
svn help
# för mer hjälp om ett visst kommando
svn help [underkommando]
 
# Gör dessa steg för att komma igång
# Du kan börja med att skapa en tom mapp
 
# Måste börja med att lägga in något för att testa
# alternativ skicka in det du har gjort, försöka tänka igenom 
# vilka filler du har och var de ligger i så fall
 
# Skapa en testmapp som du jobbar i
mkdir svntest
cd svntest
# Här skapar jag en tom mapp för mitt projekt, i det ska jag ha
# olika under mappar, code, grafik, docs mm
mkdir pa
# svn import gör man ganska sällan
svn import pa https://svn.oedu.se/my_repos/pa
# här kommer man att få logga in, godkänna ett cert och ev spara sitt lösen - det brukar jag göra.
 
# tar bort
rm -fR pa
#kollar
tree -a
# checkar ut
# svn checkout gör man ganska sällan
svn checkout https://svn.oedu.se/my_repos/pa
#kollar
tree -a
 
# går in i pa och skapa två filer, fil1 och fil2
# Kollar status
svn status
# Som du ser är det ? lägger till fil1 och fil2
svn add fil1 fil2
# kollar
svn status
# skicka in alla ändringar
# du kan ändra vilken editor du skall redigera ditt logg meddelande i. Man kan även lägga till en flagga -m "logg text" till svn commit
svn commit
# Skapa en till fil fil3 och ändra i fil1
# Kollar status
svn status
# Som du ser är det ett ? på fil3 och m på fil1, vill du lägga till den gör det med
svn add fil3
svn status
svn commit
# ta bort fil2
rm fil2
ls -la
# Uppdatera
svn update
ls -la
# som du ser är den nu tillbaka
# för att verkligen ta bort en fil
svn delete fil2
svn commit
ls -la

Det man använder mest är:

svn commit
svn update
svn add
# sen är det bra att kunna
svn delete
svn update -r (mm..)
svn info
svn diff
svn help
svn help [underkommando]