Skip to content

Commit ff04a58

Browse files
committed
final revision of files from book/01-introduction module
1 parent 773ba0d commit ff04a58

File tree

6 files changed

+144
-152
lines changed

6 files changed

+144
-152
lines changed
Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
=== Σχετικά με τον έλεγχο εκδόσεων
22

33
(((έλεγχος εκδόσεων)))
4-
Τι είναι ο έλεγχος εκδόσεων και γιατί πρέπει να σας απασχολεί;
5-
Ο __έλεγχος εκδόσεων__ είναι ένα σύστημα το οποίο καταγράφει αλλαγές σε ένα αρχείο ή σε ένα σύνολο αρχείων έτσι ώστε να μπορείτε να ανακαλέσετε συγκεκριμένες εκδόσεις τους αργότερα.
4+
Τι είναι ο "`έλεγχος εκδόσεων`" και γιατί πρέπει να σας απασχολεί;
5+
Ο έλεγχος εκδόσεων είναι ένα σύστημα το οποίο καταγράφει αλλαγές σε ένα αρχείο ή σε ένα σύνολο αρχείων έτσι ώστε να μπορείτε να ανακαλέσετε συγκεκριμένες εκδόσεις τους αργότερα.
66
Στα παραδείγματα του βιβλίου, τα αρχεία που θα χρησιμοποιήσετε για έλεγχο εκδόσεων θα είναι αρχεία πηγαίου κώδικα λογισμικού αν και στην πραγματικότητα, θα μπορούσατε να χρησιμοποιήσετε αρχεία οποιουδήποτε τύπου.
77

88
Αν είστε γραφίστες ή σχεδιαστές ιστοσελίδων και θέλετε να κρατήσετε κάθε έκδοση κάποιας εικόνας ή κάποιας σελιδοποίησης (κάτι το οποίο είναι εξαιρετικά πιθανό) τότε ένα Σύστημα Ελέγχου Εκδόσεων (Version Control System, VCS) είναι μια πολύ σοφή επιλογή.
9-
Ένα τέτοιο σύστημα σάς επιτρέπει να επαναφέρετε συγκεκριμένα αρχεία, ακόμα και ολόκληρο έργο (project) σε προγενέστερη κατάσταση, να συγκρίνετε αλλαγές που έχουν γίνει με την πάροδο του χρόνου, να δείτε ποιος τροποποίησε τελευταίος κάτι που ενδεχομένως δημιουργεί κάποιο πρόβλημα, ποιος εντόπισε κάποιο πρόβλημα και άλλα πολλά.
9+
Ένα τέτοιο σύστημα σάς επιτρέπει να επαναφέρετε συγκεκριμένα αρχεία, ακόμα και ολόκληρο έργο (project) σε προγενέστερη κατάσταση, να συγκρίνετε αλλαγές που έχουν γίνει με την πάροδο του χρόνου, να δείτε ποιος τροποποίησε τελευταίος κάτι που ενδεχομένως δημιουργεί κάποιο πρόβλημα, ποιος δημιούργησε κάποιο πρόβλημα και άλλα πολλά.
1010
Η χρήση ενός συστήματος ελέγχου εκδόσεων σημαίνει επίσης ότι αν τα κάνετε θάλασσα ή χάσετε αρχεία, είναι εύκολο να τα ανακτήσετε.
1111
Επιπλέον, όλες αυτές οι δυνατότητες προσφέρονται με πολύ μικρή επιβάρυνση.
1212

@@ -17,47 +17,45 @@
1717
Αυτή η προσέγγιση είναι πολύ κοινή επειδή είναι τόσο απλή, συγχρόνως όμως είναι και πολύ επιρρεπής σε σφάλματα.
1818
Είναι εύκολο να ξεχάσετε σε ποιον φάκελο βρίσκεστε και να επεξεργαστείτε λάθος αρχείο ή να διαγράψετε λάθος αρχεία.
1919

