subversion
Hits : 4,262
subversion :: a very simple tutorial
SubVersion
http://subversion.tigris.org
A version control system that is a compelling replacement for CVS in the open source community.
http://svnbook.red-bean.com/
top
Installation
Παραθέτω την εγκατάσταση από την πηγαίο κώδικα.
Η σειρά είναι απαραίτητη.
wget -c http://apache.otenet.gr/dist/apr/apr-1.3.3.tar.bz2
tar jxvf apr-1.3.3.tar.bz2
cd apr-1.3.3
./configure
make
make install
ΣΗΜΕΙΩΣΗ: Το svn ΔΕΝ μπορεί να κατεβάσει μέσω ssl εάν ΔΕΝ έχει εγκατασταθεί το neon με ssl υποστήριξη. Το with-ssl
κατά το configuration δηλώνει ακριβώς αυτό το πράγμα. Εάν το neon είναι εγκατεστημένο με ssl τότε ενεργοποίησέ το.
top
Attention – Apache
locate httpd.conf vim +/dav_svn_module /usr/local/apache2/conf/httpd.conf
Comment:
# LoadModule dav_svn_module modules/mod_dav_svn.so # LoadModule authz_svn_module modules/mod_authz_svn.so
top
Example
> svn co https://wackofork.svn.sourceforge.net/svnroot/wackofork/trunk/wacko wacko > cd wacko > svn up > svn status > cd lang > svn commit wakka.el.php -m "More greek translation" --username emanelhs
top
Create SVN Repository
Για να περάσουμε κάποιο project που έχουμε σε svn repository, χρειάζεται αρχικά να δημιουργήσουμε το repository αυτό.
Η δομή παράγεται αυτόματα, έστω λοιπόν ότι είναι η διαδρομή : /opt/svn_repos/
> svnadmin create /opt/svn_repos/ > ls -la !$ ls -la /opt/svn_repos/ total 36 drwxr-xr-x 7 ebal ebal 4096 2007-11-28 17:02 . drwxr-xr-x 17 root root 4096 2007-11-28 16:58 .. drwxr-xr-x 2 ebal ebal 4096 2007-11-28 17:02 conf drwxr-xr-x 2 ebal ebal 4096 2007-11-28 17:02 dav drwxr-sr-x 5 ebal ebal 4096 2007-11-28 17:02 db -r--r--r-- 1 ebal ebal 2 2007-11-28 17:02 format drwxr-xr-x 2 ebal ebal 4096 2007-11-28 17:02 hooks drwxr-xr-x 2 ebal ebal 4096 2007-11-28 17:02 locks -rw-r--r-- 1 ebal ebal 229 2007-11-28 17:02 README.txt
top
Import Project
Για να περάσουμε ένα νέο project στο svn repository χρειάζεται να κάνουμε import τα αρχεία.
Η εντολή είναι : svn import source destination options και ένα τυπικό παράδειγμα είναι το παρακάτω:
> svn import /usr/local/apache2/htdocs/MyPhpWebCalendar file:///opt/svn_repos/MyPhpWebCalendar -m "Inital Import" Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/lang Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/lang/english.php Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/lang/greek.php Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/calendar-config.php Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/footer.php Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/index.php Adding /usr/local/apache2/htdocs/MyPhpWebCalendar/header.php Committed revision 1.
Για να ελέγξουμε ότι όλα είναι οκ απλά τρέχουμε την εντολή:
> svn list file:///opt/svn_repos/MyPhpWebCalendar calendar-config.php footer.php header.php index.php lang/
top
First Initial Copy
Και για να κατεβάσουμε το πρώτο μας αντίγραφο πρέπει να κάνουμε checkout:
> cd /tmp > svn checkout file:///opt/svn_repos/MyPhpWebCalendar A MyPhpWebCalendar/lang A MyPhpWebCalendar/lang/english.php A MyPhpWebCalendar/lang/greek.php A MyPhpWebCalendar/calendar-config.php A MyPhpWebCalendar/footer.php A MyPhpWebCalendar/index.php A MyPhpWebCalendar/header.php Checked out revision 1.
Εάν δούμε όλα τα αρχεία που δημιουργήθηκαν με :
> ls -a
Θα παρατηρήσουμε ότι δημιουργήθηκε και ένας κρυφός κατάλογος .svn
Εδώ να επισημάνω ότι είνα το ίδιο ακριβώς τα :
svn checkout
svn co
top
help
http://svnbook.red-bean.com/en/1.4/svn.tour.cycle.html
> svn help add blame (praise, annotate, ann) cat checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) lock log merge mkdir move (mv, rename, ren) propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) resolved revert status (stat, st) switch (sw) unlock update (up)
top
Revert
Μία από τις πιο σημαντικές ενέργειες όταν εργαζόμαστε σε εάν revision σύστημα είναι το revert.
Με αυτή την δυνατότητα μπορούμε να «γυρίσουμε» πίσω σε παλαιότερη έκδοση ώστε να διορθώσουμε
ή να ελεγξουμε κάτι στο πρόγραμμά μας.
$ svn info ... Revision: 27234 ... $ svn update -r 27170 $ svn info ... Revision: 27170 ...
top
svnsync
svnsync[link1] aka svn mirroring
- [link1] http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.reposadmin.maint.tk.svnsync