diff options
Diffstat (limited to 'el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml')
-rw-r--r-- | el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml | 815 |
1 files changed, 815 insertions, 0 deletions
diff --git a/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml new file mode 100644 index 0000000000..e71aec245e --- /dev/null +++ b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml @@ -0,0 +1,815 @@ +<!-- + + FreeBSD Greek Documentation Project + + %SOURCE% en_US.ISO8859-1/articles/cvs-freebsd/article.sgml + %SRCID% 1.17 + +--> + +<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ +<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EL"> +%articles.ent; +]> + +<article lang="el"> + <articleinfo> + <title>Εγκατάσταση ενός CVS Repository — ο τρόπος του &os;</title> + + <author> + <firstname>Stijn</firstname> + <surname>Hoop</surname> + <affiliation> + <address><email>stijn@win.tue.nl</email></address> + </affiliation> + </author> + + <copyright> + <year>2001</year> + <year>2002</year> + <year>2003</year> + <holder role="mailto:stijn@win.tue.nl">Stijn Hoop</holder> + </copyright> + + <releaseinfo>$FreeBSD$</releaseinfo> + + <legalnotice id="trademarks" role="trademarks"> + &tm-attrib.freebsd; + &tm-attrib.general; + </legalnotice> + + <abstract> + <para>Το άρθρο αυτό περιγράφει τα βήματα που έκανα για να εγκαταστήσω + ένα CVS repository που χρησιμοποιεί τα ίδια αρχεία δέσμης εντολών + (scripts) με αυτά που χρησιμοποιεί και το &os; project στη δική του + εγκατάσταση. Η συγκεκριμένη προσέγγιση έχει αρκετά πλεονεκτήματα + έναντι μιας τυποποιημένης CVS εγκατάστασης, όπως πιο λεπτομερή έλεγχο + πρόσβασης στο δέντρο του κώδικα καθώς και αυτόματη παραγωγή + ευανάγνωστων email με λεπτομέρειες για κάθε αλλαγή στον πηγαίο κώδικα + (commit).</para> + </abstract> + </articleinfo> + + <sect1 id="introduction"> + <title>Εισαγωγή</title> + + <para>Τα περισσότερα projects ελεύθερου λογισμικού (free software) και + ανοιχτού κώδικα (open source) χρησιμοποιούν το + <application>CVS</application> σαν σύστημα ελέγχου του κώδικά τους. + Παρόλο που το <application>CVS</application> είναι πολύ καλό σε αυτόν + τον τομέα έχει κι αυτό το μερίδιό του σε ελαττώματα και αδυναμίες. Μια + από αυτές τις αδυναμίες είναι το ότι η κοινή χρήση κώδικα μπορεί γρήγορα + να οδηγήσει σε έναν διαχειριστικό εφιάλτη, ειδικά αν υπάρχει η επιθυμία + να προστατευτούν ορισμένα κομμάτια του δέντρου του κώδικα από κοινή + πρόσβαση.</para> + + <para>Η ομάδα ανάπτυξης του &os; χρησιμοποιεί εκτενώς το + <application>CVS</application>. Διαθέτει επίσης μια μεγάλη βάση από + προγραμματιστές από πολλές διαφορετικές χώρες. Αναπτύχθηκαν λοιπόν + μερικά αρχεία δέσμης εντολών για να κάνουν την διαχείριση του repository + πιο εύκολη. Πρόσφατα τα αρχεία αυτά αναθεωρήθηκαν και κανονικοποιήθηκαν + από τον &a.joe; για να είναι πιο εύκολο να χρησιμοποιηθούν και σε άλλα + έργα. Το άρθρο αυτό περιγράφει μια μέθοδο χρήσης αυτών των νέων αρχείων + δέσμης εντολών.</para> + + <para>Για να μπορέσετε να χρησιμοποιήσετε με τον καλύτερο τρόπο τις + πληροφορίες αυτού του άρθρου θα πρέπει να γνωρίζετε τις βασικές μεθόδους + λειτουργίας του <application>CVS</application>.</para> + </sect1> + + <sect1 id="first-setup"> + <title>Πρώτη Εγκατάσταση</title> + + <warning> + <para>Είναι καλή ιδέα να εκτελέσετε για πρώτη φορά αυτή τη διαδικασία + χρησιμοποιώντας ένα κενό δοκιμαστικό repository, για να είναι βέβαιο + ότι θα κατανοήσετε όλες τις συνέπειες. Πριν ξεκινήσετε σιγουρευτείτε + ότι έχετε πρόσφατα backups, τα οποία εγγυημένα δουλεύουν!</para> + </warning> + + <sect2> + <title>Αρχικοποίηση του repository</title> + + <para>Το πρώτο πράγμα που θα πρέπει να κάνετε όταν στήνετε ένα νέο + repository είναι να πείτε στο <application>CVS</application> να το + αρχικοποιήσει:</para> + + <screen>&prompt.user; <userinput>cvs -d <replaceable>path-to-repository</replaceable> init</userinput></screen> + + <para>Αυτό λέει στο <application>CVS</application> να δημιουργήσει τον + φάκελο διαχείρισης <filename class="directory">CVSROOT</filename>, όπου + συμβαίνουν όλες οι παραμετροποιήσεις.</para> + </sect2> + + <sect2> + <title>Η ομάδα του repository</title> + + <para>Τώρα θα δημιουργήσουμε την ομάδα στην οποία θα ανήκει το + repository. Όλοι οι committers θα πρέπει να ανήκουν σε αυτή την + ομάδα, ώστε να μπορούν να γράφουν στο repository. Για το σκοπό αυτό + θα χρησιμοποιήσουμε την ίδια ομάδα που χρησιμοποιεί γι' αυτό το σκοπό + και το &os;, την ομάδα <literal>ncvs</literal>.</para> + + <screen>&prompt.root; <userinput>pw groupadd <replaceable>ncvs</replaceable></userinput></screen> + + <para>Μετά, θα πρέπει να εκτελέσετε την εντολή &man.chown.8; στον φάκελο + με παράμετρο την ομάδα που μόλις προσθέσατε, θέτοντας έτσι την ομάδα + στην οποία ανήκει ο κατάλογος:</para> + + <screen>&prompt.root; <userinput>chown -R :<replaceable>ncvs</replaceable> <replaceable>path-to-your-repository</replaceable></userinput></screen> + + <para>Αυτό εξασφαλίζει ότι κανείς δεν θα μπορεί να γράψει στο repository + αν δεν ανήκει στην σωστή ομάδα.</para> + </sect2> + + <sect2> + <title>Παίρνοντας τον πηγαίο κώδικα</title> + + <para>Τώρα θα πρέπει να αποκτήσετε τον κατάλογο + <filename class="directory">CVSROOT</filename> από το repository του + &os;. Αυτό γίνεται εύκολα, κάνοντας check out από ένα ανοιχτής + πρόσβασης &os; CVS mirror. + Δείτε <ulink url="&url.books.handbook;/anoncvs.html">το σχετικό + κεφάλαιο στο εγχειρίδιο</ulink> για περισσότερες πληροφορίες. + Ας υποθέσουμε ότι ο πηγαίος κώδικας θα αποθηκευτεί στον + κατάλογο <filename class="directory">CVSROOT-freebsd</filename> που + βρίσκεται μέσα στον τρέχοντα κατάλογο.</para> + </sect2> + + <sect2> + <title>Αντιγράφοντας τα scripts του &os;</title> + + <para>Ύστερα, αντιγράφουμε τον πηγαίο κώδικα από τον + <filename class="directory">CVSROOT</filename> κατάλογο του &os; στο + δικό μας repository. Αν είστε συνηθισμένος με + το <application>CVS</application>, ίσως να σας περάσει από το μυαλό να + προσπαθήσετε να κάνετε import τα scripts, σε μια προσπάθεια να γίνει + ύστερα ο συγχρονισμός με τις κατοπινές εκδόσεις ευκολότερος. Ωστόσο, + αποδεικνύεται ότι το <application>CVS</application> παρουσιάζει μια + δυσλειτουργία στην περιοχή αυτή: Όταν εισάγετε πηγαίο κώδικα μέσα + στο <filename class="directory">CVSROOT</filename> φάκελο, δεν θα + ενημερωθούν τα απαραίτητα αρχεία διαχείρισης. Για να μπορέσετε να το + κάνετε να τα αναγνωρίσει, θα πρέπει να κάνετε checkin ξεχωριστά κάθε + αρχείο αφού έχετε τελειώσει με την εισαγωγή, χάνοντας έτσι την αξία + του <literal>cvs import</literal>. Επομένως, η προτεινόμενη μέθοδος + είναι απλά να αντιγράψετε τα scripts.</para> + + <para>Δεν είναι και τόσο σημαντικό το αν η παραπάνω παράγραφος δεν σας + φαίνεται πολύ ξεκάθαρη—το τελικό αποτέλέσμα είναι το ίδιο. Απλά + ελέγξτε τον <filename class="directory">CVSROOT</filename> φάκελο και + αντιγράψτε τα &os; αρχεία πάνω από τα δικά σας τοπικά (απείραχτα) + αντίγραφα:</para> + + <screen>&prompt.user; <userinput>cvs -d <replaceable>path-to-your-repository</replaceable> checkout CVSROOT</userinput> +&prompt.user; <userinput>cd CVSROOT</userinput> +&prompt.user; <userinput>cp ../CVSROOT-freebsd/* .</userinput> +&prompt.user; <userinput>cvs add *</userinput></screen> + + <para>Σημειώστε ότι πιθανότατα θα πάρετε μερικές προειδοποιήσεις σχετικά + με το ότι μερικοί φάκελοι δεν θα αντιγραφούν. Δεν πειράζει. Δεν τους + χρειάζεστε αυτούς τους καταλόγους.</para> + </sect2> + + <sect2> + <title>Tα scripts</title> + + <para>Τώρα έχετε στον φάκελο εργασίας σας ένα ακριβές αντίγραφο των + scripts που το ίδιο το &os; project χρησιμοποιεί στο δικό του + repository. Μια περίληψη του σε τι χρησιμεύει το κάθε αρχείο + περιλαμβάνεται παρακάτω.</para> + + <itemizedlist> + <listitem> + <para><filename>access</filename> - το αρχείο αυτό δεν + χρησιμοποιείται στις συνηθισμένες εγκαταστάσεις + του <application>CVS</application>. Χρησιμοποιείται μόνο + στην <link linkend="freebsdspecific">ειδική εγκατάσταση του &os; + project</link>, για να ελέγχεται η πρόσβαση στο repository. + Μπορείτε να αφαιρέσετε αυτό το αρχείο αν δεν σας ενδιαφέρει να + χρησιμοποιήσετε κάτι τέτοιο στη δική σας εγκατάσταση.</para> + </listitem> + + <listitem> + <para><filename>avail</filename> - το αρχείο αυτό ελέγχει την + πρόσβαση στο repository ανά κατάλογο ή αρχείο. Μέσα σε αυτό, + μπορείτε να καθορίσετε ομάδες χρηστών στους οποίους θέλετε να + δώσετε πρόσβαση στο repository, όπως επίσης και να απαγορέψετε + commits σε επίπεδο καταλόγου ή αρχείου. Θα πρέπει να το + προσαρμόσετε ώστε να περιέχει τις ομάδες χρηστών και τους φακέλους + που θα υπάρχουν στο δικό σας repository.</para> + </listitem> + + <listitem> + <para><filename>cfg.pm</filename> - το αρχείο αυτό ερμηνεύει τις + ρυθμίσεις σας και παρέχει τις εξ' ορισμού ρυθμίσεις. + <emphasis>Δεν</emphasis> πρέπει να αλλάξετε αυτό το αρχείο. + Αντίθετα, θα πρέπει να τοποθετήσετε τις δικές σας αλλαγές στις + ρυθμίσεις στο αρχείο <filename>cfg_local.pm</filename>.</para> + </listitem> + + <listitem> + <para><filename>cfg_local.pm</filename> - το αρχείο αυτό περιέχει + όλες τις ρυθμιζόμενες παραμέτρους του συστήματος. Θα πρέπει να + κάνετε οποιεσδήποτε ρυθμίσεις σας εδώ, όπως σε ποια διεύθυνση θα + στέλνονται τα email από κάθε commit, σε ποιους hosts θα + επιτρέπεται να γίνονται commit, κλπ. Περισσότερες πληροφορίες + σχετικά με αυτό θα βρείτε παρακάτω.</para> + </listitem> + + <listitem> + <para><filename>checkoutlist</filename> - το αρχείο αυτό + περιλαμβάνει όλα τα αρχεία που βρίσκονται κάτω από τον έλεγχο του + <application>CVS</application> στον κατάλογο αυτό—όλα εκτός + από τα προκαθορισμένα αρχεία που δημιουργεί η εντολή + <command>cvs init</command>. Θα πρέπει να + το αλλάξετε για να αφαιρέσετε μερικά, σχετικά μόνο με το &os;, + αρχεία.</para> + </listitem> + + <listitem> + <para><filename>commit_prep.pl</filename> - το script αυτό εκτελεί + διάφορους ελέγχους πριν από κάθε commit, ανάλογα με τις ρυθμίσεις + που έχετε κάνει στο αρχείο <filename>cfg_local.pm</filename>. Δεν + θα χρειαστεί να πειράξετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>commitcheck</filename> - το script αυτό καλείται + απευθείας από το <application>CVS</application>. Πρώτα ελέγχει, + χρησιμοποιώντας το πρόγραμμα <filename>cvs_acls.pl</filename>, αν + ο committer έχει πρόσβαση στο συγκεκριμένο μέρος του δέντρου του + κώδικα, και μετά εκτελεί το <filename>commit_prep.pl</filename> + που εκτελεί τους διάφορους pre-commit ελέγχους. Αν δεν υπάρξει + κάποιο πρόβλημα στους ελέγχους αυτούς, τότε το + <application>CVS</application> θα επιτρέψει στο commit να + συνεχίσει. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>commitinfo</filename> - το αρχείο αυτό + χρησιμοποιείται από το <application>CVS</application> στο να + αποφασίσει ποιο script να εκτελέσει πριν από κάθε commit—στη + δική μας περίπτωση αυτό το ρόλο καλύπτει το + <filename>commitcheck</filename>. Δεν θα + χρειαστεί να πειράξετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>config</filename> - το αρχείο ρυθμίσεων γι' αυτό το + repository. Θα πρέπει να κάνετε αλλαγές σ' αυτό το αρχείο ανάλογα + με τις ανάγκες σας, αλλά οι περισσότεροι διαχειριστές μπορούν να + αφήσουν τις εξ' ορισμού ρυθμίσεις. Περισσότερες πληροφορίες για + τις διάφορες δυνατότητες επιλογών που έχετε στο αρχείο αυτό + μπορείτε να βρείτε στο εγχειρίδιο του <application>CVS</application>.</para> + </listitem> + + <listitem> + <para><filename>cvs_acls.pl</filename> - το script αυτό ελέγχει την + ταυτότητα του committer, και αν επιτρέπεται αυτός να έχει πρόσβαση + στο δέντρο του κώδικα. Αυτό γίνεται με βάση το + αρχείο <filename>avail</filename>. Δεν θα χρειαστεί να πειράξετε + αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>cvsignore</filename> - στο αρχείο αυτό καθορίζονται + τα αρχεία που το <application>CVS</application> δεν θα πρέπει να + επιτρέψει το checkin τους στο repository. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις δικές σας + προτιμήσεις. Περισσότερες πληροφορίες για το αρχείο αυτό θα + βρείτε στο εγχειρίδιο του <application>CVS</application>.</para> + </listitem> + + <listitem> + <para><filename>cvswrappers</filename> - το αρχείο αυτό + χρησιμοποιείται από το <application>CVS</application> για την + ενεργοποίηση ή απενεργοποίηση του keyword expansion, ή για το αν + κάποιο αρχείο θα πρέπει να αντιμετωπίζεται ως binary. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. + Περισσότερες πληροφορίες σχετικά με το αρχείο αυτό μπορείτε να + βρείτε στο εγχειρίδιο του <application>CVS</application>. + Σημειώστε πως οι επιλογές <literal>-t</literal> και + <literal>-f</literal> δε δουλεύουν σωστά για client/server χρήση + του <application>CVS</application>.</para> + </listitem> + + <listitem> + <para><filename>edithook</filename> - το αρχείο αυτό δεν + χρησιμοποιείται πια, αλλά εξακολουθεί να υπάρχει για ιστορικούς + λόγους. Μπορείτε να σβήσετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>editinfo</filename> - το + <application>CVS</application> χρησιμοποιεί αυτό το αρχείο για + παράκαμψη των editors. Το &os; δεν χρησιμοποιεί αυτή την + λειτουργικότητα γιατί η ερμηνεία του log μηνύματος γίνεται από τα + <filename>verifymsg</filename> και <filename>logcheck</filename> + αρχεία. Επιλέξαμε να γίνεται έτσι αυτό επειδή η χρήση του + <filename>editinfo</filename> έχει κάποια προβλήματα με τα commits + από μακριά και με τα commits που χρησιμοποιούν τις επιλογές + <literal>-F</literal> ή <literal>-F</literal>. Δεν θα χρειαστεί να + πειράξετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>exclude</filename> - το αρχείο αυτό περιέχει κανονικές + εκφράσεις (regular expressions) που χρησιμοποιούνται από το πρόγραμμα + <filename>commit_prep.pl</filename> για να προσδιοριστούν τα + αρχεία που δεν είναι απαραίτητο να περιέχουν επικεφαλίδα + επισκόπησης (revision header). Στην εγκατάσταση του &os;, όλα τα + αρχεία κάτω από έλεγχο επισκόπησης (revision control) είναι + απαραίτητο να περιέχουν μια επικεφαλίδα επισκόπησης (όπως + $FreeBSD$). Όλα τα ονόματα αρχείων που ταιριάζουν + με τουλάχιστον μια από τις γραμμές του αρχείου αυτού εξαιρούνται + από τον συγκεκριμένο έλεγχο. Θα πρέπει να προσθέσετε τις ανάλογες + κανονικές εκφράσεις στο αρχείο αυτό όταν κάνετε checkin αρχεία που + δεν είναι απαραίτητο να περιέχουν επικεφαλίδα επισκόπησης. Κατά + τη διάρκεια της εγκατάστασης των νέων scripts ελέγχου, ίσως να + είναι καλύτερα να εξαιρείται ο + κατάλογος <filename class="directory">CVSROOT/</filename> από τον + έλεγχο των headers.</para> + </listitem> + + <listitem> + <para><filename>log_accum.pl</filename> - πρόκειται για ένα script + που παίρνει το log μήνυμα όπως αυτό δίνεται από το + <filename>logcheck</filename> script, και το προσθέτει στο τέλος + ενός αρχείου log στο repository, έτσι ώστε να υπάρχουν αντίγραφα + ασφαλείας από τα commit logs. Επίσης, αναλαμβάνει να στείλει ένα + mail στην email διεύθυνση που έχετε δηλώσει (στο + <filename>cfg_local.pm</filename>). Συνεργάζεται με το + <application>CVS</application> μέσω του αρχείου + <filename>loginfo</filename>. Δεν θα χρειαστεί να πειράξετε το + αρχείο αυτό.</para> + </listitem> + + <listitem> + <para><filename>logcheck</filename> - το αρχείο αυτό ερμηνεύει το + commit log μήνυμα που παρέχουν οι committers, και προσπαθεί κατά + κάποιο τρόπο να το κανονικοποιήσει. Συνεργάζεται με το + <application>CVS</application> μέσω του αρχείου + <filename>verifymsg</filename>. Δεν θα χρειαστεί να πειράξετε το + αρχείο αυτό.</para> + + <note> + <para>Το script εξαρτάται από μια τοπική αλλαγή του &os; στο + <application>CVS</application>: Η αλλαγή αυτή ξαναδιαβάζει το + log μήνυμα αφού αυτό έχει τροποποιηθεί από το script. Η + κανονική έκδοση του <application>CVS</application> προφανώς δεν + κάνει κάτι τέτοιο, οπότε το <filename>logcheck</filename> δε + μπορεί να κάνει μικροδιορθώσεις στο log μήνυμα, αλλά μπορεί να + ελέγξει ότι το μήνυμα δεν έχει συντακτικά λάθη. Απο την έκδοση + 1.11.2 και μετά το ίδιο το <application>CVS</application> μπορεί + να ρυθμιστεί να έχει την ίδια συμπεριφορά με αυτή που έχει η + έκδοση του &os; με την επιλογή + <literal>RereadLogAfterVerify=always</literal> στο αρχείο + <filename>config</filename>.</para> + </note> + </listitem> + + <listitem> + <para><filename>loginfo</filename> - το αρχείο αυτό χρησιμοποιείται + από το <application>CVS</application> για τον έλεγχο του που θα + στέλνονται οι πληροφορίες των logs. Εδώ ενεργοποιείται το + πρόγραμμα <filename>log_accum.pl</filename>. Δεν θα χρειαστεί να + πειράξετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>modules</filename> - το αρχείο αυτό διατηρεί την + παραδοσιακή του σημασία στο <application>CVS</application>. Θα + πρέπει να αφαιρέσετε τα &os; modules από την κανονική έκδοση. + Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες + σας. Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες + στο εγχειρίδιο του <application>CVS</application>.</para> + </listitem> + + <listitem> + <para><filename>notify</filename> - το αρχείο αυτό χρησιμοποιείται + από το <application>CVS</application> στην περίπτωση που κάποιος + τοποθετήσει εντολή παρακολούθησης σε κάποιο αρχείο. Δεν + χρησιμοποιείται στο repository του &os;. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. + Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες στο + εγχειρίδιο του <application>CVS</application>.</para> + </listitem> + + <listitem> + <para><filename>options</filename> - το αρχείο αυτό σχετίζεται άμεσα + με την &os; έκδοση του <application>CVS</application> και + υποστηρίζεται μόνο από αυτή και την έκδοση του Debian. Περιέχει + το keyword που θα γίνεται expand στα revision headers. Θα πρέπει + να τροποποιήσετε το αρχείο αυτό για να είναι ίδιο με την έκδοση + που έχετε εισάγει στο αρχείο <filename>cfg_local.pm</filename> (αν + αποφασίσετε να χρησιμοποιήσετε αυτή την λειτουργία, που προς το + παρόν δουλεύει σωστά μόνο με την έκδοση του + <application>CVS</application> που έχει το &os;).</para> + </listitem> + + <listitem> + <para><filename>rcsinfo</filename> - το αρχείο αυτό αντιστοιχεί + φακέλους του repository σε αρχεία template, όπως π.χ. το + <filename>rcstemplate</filename>. Εξ' ορισμού, το + &os; χρησιμοποιεί ένα template για ολόκληρο το repository. + Μπορείτε να προσθέσετε και άλλα στο αρχείο αυτό αν το + επιθυμείτε.</para> + </listitem> + + <listitem> + <para><filename>rcstemplate</filename> - το αρχείο αυτό είναι το + template που θα δούν τελικά οι committers όταν θα κάνουν checkin. + Θα πρέπει να επεξεργαστείτε αυτό το αρχείο ώστε να περιγράφει τις + διάφορες επιπλέον παραμέτρους που ορίσατε στο αρχείο + <filename>cfg_local.pm</filename>.</para> + </listitem> + + <listitem> + <para><filename>tagcheck</filename> - το αρχείο αυτό ελέγχει την + πρόσβαση στην χρήση των tags στο repository. Η κανονική έκδοση + του &os; δεν επιτρέπει tags με ονόματα όπως RELENG*, λόγω της + διαδικασίας δημιουργίας των επίσημων εκδόσεων. Θα πρέπει να + επεξεργαστείτε το αρχείο αυτό ανάλογα με τις δικές σας ανάλογες + προτιμήσεις.</para> + </listitem> + + <listitem> + <para><filename>taginfo</filename> - το αρχείο αυτό αντιστοιχεί + λειτουργίες των tags σε φακέλους του repository με προγράμματα + ελέγχου, όπως το <filename>tagcheck</filename>. Δεν θα χρειαστεί + να τροποποιήσετε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>unwrap</filename> - το αρχείο αυτό μπορεί να + χρησιμοποιηθεί για το αυτόματο <quote>unwrap</quote> των binary + αρχείων (δείτε <filename>cvswrappers</filename>) στο checkout. + Δεν χρησιμοποιείται στην τρέχουσα εγκατάσταση του CVS για το &os; + επειδή δεν λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα + χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para> + </listitem> + + <listitem> + <para><filename>verifymsg</filename> - το αρχείο αυτό αντιστοιχεί + υποκαταλόγους του repository σε προγράμματα επεξεργασίας των + μηνυμάτων του log, όπως π.χ. το <filename>logcheck</filename>. + Δεν θα χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para> + </listitem> + + <listitem> + <para><filename>wrap</filename> - το script αυτό χρειάζεται για το + αυτόματο <quote>wrap</quote> των binary αρχείων (δείτε + <filename>cvswrappers</filename>) κατά το checkin. Δεν + χρησιμοποιείται στην τρέχουσα εγκατάσταση του &os; επειδή δεν + λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα + χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para> + </listitem> + </itemizedlist> + </sect2> + + <sect2> + <title>Τροποποιώντας τα scripts</title> + + <para>Το επόμενο βήμα είναι η αλλαγή των scripts ώστε να μπορούν να + χρησιμοποιηθούν στο δικό σας περιβάλλον. Θα πρέπει να ελέγξετε όλα τα + αρχεία μέσα στον φάκελο και να κάνετε τις τροποποιήσεις σας. Πιο + συγκεκριμένα, θα θέλετε κατά πάσα πιθανότητα να τροποποιήσετε τα + παρακάτω αρχεία:</para> + + <procedure> + <step> + <para>Αν δεν θέλετε να χρησιμοποιήσετε τις λειτουργίες των scripts + οι οποίες χρησιμοποιούνται + <link linkend="freebsdspecific">αποκλειστικά από το &os;</link>, + μπορείτε να αφαιρέσετε με ασφάλεια το αρχείο + <filename>access</filename>: + + <screen>&prompt.user; <userinput>cvs rm -f access</userinput></screen></para> + </step> + + <step> + <para>Διορθώστε το αρχείο <filename>avail</filename> ώστε να + περιέχει τους διάφορους φακέλους του repository στους οποίους + θέλετε να ελέγξετε την πρόσβαση. Σιγουρευτείτε ότι θα διατηρήσετε + ανέπαφη την <literal>avail||CVSROOT</literal> γραμμή, ειδάλλως θα + αποκλείσετε ακόμα και τον εαυτό σας με το επόμενο βημα.</para> + + <para>Εκτός αυτού στο συγκεκριμένο αρχείο μπορείτε να εισάγετε και + ομάδες από committers. Εξ' ορισμού, το &os; χρησιμοποιεί το + αρχείο <filename>access</filename> για την τοποθέτηση όλων των + committers, αλλά μπορείτε να χρησιμοποιήσετε όποιο άλλο + επιθυμείτε. Μπορείτε επίσης να προσθέσετε και ομάδες αν το + επιθυμείτε (η σύνταξη καθορίζεται στην κορυφή του αρχείου + <filename>cvs_acls.pl</filename>).</para> + </step> + + <step> + <para>Διορθώστε το αρχείο <filename>cfg_local.pm</filename> ώστε να + περιέχει τις επιλογές που επιθυμείτε. Πιο συγκεκριμένα, θα πρέπει + να ελέγξετε τις παρακάτω τροποποιήσιμες επιλογές:</para> + + <itemizedlist> + <listitem> + <para><literal>%TEMPLATE_HEADERS</literal> - Αυτές οι + επικεφαλίδες επεξεργάζονται από τα log scripts, και + τοποθετούνται κάτω από το mail του κάθε commit αν υπάρχουν και + δεν είναι κενές στο μήνυμα του commit. Γενικά, μπορείτε να + αφαιρέσετε τις καταχωρήσεις <literal>PR</literal> και + <literal>MFC after</literal>—αφού αυτές σχετίζονται με + το bug tracking σύστημα του &os; και τον τρόπο που + διαχειρίζεται το &os; τα branches του repository του. Και + φυσικά μπορείτε να προσθέσετε τις δικές σας.</para> + </listitem> + + <listitem> + <para><literal>$MAIL_BRANCH_HDR</literal> - Αν θέλετε να + προστίθεται αυτόματα μια επικεφαλίδα σε κάθε commit μήνυμα + mail, η οποία θα περιγράφει το branch στο οποίο έγινε το + συγκεκριμένο commit, ορίστε την τιμή αυτή να ταιριάζει με την + δική σας εγκατάσταση. Αφήστε την κενή αν δεν επιθυμείτε να + προστίθεται αυτόματα μια τέτοια επικεφαλίδα.</para> + </listitem> + + <listitem> + <para><literal>@COMMIT_HOSTS</literal> - Ορίστε την τιμή αυτή σε + μια λίστα από συστήματα (hosts), από τα οποία επιτρέπεται να + γίνονται commits.</para> + </listitem> + + <listitem> + <para><literal>$MAILADDRS</literal> - Ρυθμίστε αυτή την τιμή στο + email του διαχειριστή ή σε μια διεύθυνση λίστας στην οποία + θέλετε να πηγαίνουν τα mail των commit μηνυμάτων.</para> + </listitem> + + <listitem> + <para><literal>@LOG_FILE_MAP</literal> - Αλλάξτε αυτό το array + όπως επιθυμείτε. Κάθε regexp αντιστοιχεί στο συγκεκριμένο + φάκελο στον οποίο γίνεται το commit, και το log μήνυμα του + commit αποθηκεύεται κάτω από τον κατάλογο + <filename class="directory">CVSROOT</filename>, στον υποκατάλογο + <filename class="directory">commitlogs</filename>, στο αρχείο + που αναφέρεται στην αντίστοιχη εγγραφή του + πίνακα <literal>@LOG_FILE_MAP</literal>.</para> + </listitem> + + <listitem> + <para><literal>$COMMITCHECK_EXTRA</literal> - Αν δεν θέλετε να + χρησιμοποιήσετε <link linkend="freebsdspecific">τους ίδιους + ελέγχους πρόσβασης με το &os;</link>, θα πρέπει να αφαιρέσετε + τον ορισμό της τιμής <literal>$COMMITCHECK_EXTRA</literal> από + το αρχείο αυτό.</para> + </listitem> + </itemizedlist> + + <note> + <para>Η αλλαγή της παραμέτρου <literal>$IDHEADER</literal> είναι + εγγυημένο ότι θα δουλέψει μόνο σε πλατφόρμες &os;. + Εξαρτάται από ειδικές μετατροπές του &os; στο + <application>CVS</application>.</para> + </note> + + <para>Μπορείτε να ελέγξετε το αρχείο <filename>cfg.pm</filename> για + να δείτε ποιές άλλες παραμέτρους μπορείτε να αλλάξετε, αλλά οι + παραπάνω είναι οι πιο συνήθεις επιλογές.</para> + </step> + + <step> + <para>Επεξεργαστείτε το αρχείο <filename>exclude</filename> για να + αφαιρέσετε τις ειδικές καταχωρήσεις του &os; (όπως όλες τις + γραμμές που ξεκινούν με <literal>^ports/</literal> κτλ.). Εκτός + αυτού, βάλτε σε σχόλια τις γραμμές που ξεκινούν με + <literal>^CVSROOT/</literal>, και προσθέστε μια γραμμή που θα + περιέχει μόνο το <literal>^CVSROOT/</literal>. Αφού εγκατασταθεί + ο wrapper, μπορείτε να προσθέσετε το δικό σας header στα αρχεία + που βρίσκονται μέσα στον κατάλογο + <filename class="directory">CVSROOT</filename> και να επαναφέρετε + τις γραμμές αυτές, αλλά προς το παρόν απλά θα σας δημιουργήσουν + προβλήματα όταν θα προσπαθήσετε να κάνετε commit αργότερα.</para> + </step> + + <step> + <para>Ανοίξτε το αρχείο <filename>modules</filename>, και αφαιρέστε + όλες τις σχετικές με το &os; καταχωρήσεις. Προσθέστε τα δικά + σας modules αν το επιθυμείτε.</para> + </step> + + <step> + <note> + <para>Το βήμα αυτό είναι απαραίτητο μόνο αν έχετε ορίσει + κάποια τιμή στην παράμετρο <literal>$IDHEADER</literal> του + αρχείου <filename>cfg_local.pm</filename> (η οποία δουλεύει μόνο + εφόσον χρησιμοποιείτε την τροποποιημένη έκδοση του + <application>CVS</application> που έχει το &os;).</para> + </note> + + <para>Διορθώστε το αρχείο <filename>options</filename> ώστε να + ταιριάζει με το tag που ορίσατε στο αρχείο + <filename>cfg_local.pm</filename>. Μια αναζήτηση και + αντικατάσταση του <literal>FreeBSD</literal> σε όλο το αρχείο + είναι αρκετή.</para> + </step> + + <step> + <para>Επεξεργαστείτε το αρχείο <filename>rcstemplate</filename> ώστε + να περιέχει τα ίδια keywords με αυτά που έχετε ορίσει στο + <filename>cfg_local.pm</filename>.</para> + </step> + + <step> + <para>Προαιρετικά, αφαιρέστε τους ελέγχους του &os; από το αρχείο + <filename>tagcheck</filename>. Μπορείτε απλά να προσθέσετε + <literal>exit 0</literal> στην αρχή του αρχείου για να + απενεργοποιήσετε όλους τους ελέγχους στο tagging.</para> + </step> + + <step> + <para>Το τελευταίο πράγμα που πρέπει να γίνει, είναι να + σιγουρευτείτε ότι τα commitlogs μπορούν να αποθηκευτούν. + Τα <application>CVS</application> scripts του &os; + αποθηκεύουν αυτά τα logs στον υποκατάλογο <filename class="directory">commitlogs</filename> + του καταλόγου <filename class="directory">CVSROOT</filename>. + Αυτός ο φάκελος πρέπει να + δημιουργηθεί, οπότε κάντε τα ακόλουθα:</para> + + <screen>&prompt.user; <userinput>mkdir commitlogs</userinput> +&prompt.user; <userinput>cvs add commitlogs</userinput></screen> + </step> + </procedure> + + <para>Τώρα, αφού ελέγξετε τα πάντα προσεκτικά, θα πρέπει να κάνετε + commit τις αλλαγές σας. Φροντίστε να είστε σίγουροι ότι έχετε δώσει + στον εαυτό σας πρόσβαση στον + φάκελο <filename class="directory">CVSROOT</filename> μέσα από το + αρχείο <filename>avail</filename> πριν κάνετε οτιδήποτε, εφόσον στην + αντίθετη περίπτωση θα κλειδώσετε τον εαυτό σας έξω. Οπότε, φροντίστε + τα πάντα να είναι όπως επιθυμείτε, και μόνο τότε δώστε τα ακόλουθα: + + <screen>&prompt.user; <userinput>cvs commit -m '<replaceable>- Initial FreeBSD scripts commit</replaceable>'</userinput></screen></para> + </sect2> + + <sect2> + <title>Δοκιμάζοντας την Εγκατάσταση</title> + + <para>Είστε έτοιμοι για την πρώτη σας δοκιμή: Ένα forced commit στο + αρχείο <filename>avail</filename>, για να σιγουρευτείτε ότι όλα + δουλεύουν όπως θα έπρεπε.</para> + + <screen>&prompt.user; <userinput>cvs commit -f -m '<replaceable>Forced commit to test the new CVSROOT scripts</replaceable>' avail</userinput></screen> + + <para>Άν όλα πάνε καλά, συγχαρητήρια! Έχετε καταφέρει να στήσετε μια + πλήρως λειτουργική εγκατάσταση των &os; scripts για το repository σας. + Στην περίπτωση που το <application>CVS</application> εξακολουθεί να + παραπονιέται για κάτι, επιστρέψτε στις προηγούμενες ενότητες και + ελέγξτε ξανά ότι έχετε εκτελέσει σωστά όλα τα προηγούμενα + βήματα.</para> + </sect2> + </sect1> + + <sect1 id="freebsdspecific"> + <title>Ειδική Εγκατάσταση του &os; Project</title> + + <para>Το ίδιο το &os; project χρησιμοποιεί μια ελαφρώς διαφορετική + εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο + <filename class="directory">freebsd</filename> του + <filename class="directory">CVSROOT</filename> που χρησιμοποιείται στο + &os;. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των + committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group. + Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει + τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε + αυτό του repository.</para> + + <para>Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που + θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε + μια σύντομη επισκόπηση των σχετικών αρχείων.</para> + + <sect2> + <title>Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του + &os;</title> + + <para> + <itemizedlist> + <listitem> + <para><filename>access</filename> - το αρχείο αυτό ελέγχει τις + πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το + επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του + project σας.</para> + </listitem> + + <listitem> + <para><filename>freebsd/commitmail.pl</filename> - το αρχείο αυτό + δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους. + Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο.</para> + </listitem> + + <listitem> + <para><filename>freebsd/cvswrap.c</filename> - πρόκειται για τον + πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για + να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν. + Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε + παρακάτω. Θα πρέπει να διορθώσετε τα paths στις + <literal>ACCESS</literal> και <literal>REALCVS</literal> + μακροεντολές ώστε να ταιριάζουν με τη δική σας + εγκατάσταση.</para> + </listitem> + + <listitem> + <para><filename>freebsd/mailsend.c</filename> - το αρχείο αυτό + χρειάζεται για την σχετική με τις λίστες ταχυδρομείου + εγκατάσταση του &os;. Δεν θα χρειαστεί να πειράξετε το αρχείο + αυτό.</para> + </listitem> + </itemizedlist> + </para> + </sect2> + + <sect2> + <title>Η διαδικασία</title> + + <procedure> + <step> + <para>Διορθώστε το αρχείο <filename>access</filename> ώστε να + περιέχει μόνο το δικό σας username.</para> + </step> + + <step> + <para>Διορθώστε το αρχείο <filename>cvswrap.c</filename> ώστε να + περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται + ως μια μακροεντολή που ονομάζεται <literal>ACCESS</literal>. Θα + πρέπει επίσης να αλλάξετε και το όνομα αρχείου του πραγματικού + <command>cvs</command> binary αν αυτή που υπάρχει δεν είναι η + σωστή για τη δική σας περίπτωση. Το κανονικό + <filename>cvswrap.c</filename> θεωρεί πως θα αντικαταστήσετε την + εντολή cvs σε επίπεδο συστήματος με το cvwrap, κι η αρχική εντολή + cvs θα μεταφερθεί στο + αρχείο <filename>/usr/bin/ncvs</filename>.</para> + + <para>Το δικό μου αντίτυπο του αρχείου + <filename>cvswrap.c</filename> έχει τα ακόλουθα:</para> + + <programlisting>#define ACCESS "/local/cvsroot/CVSROOT/access" +#define REALCVS "/usr/bin/ncvs"</programlisting> + </step> + + <step> + <para>Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να + είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν + γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο + <filename>cvswrap.c</filename> στον κατάλογο + <filename>CVSROOT</filename>.</para> + + <para>Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να + περιέχει τα σωστά paths:</para> + + <screen>&prompt.user; <userinput>cc -o cvs cvswrap.c</userinput></screen> + + <para>Στη συνέχεια εγκαταστήστε το νέο cvs εκτελέσιμο ακολουθώντας + τα ακόλουθα βήματα (θα πρέπει να είστε root για το βήμα + αυτό):</para> + + <screen>&prompt.root; <userinput>mv /usr/bin/cvs /usr/bin/ncvs</userinput> +&prompt.root; <userinput>mv cvs /usr/bin/cvs</userinput> +&prompt.root; <userinput>chown root:<replaceable>ncvs</replaceable> /usr/bin/cvs /usr/bin/ncvs</userinput> +&prompt.root; <userinput>chmod o-rx /usr/bin/ncvs</userinput> +&prompt.root; <userinput>chmod u-w,g+s /usr/bin/cvs</userinput></screen> + + <para>Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού + <command>cvs</command> εντολή, κάνοντας έτσι σίγουρο ότι + οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να + έχει τα κατάλληλα επίπεδα πρόσβασης.</para> + </step> + + <step> + <para>Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το + repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από + τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το + οποίο θα γίνεται και η τελική πρόσβαση.</para> + </step> + </procedure> + </sect2> + + <sect2> + <title>Ελέγχοντας την εγκατάσταση</title> + + <para>Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το + δοκιμάσετε κάνοντας ένα forced commit στο αρχείο + <filename>access</filename>:</para> + + <screen>&prompt.user; <userinput>cvs commit -f -m '<replaceable>Forced commit to test the new CVSROOT scripts</replaceable>' access</userinput></screen> + + <para>Ξανά, αν αυτό αποτύχει, ελέγξτε ότι όλα τα παραπάνω βήματα έχουν + εκτελεστεί σωστά.</para> + </sect2> + </sect1> +</article> + +<!-- + Local Variables: + mode: sgml + coding: iso-8859-7 + fill-column: 78 + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + End: +--> |