20-
Για να αντιμετωπίσουν αυτό το πρόβλημα οι προγραμματιστές ανέπτυξαν από παλιά _τοπικά_ VCS.
21-
Τα συστήματα αυτά διέθεταν μια απλή βάση δεδομένων που κατέγραφε όλες τις αλλαγές που είχαν γίνει σε αρχεία που βρίσκοντας υπό έλεγχο εκδόσεων.
20+
Για να αντιμετωπίσουν αυτό το πρόβλημα οι προγραμματιστές ανέπτυξαν από παλιά τοπικά VCS που είχαν απλή βάση δεδομένων που κρατούσε όλες τις αλλαγές των αρχείων κάτω από έλεγχο εκδόσεων.
2221

2322
.Διάγραμμα τοπικού ελέγχου εκδόσεων
2423
image::images/local.png[Διάγραμμα τοπικού ελέγχου εκδόσεων]
2524

2625
Ένα από τα πιο δημοφιλή VCS ήταν το σύστημα RCS το οποίο διανέμεται ακόμα σε πολλούς υπολογιστές.
27-
Το https://www.gnu.org/software/rcs/[RCS^] δουλεύει χρησιμοποιώντας συλλογές από επιθέματα (patches) (διαφορές μεταξύ αρχείων) σε μια συγκεκριμένη μορφή στον δίσκο. Έπειτα, μπορεί να ξαναδημιουργήσει κάθε αρχείο όπως ήταν σε οποιοδήποτε χρονικό σημείο εφαρμόζοντας όλα τα επιθέματα.
26+
Το https://www.gnu.org/software/rcs/[RCS^] δουλεύει χρησιμοποιώντας συλλογές από επιθέματα (patches) (που είναι οι διαφορές μεταξύ αρχείων) σε μια συγκεκριμένη μορφή στον δίσκο. Έπειτα, μπορεί να ξαναδημιουργήσει κάθε αρχείο όπως ήταν σε οποιοδήποτε χρονικό σημείο εφαρμόζοντας όλα τα επιθέματα.
2827

2928
==== Συγκεντρωτικά συστήματα ελέγχου εκδόσεων
3029

3130
(((έλεγχος εκδόσεων, συγκεντρωτικός)))
3231
Το επόμενο σημαντικό πρόβλημα που αντιμετώπισαν οι προγραμματιστές ήταν η ανάγκη για συνεργασία με προγραμματιστές άλλων συστημάτων.
33-
Για την αντιμετώπιση του συγκεκριμένου προβλήματος, αναπτύχθηκαν τα συγκεντρωτικά συστήματα ελέγχου εκδόσεων (Centralized Version Control Systems, CVCS).
34-
Τα συστήματα αυτά, όπως το CVS, το Subversion και το Perforce έχουν έναν διακομιστή (server), ο οποίος περιέχει όλα τα αρχεία και κάποιους πελάτες (clients) οι οποίοι ανασύρουν (check out) τα αρχεία τους από αυτή την κεντρική τοποθεσία. (((CVS)))(((Subversion)))(((Perforce)))
32+
Για την αντιμετώπιση του συγκεκριμένου προβλήματος, αναπτύχθηκαν τα συγκεντρωτικά συστήματα ελέγχου εκδόσεων (Centralized Version Control Systems, CVCSs).
33+
Τα συστήματα αυτά (όπως το CVS, το Subversion και το Perforce) έχουν έναν διακομιστή (server), ο οποίος περιέχει όλα τα αρχεία και κάποιους πελάτες (clients) οι οποίοι ενημερώνουν (check out) τα αρχεία τους από αυτή την κεντρική τοποθεσία. (((CVS)))(((Subversion)))(((Perforce)))
3534
Για πολλά χρόνια, αυτό ήταν και το καθιερωμένο πρότυπο για τα συστήματα ελέγχου εκδόσεων.
3635

37-
.Συγκεντρωτικός έλεγχος εκδόσεων.
38-
image::images/centralized.png[Συγκεντρωτικός έλεγχος εκδόσεων.]
36+
.Συγκεντρωτικός έλεγχος εκδόσεων
37+
image::images/centralized.png[Συγκεντρωτικός έλεγχος εκδόσεων]
3938

