Το Subversion είναι μία έκδοση ανοιχτού κώδικα του συστήματος ελέγχου έκδοσης. Χρησιμοποιώντας το Subversion, μπορείτε να καταγράψετε το ιστορικό αρχείων πηγής και αρχείων. Διαχειρίζεται αρχεία και καταλόγους σε πάροδο χρόνου. Ένα δέντρο αρχείων τοποθετείτε σε ένα κεντρικό αποθετήριο. Το αποθετήριο είναι σαν ένας κανονικός διακομιστής αρχείων, με τη διαφορά ότι θυμάται κάθε αλλαγή που έγινε σε αρχεία και καταλόγους.
Για να έχετε πρόσβαση στο αποθετήριο του Subversion χρησιμοποιώντας πρωτόκολλο HTTP, πρέπει να εγκαταστήσετε και να διαμορφώσετε έναν διακομιστή ιστού. Ο Apache2 έχει αποδειχτεί ότι δουλεύει με το Subversion. Παρακαλώ αναφερθείτε στην υπο ενότητα HTTP στην ενότητα Apache2 για να εγκαταστήσετε και να διαμορφώσετε τον Apache2. Για να έχετε πρόσβαση στο αποθετήριο του Subversion χρησιμοποιώντας πρωτόκολλο HTTPS, πρέπει να εγκαταστήσετε και να διαμορφώσετε ένα ψηφιακό πιστοποιητικό στον διακομιστή ιστού Apache 2. Παρακαλώ αναφερθείτε στην υπο ενότητα HTTPS στην ενότητα Apache2 για να εγκαταστήσετε και να διαμορφώσετε το ψηφιακό πιστοποιητικό.
Για να εγκαταστήσετε το Subversion, εκτελέστε την ακόλουθη εντολή από ένα τερματικό εντολών:
sudo apt-get install subversion libapache2-svn
Αυτό το βήμα υποθέτει ότι έχετε εγκαταστήσει πακέτα που αναφέρθηκαν νωρίτερα στο σύστημά σας. Αυτή η ενότητα εξηγεί πως να δημιουργήσετε ένα αποθετήριο Subversion και να έχετε πρόσβαση στο έργο.
Το αποθετήριο Subversion μπορεί να δημιουργηθεί χρησιμοποιώντας την ακόλουθη εντολή από ένα τερματικό εντολών:
svnadmin create /path/to/repos/project
Μπορείτε να έχετε πρόσβαση (ελέγξετε) τα αποθετήρια Subversion μέσω πολλών διαφορετικών μεθόδων --στον τοπικό δίσκο, ή μέσω διάφορων πρωτοκόλλων δικτύου. Μια τοποθεσία αποθετηρίου, όμως, είναι πάντα ένα URL. Ο πίνακας εξηγεί πως διαφορετικά σχέδια URL αντιδρούν στις διαθέσιμες μεθόδους πρόσβασης.
Πίνακας 16.1. Μέθοδοι Πρόσβασης
|
Σχήμα |
Μέθοδος Πρόσβασης |
|---|---|
|
file:// |
απευθείας πρόσβαση σε αποθετήριο (στον τοπικό δίσκο) |
|
http:// |
Πρόσβαση μέσω πρωτοκόλλου WebDAV σε διακομιστή δικτύου Subversion-aware Apache2 |
|
https:// |
Όμοια με http://, αλλά με κρυπτογράφηση SSL |
|
svn:// |
Πρόσβαση μέσω προσαρμοσμένου πρωτοκόλλου σε έναν διακομιστή svnserve |
|
svn+ssh:// |
Όμοια με svn://, αλλά μέσω ενός τούνελ SSH |
Σε αυτή την ενότητα, θα δούμε πως να διαμορφώσουμε το Subversion για όλες αυτές τις μεθόδους πρόσβασης. Εδώ, καλύπτουμε τα βασικά. Για περισσότερες ειδικές λεπτομέρειες χρήσης, αναφερθείτε στο svn book.
Αυτή είναι η πιο απλή μέθοδος πρόσβασης. Δεν απαιτεί καμία διαδικασία διακομιστή Subversion να εκτελείται. Αυτή η μέθοδος πρόσβασης, αν πληκτρολογηθεί σε ένα τερματικό εντολών, είναι όπως ακολουθεί:
svn co file:///path/to/repos/project
ή
svn co file://localhost/path/to/repos/project
|
|
|
Εάν δεν προσδιορίσετε το όνομα κεντρικού υπολογιστή, υπάρχουν τρεις κάθετοι (///) -- δύο για το πρωτόκολλο (αρχείο, σε αυτή την περίπτωση) και η πρώτη κάθετος στο μονοπάτι. Εάν προσδιορίσετε το όνομα κεντρικού υπολογιστή, πρέπει να χρησιμοποιήσετε δύο καθέτους (//). |
Τα δικαιώματα του αποθετηρίου εξαρτώνται από τα διακαιώματα του συστήματος αρχείων. Εάν ο χρήστης έχει διακαιώματα ανάγνωσης/επεξεργασίας, μπορεί να ελέγξει και να παραδώσει στο αποθετήριο.
To access the Subversion repository via WebDAV protocol, you must configure your Apache 2 web server. Add the following snippet between the
<VirtualHost> and </VirtualHost> elements in
/etc/apache2/sites-available/default, or another VirtualHost file:
<Location /svn> DAV svn SVNPath /home/svn AuthType Basic AuthName "Your repository name" AuthUserFile /etc/subversion/passwd Require valid-user </Location>
|
|
|
Το παραπάνω απόσπασμα διαμόρφωσης υποθέτει ότι τα αποθέματα Subversion είναι δημιουργημένα στον κατάλογο |
Για να εισάγετε ή να παραδώσετε αρχεία στο αποθετήριο Subversion μέσω HTTP, το αποθετήριο θα πρέπει να ανήκει σε ένα χρήστη HTTP. Σε συστήματα Ubuntu, κανονικά ο χρήστης HTTP είναι www-data. Για να αλλάξετε την ιδιοκτησία των αρχείων του αποθετηρίου πληκτρολογείστε την ακόλουθη εντολή από ένα τερματικό εντολών:
sudo chown -R www-data:www-data /path/to/repos
|
|
|
Αλλάζοντας την ιδιοκτησία του αποθετηρίου σαν www-data δε θα μπορείτε να εισάγετε και να παραδείνετε αρχεία στο αποθετήριο εκτελώντας την εντολή svn import file:/// ως οποιοσδήποτε χρήστης του www-data. |
Μετά, πρέπει να δημιουργήσετε ένα αρχείο /etc/subversion/passwd που θα περιέχει λεπτομέρειες ταυτοποίησης χρήστη. Για να δημιουργήσετε ένα αρχείο χρησιμοποιήστε την ακόλουθη εντολή σε ένα τερματικό εντολών (η οποία θα δημιουργήσει το αρχείο και θα προσθέσει τον πρώτο χρήστη):
sudo htpasswd -c /etc/subversion/passwd user_name
Για να προσθέσετε επιπλέον χρήστες παραλείψτε την επιλογή "-c" καθώς αυτή η επιλογή αντικαθιστά το παλιό αρχείο. Αντί αυτής χρησιμοποιείστε αυτή τη μορφή:
sudo htpasswd /etc/subversion/password user_name
Αυτή η εντολή θα σας ζητήσει να εισάγετε τον κωδικό. Όταν εισάγετε τον κωδικό, ο χρήστης προστίθεται. Τώρα, για να έχετε πρόσβαση στο αποθετήριο μπορείτε να εκτελέσετε την ακόλουθη εντολή:
svn co http://servername/svn
|
|
|
Ο κωδικός μεταδίδεται σαν απλό κείμενο. Εάν ανησυχείτε για κατασκόπευση κωδικού, συνίσταται να χρησιμοποιήσετε κρυπτογράφηση SSL. Για λεπτομέρειες, παρακαλώ αναφερθείτε στην επόμενη ενότητα. |
Πρόσβαση σε ένα αποθετήριο Subversion μέσω πρωτοκόλλου WebDAV με κρυπτογράφηση SSL (https://) είναι παρόμοια με του http:// εκτός του ότι πρέπει να εγκαταστήσετε και να διαμορφώσετε το ψηφιακό πιστοποιητικό στο διακομιστή ιστού Apache2. Για να χρησιμοποιήσετε SSl με Subversion προσθέστε την παραπάνω διαμόρφωση Apache2 στο /etc/apache2/sites-available/default-ssl. Για περισσότερες πληροφορίες στο πως να στήσετε τον Apache2 με SSL δείτε “Διαμόρφωση HTTPS”.
Μπορείτε να εγκαταστήσετε ψηφιακά πιστοποιητικά που έχουν εκδοθεί από μια αρχή υπογραφής. Εναλλακτικά, μπορείτε να εγκαταστήσετε τα δικά σας αυτο υπογεγραμμένα πιστοποιητικά.
Αυτό το βήμα υποθέτει ότι έχετε εγκαταστήσει και διαμορφώσει ένα ψηφιακό πιστοποιητικό στο διακομιστή ιστού σας Apache2. Τώρα, για να έχετε πρόσβαση στο αποθετήριο Subversion, παρακαλώ αναφερθείτε στην παραπάνω ενότητα! Οι μέθοδοι πρόσβασης είναι ακριβώς ίδιες, εκτός από το πρωτόκολλο. Πρέπει να χρησιμοποιήσετε https:// για να έχετε πρόσβαση στο αποθετήριο.
Όταν δημιουργηθεί το αποθετήριο Subversion, μπορείτε να διαμορφώσετε τον έλεγχο πρόσβασης. Μπορείτε να επεξεργαστείτε το αρχείο /path/to/repos/project/conf/svnserve.conf για να διαμορφώσετε τον έλεγχο πρόσβασης. Για παράδειγμα, για να προσδιορίσετε αυθεντικότητα, μπορείτε να διαγράψετε τα σχόλια των ακόλουθων γραμμών στο αρχείο διαμόρφωσης:
# [general] # password-db = passwd
Αφού διαγράψετε τα σχόλια στις παραπάνω γραμμές, μπορείτε να διατηρήσετε τη λίστα χρηστών στο αρχείο passwd. Έτσι, επεξεργαστείτε το αρχείο passwd στον ίδιο κατάλογο και προσθέστε τον καινούριο χρήστη. Η σύνταξη είναι όπως ακολούθως:
username = password
Για περισσότερες λεπτομέρειες, παρακαλώ αναφερθείτε στο αρχείο.
Τώρα, για πρόσβαση του Subversion μέσω του προσαρμοσμένου πρωτοκόλλου svn://, είτε από την ίδια μηχανή ή από διαφορετική, μπορείτε να εκτελέσετε το svnserver χρησιμοποιώντας την εντολή svnserve. Η σύνταξη είναι όπως ακολούθως:
$ svnserve -d --foreground -r /path/to/repos # -d -- κατάσταση δαίμονα # --foreground -- εκτέλεση στο προσκήνιο (χρήσιμο για αποσφαλμάτωση) # -r -- ρίζα του καταλόγου για εξυπηρέτηση Για περισσότερες λεπτομέρειες χρήσης, παρακαλώ αναφερθείτε στο: $ svnserve --help
Όταν εκτελέσετε αυτή την εντολή, το Subversion αρχίζει να ακούει στην προεπιλεγμένη θύρα (3690). Για να έχετε πρόσβαση στο αποθετήριο του έργου, πρέπει να εκτελέσετε την ακόλουθη εντολή από ένα τερματικό εντολών:
svn co svn://hostname/project project --username user_name
Βάση της διαμόρφωσης του διακομιστή, ζητάει κωδικό. Όταν πιστοποιήσετε την ταυτότητά σας, ελέγχει τον κώδικα από το αποθετήριο Subversion. Για να συγχρονίσετε το αποθετήριο του έργου με το τοπικό αντίγραφο, μπορείτε να εκτελέσετε την υπο-εντολή update. Η σύνταξη της εντολής, αν πληκτρολογηθεί σε ένα τερματικό, είναι όπως ακολουθεί:
cd project_dir ; svn update
Για περισσότερες λεπτομέρειες για το πως να χρησιμοποιήσετε κάθε υπο-εντολή Subversion, μπορείτε να αναφερθείτε στο εγχειρίδιο. Για παράδειγμα, για να μάθετε περισσότερα για την εντολή co (checkout) παρακαλώ εκτελέστε την ακόλουθη εντολή από ένα τερματικό εντολών:
svn co help
Η διαμόρφωση και η διαδικασία διακομιστή είναι ίδιες με τη μέθοδο svn://. Για λεπτομέρειες, παρακαλώ αναφερθείτε στην παραπάνω ενότητα. Αυτό το βήμα υποθέτει ότι έχετε ακολουθήσει τα παραπάνω βήματα και έχετε εκκινήσει τον διακομιστή Subversion χρησιμοποιώντας την εντολή svnserve command.
Επίσης υποτίθεται ότι ο διακομιστής ssh εκτελείται σε εκείνη τη μηχανή και ότι επιτρέπει εισερχόμενες συνδέσεις. Για να το επιβεβαιώσετε, παρακαλώ δοκιμάστε να συνδεθείτε σε εκείνη τη μηχανή χρησιμοποιώντας ssh. Εάν μπορείτε να συνδεθείτε όλα είναι τέλεια. Εάν δεν μπορείτε να συνδεθείτε, παρακαλώ διευθετείστε το πριν συνεχίσετε παρακάτω.
Το πρωτόκολλο svn+ssh:// χρησιμοποιείται για πρόσβαση στο αποθετήριο Subversion χρησιμοποιώντας SSL κρυπτογράφηση. Τα δεδομένα μεταφοράς είναι κρυπτογραφημένα χρησιμοποιώντας αυτή τη μέθοδο. Για να έχετε πρόσβαση στο αποθετήριο του έργου (για παράδειγμα με checkout), πρέπει να χρησιμοποιήσετε τη σύνταξη της ακόλουθης εντολής:
svn co svn+ssh://hostname/var/svn/repos/project
|
|
|
Πρέπει να χρησιμοποιήσετε το πλήρες μονοπάτι (/path/to/repos/project) για να έχετε πρόσβαση στο αποθετήριο Subversion χρησιμοποιώντας αυτή τη μέθοδο πρόσβασης. |
Βάση της διαμόρφωσης του διακομιστή, ζητάει κωδικό. Πρέπει να εισάγετε τον κωδικό που χρησιμοποιείτε για να εισέλθετε μέσω ssh. Μόλις πιστοποιήσετε την ταυτότητά σας, ελέγχει τον κώδικα από το αποθετήριο Subversion.

