====== CVS - Διαχειριστής Εκδόσεων Αρχείων ====== Πηγές : *Γενικό tutorial για cvs : http://www.linux.ie/articles/tutorials/cvs.php *και ειδικό για debian : http://julien.herbin.ecranbleu.org/cvs_howto/ ===== Ρύθμιση Server ===== ==== Εγκατάσταση ==== apt-get install cvs Αν δεν ξεκινήσει η αυτόματη ρύθμιση από το πακέτο, εκτελούμε dpkg-reconfigure cvs ==== Δημιουργία Αποθετηρίου CVS ==== Έστω ότι θέλουμε να δημιουργήσουμε ένα νέο φάκελο με αρχεία στα οποία θα υπάρχει έλεγχος εκδόσεων κεντρικά από τον server και θα μπορούν πολλοί χρήστες να κάνουν αλλαγές. Ο φάκελος θα έχει όνομα my_cvs_module και θα βρίσκεται στον server κάτω από το /var/lib/cvs/ Θα ορίσουμε προσωρινά τον κατάλογο /var/lib/cvs/my_cvs_module ως CVSROOT (ριζικό κατάλογο CVS) Ως υπερχρήστης εκτελούμε export CVSROOT=/var/lib/cvs/my_cvs_module mkdir $CVSROOT Ορίζουμε ομάδα src, chown -R root.src $CVSROOT στην οποία θα προσθέσουμε στην συνέχεια χρήστες, π.χ. adduser vagelis src adduser manos src που θα έχουν δικαιώματα εγγραφής στο αποθετήριό μας chmod -R g+w $CVSROOT Τέλος αρχικοποιούμε το αποθετήριό μας (η cvs init αρχικοποιεί τον φάκελο που δείχνει η μεταβλητή $CVSROOT) cvs init ===== Ρύθμιση Client ===== ==== Σύνδεση στον server τοπικά==== Δημιουργούμε έναν τοπικό φάκελό στον οποίο θα δουλεύουμε mkdir -p ~/tmp/mycvscheckouts/ cd ~/tmp/mycvscheckouts/ export CVSROOT=/var/lib/cvs/ cvs co my_cvs_module Εάν δεν είχαμε μηνύματα λάθους σημαίνει ότι η ρύθμιση του cvs server έχει γίνει σωστά ==== Απομακρυσμένη σύνδεση στον server==== Η σύνδεσή μας θα γίνεται μέσω ssh οπότε θα πρέπει ήδη να λειτουργεί εξυπηρετητής ssh στον server Θα δοκιμάσουμε σύνδεση μέσω ssh τοπικά. (Θα σβήσουμε τον φάκελο my_cvs_module από την προηγούμενη δοκιμή ώστε να είμαστε απόλυτα σίγουροι ότι δουλεύει και μέσω ssh) cd ~/tmp/mycvscheckouts rm -rf my_cvs_module export CVSROOT=":ext:vagelis@localhost:/var/lib/cvs/" export CVS_RSH=ssh cvs co my_cvs_module vagelis@localhost's password: Εάν δεν είχαμε μηνύματα λάθους σημαίνει ότι η σύνδεση και μέσω ssh είναι εντάξει Δοκιμάζουμε τέλος σύνδεση από απομακρυσμένο υπολογιστή εκτελώντας τις ίδιες εντολές, αλλάζοντας μόνο το localhost στην εξωτερική διεύθυνση του server export CVSROOT=":ext:vagelis@localhost:/var/lib/cvs/" σε π.χ. export CVSROOT=":ext:vagelis@mydomain.com:/var/lib/cvs/" Η σύνδεσή μας είναι ασφαλής έτσι όμως χρειάζεται να δίνουμε κάθε φορά το password. Χρησιμοποιώντας κάποιον πελάτη όπως cervisia αυτό θα χρειαζόταν να γίνεται δεκάδες φορές ενώ δουλεύουμε. Για να το αποφύγουμε μπορούμε να ρυθμίσουμε σύνδεση με ssh μέσω κλειδιού όποτε και δεν θα μας ζητείται το password. Για την ρύθμιση αυτή όπως και για την σύνδεση σε ssh server που ακούει σε άλλη θύρα από την 22 δείτε τις παρακάτω οδηγίες : [[el:linux:debian:server:ssh]] ==== cervisia - Γραφική Εφαρμογή Πελάτη CVS ==== Θα εγκαταστήσουμε την γραφική εφαρμογή πελάτη cervisia aptitude install cervisia Από το μενού Χώρος Αποθήκευσης/Χώροι Αποθήκευσης επιλέγουμε Προσθήκη και καταχωρούμε τα παρακάτω ^Χώρος αποθήκευσης | :ext:vagelis@mydomain.com:/var/lib/cvs | ^ Χρήση απομακρυσμένου κελύφους | ssh | Από το μενού Χώρος Αποθήκευσης/Έλεγχος Εξόδου (checkout), επιλέγουμε τον χώρο αποθήκευσης που ορίσαμε πριν καθώς και ^ Άρθρωμα | my_cvs_module | ^ Φάκελος εργασίας | ~/tmp/mycvscheckouts | Προσοχή ο φάκελος εργασίας να είναι σε σύστημα αρχείων linux (ext2,ext3, κτλ) Από το μενου Αρχείο/Άνοιγμα Τοπικού Αντιγράφου ανοίγουμε τον τοπικό φάκελο εργασίας ~/tmp/mycvscheckouts/my_cvs_module === Προσθήκη αρχείων και φακέλων στο αποθετήριο === Θα προσθέσουμε έναν νέο φάκελο και ένα αρχείο κειμένου στο αποθετήριο και στην συνέχεια ένα αρχείο ως δυαδικού τύπου (π.χ. εικόνα) - Δημιουργούμε έναν νέο φάκελο μέσα στον τοπικό φάκελο εργασίας π.χ. ~/tmp/mycvscheckouts/my_cvs_module/newfolder - Αντιγράφουμε το νέο αρχείο κειμένου π.χ. newfile.txt στον νέο φάκελο ~/tmp/mycvscheckouts/my_cvs_module/newfolder - Από το μενου Αρχείο/Άνοιγμα Τοπικού Αντιγράφου ανοίγουμε τον τοπικό φάκελο εργασίας ~/tmp/mycvscheckouts/my_cvs_module - Επιλέγουμε τον νέο φάκελο πρώτα *Από το μενού επιλέγουμε Αρχείο/Προσθήκη στον χώρο φύλαξης *Από το μενού επιλέγουμε Αρχείο/Καταχώρηση, γράφοντας και κάποιο σχόλιο (π.χ. αρχική προσθήκη φακέλου) - Επιλέγουμε το αρχείο κειμένου και κάνουμε τις ίδιες ενέργειες όπως πριν για τον φάκελο - Τέλος επιλέγουμε ένα γενικού τύπου αρχείο (π.χ. εικόνα) * Από το μενού επιλέγουμε Αρχείο/Προσθήκη Δυαδικού αρχείου * Από το μενού επιλέγουμε Αρχείο/Καταχώρηση === Ενημέρωση τοπικών αρχείων από δικτυακό αποθετήριο === Καλό είναι να ενημέρόσουμε όλα τα τοπικά αρχεία και τους φακέλους με τις αλλαγές από το αποθετήριο - Τσεκάρουμε απο το μενού Ρυθμίσεις/Ενημέρωση Αναδρομικά - Με CTRL-A επιλέγουμε όλα τα αρχεία - Από το μενού επιλέγουμε Αρχείο/Ενημέρωση === Αλλαγή αρχείων και καταχώρηση στο αποθετήριο === Αφού έχουμε κάνει ενημέρωση, μπορούμε να κάνουμε αλλαγές στο τοπικό αρχείο και όταν θελήσουμε να τις καταχωρήσουμε στο αποθετήριο από το μενού Αρχείο/Καταχώρηση