40-
Αυτή η μέθοδος προσφέρει πολλά πλεονεκτήματα, ειδικά σε σχέση με τα τοπικά VCS.
39+
Αυτή η μέθοδος προσφέρει πολλά πλεονεκτήματα, ειδικά σε σχέση με τα τοπικά VCSs.
4140
Για παράδειγμα, ο καθένας γνωρίζει σε κάποιο βαθμό με τι ασχολούνται όλοι οι υπόλοιποι σε ένα έργο.
4241
Οι διαχειριστές ελέγχουν σε μεγάλο βαθμό τι επιτρέπεται να κάνει ο καθένας και επιπλέον η διαχείριση ενός συγκεντρωτικού συστήματος ελέγχου εκδόσεων είναι πολύ ευκολότερη από τη διαχείριση τοπικών βάσεων δεδομένων σε κάθε πελάτη.
4342

4443
Η συγκεκριμένη μέθοδος έχει όμως και σημαντικά μειονεκτήματα.
4544
Το πιο προφανές είναι το γεγονός ότι μια βλάβη στον κεντρικό διακομιστή προκαλεί την αποτυχία όλου του συστήματος.
4645
Αν ο διακομιστής πέσει για μία ώρα, τότε κατά τη διάρκεια αυτής της ώρας κανείς δεν μπορεί να συνεργαστεί με το VCS ή να αποθηκεύσει αλλαγές σε αυτό.
47-
Αν για παράδειγμα ο σκληρός δίσκος στον οποίο βρίσκεται η κεντρική βάση δεδομένων καταστραφεί και δεν έχουν κρατηθεί τα απαραίτητα αντίγραφα ασφαλείας τότε χάνονται τα πάντα.
48-
Ολόκληρο το ιστορικό του έργου χάνεται εκτός από στιγμιότυπα (snapshots) του έργου που μπορεί να έχουν κρατήσει στους υπολογιστές τους κάποιοι προγραμματιστές.
46+
Αν για παράδειγμα ο σκληρός δίσκος στον οποίο βρίσκεται η κεντρική βάση δεδομένων καταστραφεί και δεν έχουν κρατηθεί τα απαραίτητα αντίγραφα ασφαλείας τότε χάνονται τα πάντα -- ολόκληρο το ιστορικό του έργου χάνεται εκτός από στιγμιότυπα (snapshots) του έργου που μπορεί να έχουν κρατήσει στους υπολογιστές τους κάποιοι προγραμματιστές.
4947
Τα τοπικά VCS πάσχουν από το ίδιο πρόβλημα -- όταν το ιστορικό ενός έργου βρίσκεται σε ένα και μοναδικό μέρος τότε υπάρχει ο κίνδυνος να χαθούν τα πάντα.
5048

5149
==== Κατανεμημένα συστήματα ελέγχου εκδόσεων
5250

5351
(((έλεγχος εκδόσεων, κατανεμημένος)))
54-
Στο σημείο αυτό έρχονται τα κατανεμημένα (distributed) VCS.
55-
Σε ένα κατανεμημένο σύστημα (όπως το Git, το Mercurial, το Bazaar ή το Darcs) οι πελάτες δεν ανακτούν μόνο το τελευταίο στιγμιότυπο των αρχείων τους, αλλά ολόκληρο το αποθετήριο (repository), συμπεριλαμβανομένης και ολόκληρου του ιστορικού.
52+
Στο σημείο αυτό έρχονται τα κατανεμημένα (Distributed) DVCS.
53+
Σε ένα κατανεμημένο σύστημα (όπως το Git, το Mercurial ή το Darcs) οι πελάτες δεν ανακτούν μόνο το τελευταίο στιγμιότυπο των αρχείων τους, αλλά ολόκληρο το αποθετήριο (repository), συμπεριλαμβανομένης και ολόκληρου του ιστορικού.
5654
Συνεπώς, στην περίπτωση που ο διακομιστής πεθάνει, τα τοπικά αποθετήρια που έχουν οι πελάτες μπορούν να χρησιμοποιηθούν ώστε να επαναφέρουν τα δεδομένα του.
5755
Κάθε κλώνος είναι ένα πλήρες αντίγραφο ασφαλείας όλων των δεδομένων.
5856

59-
.Κατανεμημένος έλεγχος εκδόσεων.
60-
image::images/distributed.png[Κατανεμημένος έλεγχος εκδόσεων.]
57+
.Διάγραμμα κατανεμημένος έλεγχος εκδόσεων
58+
image::images/distributed.png[.Διάγραμμα κατανεμημένος έλεγχος εκδόσεων]
6159

62-
Επιπλέον, πολλά από αυτά τα συστήματα μπορούν να συνεργάζονται με πολλά απομακρυσμένα αποθετήρια, έτσι ώστε να μπορείτε να συνεργάζεστε με πολλές ομάδες και με διαφορετικούς τρόπους ταυτόχρονα.
60+
Επιπλέον, πολλά από αυτά τα συστήματα μπορούν να συνεργάζονται με πολλά απομακρυσμένα αποθετήρια, έτσι ώστε να μπορείτε να συνεργάζεστε με πολλές ομάδες και με διαφορετικούς τρόπους ταυτόχρονα στο ίδιο έργο.
6361
Αυτό σάς επιτρέπει να δημιουργείτε διάφορους τύπους ροής εργασιών (workflows) όπως ιεραρχικά μοντέλα, που είναι αδύνατο να δημιουργήσετε σε συγκεντρωτικά συστήματα.

book/01-introduction/sections/command-line.asc

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
=== Η γραμμή εντολών
22

3-
Υπάρχουν πολλοί διαφορετικοί τρόποι με τους οποίους μπορείτε να χρησιμοποιήσετε το Git.
4-
Υπάρχουν εργαλεία της γραμμής εντολών αλλά και διάφορα γραφικά εργαλεία με ποικίλες δυνατότητες.
3+
Υπάρχουν πολλοί διαφορετικοί τρόποι με τους οποίους μπορούμε να χρησιμοποιήσουμε το Git.
4+
Υπάρχουν τα εργαλεία γραμμής εντολών αλλά και διάφορα γραφικά εργαλεία με ποικίλες δυνατότητες.
55
Στο βιβλίο αυτό θα χρησιμοποιήσουμε το Git μέσα από την γραμμή εντολών.
6-
Καταρχάς, η γραμμή εντολών είναι το μόνο εργαλείο στο οποίο μπορεί κανείς να τρέξει *όλες* τις εντολές του Git -- για λόγους απλότητας τα περισσότερα από τα γραφικά εργαλεία υλοποιούν μόνο ένα υποσύνολο των λειτουργιών του Git.
7-
Αν γνωρίζετε πώς να χρησιμοποιείτε το Git από την γραμμή εντολών, τότε θα μπορέσετε να καταλάβετε και πώς να χρησιμοποιήσετε τα γραφικά εργαλεία.
8-
Όμως το αντίστροφο δεν ισχύει πάντα.
6+
Καταρχάς, η γραμμή εντολών είναι το μόνο εργαλείο στο οποίο μπορεί κανείς να τρέξει _όλες_ τις εντολές του Git -- για λόγους απλότητας τα περισσότερα από τα γραφικά εργαλεία υλοποιούν μόνο ένα υποσύνολο των λειτουργιών του Git.
7+
Αν γνωρίζετε πώς να χρησιμοποιείτε το Git από την γραμμή εντολών, τότε θα μπορέσετε να καταλάβετε και πώς να χρησιμοποιήσετε τα γραφικά εργαλεία, ενώ το αντίστροφο δεν ισχύει πάντα.
98
Επίσης, ενώ η επιλογή ενός γραφικού προγράμματος είναι θέμα προσωπικού γούστου, _όλοι_ οι χρήστες έχουν τα εργαλεία γραμμής εντολών εγκατεστημένα και διαθέσιμα.
109

1110
Συνεπώς θεωρείτε ότι γνωρίζετε πώς να ανοίξετε την εφαρμογή Terminal στο Mac ή τη γραμμή εντολών (Command Prompt) ή το Powershell στα Windows.

0 commit comments

Comments
 (0)