Τι είναι το σύστημα ελέγχου έκδοσης. Μια κοινή λειτουργία όλων των συστημάτων ελέγχου αναθεώρησης είναι η λειτουργία που μας επιτρέπει να αναιρούμε τις αλλαγές που κάναμε νωρίτερα. Χαρακτηριστικά TortoiseSVN. Ενσωμάτωση κελύφους

Για κάθε λειτουργία που έχω μετρήσει, το Mercurial αποδίδει καλύτερα από το Subversion. Η ταχύτητα είναι 2-6 φορές μεγαλύτερη όταν πρόκειται τοπικός Subversion 1.4.3 repositories (τα περισσότερα γρήγορη μέθοδοςπρόσβαση). Σε μια πιο ρεαλιστική περίπτωση χρήσης, ένα διαδικτυακό αποθετήριο, το Subversion βρίσκεται σε πολύ χειρότερη θέση. Επειδή οι εντολές Subversion πρέπει να επικοινωνούν με τον διακομιστή και η Subversion δεν διαθέτει χρήσιμες δυνατότητες αναπαραγωγής, απόδοση διακομιστή και διακίνησητα δίκτυα γίνονται εμπόδια ακόμη και για μικρά έργα.

Επιπλέον, το Subversion απαιτεί πρόσθετο χώρο στο δίσκο προκειμένου να αποφευχθούν αιτήματα δικτύου κατά την εκτέλεση ορισμένων λειτουργιών: εύρεση τροποποιημένων αρχείων (κατάσταση) και εμφάνιση αλλαγών (διαφορά). Το αποτέλεσμα είναι ένα αντίγραφο εργασίας Subversion που έχει το ίδιο μέγεθος (αν όχι μεγαλύτερο) με το αποθετήριο Mercurial και τον κατάλογο εργασίας μαζί, αν και το αποθετήριο Mercurial περιέχει το πλήρες ιστορικό του έργου.

Το Subversion έχει εκτεταμένη υποστήριξη για κιτ εργαλείων τρίτων. Από αυτή την άποψη, η Mercurial αυτή τη στιγμή υστερεί. Παρόλο που το χάσμα κλείνει, ορισμένα από τα βοηθητικά προγράμματα GUI για τη Mercurial έχουν καλύτερη απόδοση από τα αντίστοιχα της Subversion. Όπως και η Mercurial, η Subversion έχει ένα εξαιρετικό εγχειρίδιο χρήσης.

Επειδή το Subversion δεν διατηρεί ιστορικό αλλαγών στον πελάτη, είναι κατάλληλο για τη διαχείριση έργων που περιέχουν μεγάλο αριθμό δυαδικών αρχείων. Εάν κάνετε 50 αλλαγές σε ένα ασυμπίεστο αρχείο δέκα megabyte, ο χώρος στο δίσκο που χρησιμοποιείται από το Subversion παραμένει αμετάβλητος. Ο χώρος που χρησιμοποιείται από οποιοδήποτε από τα κατανεμημένα συστήματα ελέγχου αναθεωρήσεων θα αυξάνεται γρήγορα ανάλογα με τον αριθμό των αλλαγών, επειδή οι διαφορές μεταξύ των αναθεωρήσεων είναι μεγάλες.

Επίσης, είναι συνήθως δύσκολο, αν όχι αδύνατο, η συγχώνευση διαφορετικών εκδόσεων ενός δυαδικού. Το Subversion επιτρέπει σε έναν χρήστη να κλειδώσει ένα αρχείο, το οποίο δίνει στον χρήστη αποκλειστικά δικαιώματα να το τροποποιήσει προσωρινά. Αυτό μπορεί να είναι ένα σημαντικό όφελος για ένα έργο που χρησιμοποιεί εκτενώς δυαδικά αρχεία.

Η Mercurial μπορεί να εισάγει ιστορικό αλλαγών από ένα αποθετήριο Subversion. Η αντίστροφη διαδικασία είναι επίσης δυνατή. Αυτό καθιστά δυνατή τη δοκιμή των υδάτων και τη χρήση τόσο του Mercurial όσο και του Subversion ταυτόχρονα πριν αποφασίσετε εάν θα μεταναστεύσετε ή όχι. Η μετατροπή μιας ιστορίας είναι μια διαδικασία βήμα προς βήμα, ώστε να μπορείτε να κάνετε την αρχική μετατροπή και στη συνέχεια να κάνετε νέες αλλαγές.

1.6.2. Git

Το Git είναι ένα κατανεμημένο σύστημα ελέγχου έκδοσης που σχεδιάστηκε για να διαχειρίζεται τον πηγαίο κώδικα του πυρήνα του Linux. Όπως και με το Mercurial, ο αρχικός σχεδιασμός του συστήματος επηρεάστηκε από το Monotone.

Το Git παρέχει μια μεγάλη λίστα εντολών, με 139 μοναδικές εντολές στην έκδοση 1.5.0. Έχει τη φήμη ότι είναι δύσκολο να μάθει. Σε σύγκριση με το Git, το Mercurial δίνει έμφαση στην απλότητα.

Όσον αφορά την απόδοση, το Git είναι πολύ γρήγορο. Σε ορισμένες περιπτώσεις είναι ταχύτερο από το Mercurial (τουλάχιστον στο Linux), και σε άλλες είναι ταχύτερο από το Mercurial. Ωστόσο, στα Windows, τόσο η απόδοση όσο και το γενικό επίπεδο υποστήριξης τη στιγμή που γράφονται αυτές οι γραμμές είναι πολύ χειρότερα για το Git από το Mercurial.

Ενώ το αποθετήριο Mercurial δεν απαιτεί καμία λειτουργία συντήρηση, ένα αποθετήριο Git απαιτεί συχνό εγχειρίδιο "Ανασυσκευασία"δικά τους μεταδεδομένα. Εάν αυτό δεν γίνει, η απόδοση αρχίζει να υποβαθμίζεται, μαζί με αύξηση του χώρου στο δίσκο που χρησιμοποιείται. Μια συστοιχία δίσκων ενός διακομιστή που περιέχει πολλά αποθετήρια Git που δεν ακολουθούν τον αυστηρό κανόνα της συχνότητας "Ανασυσκευασία", αργά ή γρήγορα παίρνει σφυρηλατημένη ικανότητα, με αποτέλεσμα η διαδικασία της καθημερινής Κρατήστε αντίγραφομπορεί εύκολα να διαρκέσει πάνω από 24 ώρες. Μόλις τώρα "Συσκευασμένα"Το αποθετήριο Git καταλαμβάνει λίγο λιγότερο χώρο από το αποθετήριο Mercurial, αλλά το μη συσκευασμένο αποθετήριο θα είναι τάξεις μεγέθους μεγαλύτερο.

Ο πυρήνας του Git είναι γραμμένος σε C. Πολλές από τις εντολές Git υλοποιούνται ως Σενάρια Shellή σενάρια Perl, και η ποιότητα αυτών των σεναρίων ποικίλλει πολύ. Έχω δει πολλές εγκαταστάσεις στις οποίες τα σενάρια συνέχισαν ανόητα την εκτέλεση, παρά την παρουσία μοιραίων σφαλμάτων.

Το Mercurial παρέχει τη δυνατότητα εισαγωγής ιστορικού εκδόσεων από ένα αποθετήριο Git.

1.6.3. Βιογραφικά

Το CVS είναι ίσως το πιο ευρέως χρησιμοποιούμενο σύστημα ελέγχου εκδόσεων στον κόσμο. Χάρη στην αξιοσέβαστη ηλικία του, καθώς και στο χάος που επικρατεί στο εσωτερικό του, έχει συντηρηθεί πολύ κακώς εδώ και πολλά χρόνια.

Το CVS βασίζεται σε μια κεντρική αρχιτεκτονική πελάτη-διακομιστή. Δεν ομαδοποιεί τις αλλαγές αρχείων σε ατομικές δεσμεύσεις, επιτρέποντας έτσι στους χρήστες να το κάνουν εύκολα "Σπάστε την κατασκευή": Ένα άτομο μπορεί να πραγματοποιήσει με επιτυχία ορισμένες από τις αλλαγές στο αποθετήριο και στη συνέχεια να αποκλειστεί λόγω της ανάγκης να πραγματοποιηθεί συγχώνευση. Αυτό θα οδηγήσει σε μια κατάσταση όπου οι υπόλοιποι συμμετέχοντες θα δουν μόνο μέρος των αλλαγών που θα έπρεπε να έχουν δει. Αυτή η δυνατότητα επηρεάζει επίσης τον τρόπο με τον οποίο θα εργαστείτε με το ιστορικό των αλλαγών. Εάν θέλετε να λάβετε όλες τις αλλαγές που έκανε ένα μέλος της ομάδας για να λύσει ένα συγκεκριμένο πρόβλημα, πρέπει να εξετάσετε με μη αυτόματο τρόπο τις περιγραφές και την ημερομηνία των αλλαγών που έγιναν για κάθε επηρεαζόμενο αρχείο (αν γνωρίζετε ποια αρχεία επηρεάστηκαν καθόλου).

Το CVS λειτουργεί με μια μάλλον περίπλοκη έννοια κλάδων και ετικετών που δεν θα προσπαθήσω καν να περιγράψω σε αυτό το βιβλίο. Δεν υποστηρίζει τη μετονομασία τόσο αρχείων όσο και φακέλων, επομένως το αποθετήριο μπορεί να καταστραφεί αρκετά εύκολα. Δεδομένου ότι δεν υπάρχουν πρακτικά εσωτερικοί μηχανισμοί ελέγχου ακεραιότητας, συχνά δεν είναι καν δυνατό να πούμε με βεβαιότητα εάν ένα αποθετήριο έχει καταστραφεί και εάν ναι, πώς. Ως εκ τούτου, δεν θα συνιστούσα το CVS για οποιοδήποτε υπάρχον ή νέο έργο.

Η Mercurial παρέχει τη δυνατότητα εισαγωγής ιστορικού εκδόσεων CVS. Ωστόσο, υπάρχουν μερικές παγίδες που θα συναντήσει οποιοδήποτε άλλο εργαλείο εισαγωγής CVS. Χωρίς ατομικές αλλαγές και εκδόσεις ιεραρχικών δεδομένων σύστημα αρχείωνκαθιστά αδύνατη την πλήρη ανασύνθεση του ιστορικού των αλλαγών CVS, επομένως σε ορισμένες περιπτώσεις χρησιμοποιούνται υποθέσεις και συνήθως δεν εμφανίζονται οι μετονομασίες. Δεδομένου ότι πολλές εργασίες διαχείρισης CVS πρέπει να εκτελούνται με μη αυτόματο τρόπο, γεγονός που αυξάνει τον κίνδυνο σφαλμάτων, είναι σύνηθες για τον εισαγωγέα CVS να επιστρέφει πολλά σφάλματα ακεραιότητας του χώρου αποθήκευσης (εντελώς μη ρεαλιστικές ημερομηνίες αναθεώρησης και αρχεία που έχουν παραμείνει κλειδωμένα την τελευταία δεκαετία είναι μόνο μερικά τα λιγότερο ενδιαφέροντα προβλήματα που μπορώ να θυμηθώ από τη δική μου εμπειρία).

«

1.8. Ένα σύντομο ιστορικό ελέγχου έκδοσης

Το πιο διάσημο από τα παλαιότερα βοηθητικά προγράμματα ελέγχου έκδοσης είναι το SCCS (Source Code Control System), το οποίο γράφτηκε από τον Marc Rochkind των Bell Labs στις αρχές της δεκαετίας του '70. Χειρουργήθηκε το SCCS ξεχωριστά αρχείακαι απαιτούσε από όλους όσους εργάζονταν σε ένα έργο να έχουν πρόσβαση σε έναν ενιαίο κοινόχρηστο χώρο εργασίας. Μόνο ένα άτομο μπορούσε να επεξεργαστεί ένα αρχείο κάθε φορά. Οι διενέξεις πρόσβασης στα αρχεία επιλύθηκαν με κλειδώματα. Μια συνηθισμένη κατάσταση ήταν να ξεχάσετε να ελευθερώσετε το κλείδωμα μετά την επεξεργασία, κάτι που εμπόδιζε άλλα άτομα να έχουν πρόσβαση στο αρχείο χωρίς τη βοήθεια διαχειριστή.

Ο Walter Tichy ανέπτυξε μια δωρεάν εναλλακτική λύση στο SCCS στις αρχές της δεκαετίας του 1980. ονόμασε το πρόγραμμά του RCS (Revision Control System). Όπως το SCCS, έτσι και το RCS απαιτούσε από τους προγραμματιστές να εργάζονται σε έναν κοινόχρηστο χώρο εργασίας και να κλειδώνουν τα αρχεία για να εμποδίζουν διαφορετικούς ανθρώπους να τροποποιούν αρχεία ταυτόχρονα.

Αργότερα, στη δεκαετία του 1980, ο Dick Grune χρησιμοποίησε το RCS ως βάση για ένα σύνολο σεναρίων κελύφους, που αρχικά ονομαζόταν cmt και αργότερα μετονομάστηκε σε CVS (Σύστημα Ταυτόχρονων Εκδόσεων). Μια σημαντική καινοτομία στο CVS ήταν ότι επέτρεπε στους προγραμματιστές να εργάζονται ταυτόχρονα και, σε κάποιο βαθμό, ανεξάρτητα στους προσωπικούς τους χώρους εργασίας. Ήταν αυτοί οι χώροι που εμπόδιζαν τους προγραμματιστές να πατούν συνεχώς ο ένας στα τακούνια του άλλου, κάτι που ήταν συνηθισμένο στα SCCS και RCS. Κάθε προγραμματιστής είχε ένα αντίγραφο κάθε αρχείου έργου, οι προγραμματιστές μπορούσαν να τροποποιήσουν τα αντίγραφά τους ανεξάρτητα. Έπρεπε μόνο να συγχωνεύσουν τις δικές τους τροποποιήσεις πριν υποβάλουν τις αλλαγές στο κεντρικό αποθετήριο.

Ο Brian Berliner πήρε τα αρχικά σενάρια του Grün και τα ξαναέγραψε σε C, κυκλοφόρησε κώδικα το 1989 που αργότερα θα εξελιχθεί στη σύγχρονη έκδοση του CVS. Το CVS απέκτησε αργότερα τη δυνατότητα να εργάζεται μέσω του δικτύου, αποκτώντας αρχιτεκτονική πελάτη-διακομιστή. Η αρχιτεκτονική CVS είναι συγκεντρωτική: μόνο ο διακομιστής έχει αντίγραφο του ιστορικού του έργου. Τα αντίγραφα εργασίας του πελάτη περιείχαν μόνο τις πιο πρόσφατες παρουσίες αρχείων και λίγα μεταδεδομένα για τον εντοπισμό του διακομιστή. Το CVS έχει επιτύχει άνευ προηγουμένου: είναι ίσως το πιο ευρέως χρησιμοποιούμενο σύστημα ελέγχου εκδόσεων στον κόσμο.

Στις αρχές της δεκαετίας του 1990, η Sun Microsystems ανέπτυξε ένα πρώιμο κατανεμημένο σύστημα ελέγχου αναθεώρησης που ονομάζεται TeamWare. Κάθε αντίγραφο εργασίας του TeamWare περιείχε ένα πλήρες αντίγραφο του ιστορικού αναθεωρήσεων του έργου. Η έννοια ενός κεντρικού αποθετηρίου στο TeamWare απουσίαζε ως τέτοια. (Παρόμοια με το CVS, το οποίο χρησιμοποιούσε το RCS για την αποθήκευση του ιστορικού, το TeamWare χρησιμοποίησε το SCCS.)

Καθώς προχωρούσε η δεκαετία του 1990, η συνειδητοποίηση πολλών θεμάτων CVS αυξήθηκε. Το σύστημα καταγράφει τις ταυτόχρονες αλλαγές σε πολλαπλά αρχεία χωριστά, αντί να τα ομαδοποιεί σε μια λογικά ατομική λειτουργία. Ο τρόπος με τον οποίο διαχειρίζεστε την ιεραρχία των αρχείων σας δεν είναι πολύ καλός· είναι εύκολο να χαλάσετε το αποθετήριο σας μετονομάζοντας αρχεία και καταλόγους. Επιπλέον, ο πηγαίος κώδικας CVS δεν είναι εύκολο να κατανοηθεί και να διατηρηθεί, καθιστώντας τον σχεδόν ακαταμάχητο. «Κατώφλι πόνου»διορθώσεις για αυτά τα αρχιτεκτονικά ζητήματα.

Το 2001, ο Jim Blandy και ο Karl Fogel, δύο προγραμματιστές που εργάζονταν στο παρελθόν στο CVS, ξεκίνησαν ένα έργο για να το αντικαταστήσουν με ένα εργαλείο που είχε καλύτερη αρχιτεκτονική και καθαρότερο κώδικα. Το αποτέλεσμα - Subversion - δεν απομακρύνθηκε από το κεντρικό μοντέλο πελάτη / διακομιστή του CVS, αλλά πρόσθεσε ατομικές δεσμεύσεις για πολλαπλά αρχεία, καλύτερη διαχείριση χώρου ονομάτων και άλλα χαρακτηριστικά που έκαναν το Subversion καλύτερο εργαλείο για εργασία από το CVS. Από την πρώτη έκδοση, το Subversion έχει αυξηθεί γρήγορα σε δημοτικότητα.

Λίγο πολύ την ίδια εποχή, ο Graydon Hoare άρχισε να εργάζεται πάνω σε ένα φιλόδοξο σύστημα ελέγχου εκδόσεων που ονόμασε Monotone. Αυτό το σύστημα όχι μόνο εξαλείφει πολλά προβλήματα εσωτερική συσκευήΤο CVS έχει μια κατανεμημένη αρχιτεκτονική, αλλά σε ορισμένες από τις καινοτομίες του υπερβαίνει αρκετά προηγούμενα (και επόμενα) συστήματα ελέγχου εκδόσεων. Το Monotone χρησιμοποιεί κρυπτογραφικούς κατακερματισμούς ως αναγνωριστικά και έχει εγγενή κατανόηση του " εμπιστοσύνη "κώδικα από διάφορες πηγές.

Η ζωή του Mercurial ξεκίνησε το 2005. Ενώ ορισμένες πτυχές της αρχιτεκτονικής του επηρεάστηκαν από το Monotone, το Mercurial εστιάζει στην ευκολία χρήσης, την υψηλή απόδοση και την επεκτασιμότητα σε πολύ μεγάλα έργα.

Έχετε μια υπέροχη νέα επιχειρηματική ιδέα ανάπτυξης λογισμικού;Πρέπει να αναπτυχθείτε τεχνολογικά δύσκολη απόφαση? Ή έχετε μια μεγάλη ομάδα προγραμματιστών που εργάζονται για την ίδια εργασία; Τότε θυμηθείτε αυτές τις τρεις λέξεις:σύστημα ελέγχου έκδοσης .

Σύστημα ελέγχου έκδοσης (cvs), 2017 - Σύγκριση: Git, SVN, Mercurial

, ή vcs- Αυτό είναι που εμποδίζει το έργο να καταρρεύσει όταν πολλοί άνθρωποι εργάζονται σε αυτό. Προγραμματιστές, μάνατζερ, κειμενογράφοι μπορούν να δουλέψουν ο καθένας στο δικό του κομμάτι, χωρίς να παρεμβαίνουν μεταξύ τους και χωρίς να προκαλούν ζημιές που δεν μπορούν να διορθωθούν.

Εάν δεν είστε ήδη εξοικειωμένοι με την έννοιασυστήματα ελέγχου έκδοσηςτότε εδώ όλα φαίνονται πολύ καθαρά.

Ή δείτε το βίντεο από το GitHub.

Ποιο σύστημα ελέγχου έκδοσης είναι λοιπόν κατάλληλο για το έργο σας;

Συγκρίναμε πολλές δημοφιλείς λύσεις για να σας διευκολύνουμε να κάνετε την επιλογή σας.

Αυτό είναι ένα εξαιρετικά εξειδικευμένο τεχνικό θέμα. Προσπαθήσαμε να κάνουμε την κριτική μας κατανοητή σε όλους. Αλλά αν δεν έχετε εμπειρία προγραμματισμού, φροντίστε να επικοινωνήσετε με το τμήμα ανάπτυξης πριν λάβετε αποφάσεις.

Συστήματα ελέγχου έκδοσης, συμπεριλαμβανομένων των γνωστών SVN (Subversion) και Git, δημιουργήθηκαν αρχικά έτσι ώστε οι ομάδες ανάπτυξης να μπορούν να εργάζονται σε κοινά έργα χωρίς να δημιουργούν σύγχυση. Σε ένα σύστημα ελέγχου, δεν χρειάζεται να παρακολουθείτε ανεξάρτητα κλάδους κώδικα και να μελετάτε σημειώσεις σε αυτούς. Αντίθετα, χρησιμοποιείται ένα κεντρικό αποθετήριο, όπου τα πάντα είναι ταξινομημένα, δομημένα. Είναι βολικό να ενημερώνετε αρχεία, να προσθέτετε σχόλια και ακόμη και να συγχωνεύετε κλάδους έργου εδώ.

Απόψεις για το ποιασύστημα ελέγχου έκδοσηςΤο καλύτερο, διαφέρουν πολύ, και αυτό οδηγεί σε έντονες συζητήσεις μεταξύ των προγραμματιστών. Μαζεύοντας και μελετώνταςσυστήματα ελέγχου έκδοσηςγια το έργο σας, να θυμάστε ότι τα οφέλη μιας συγκεκριμένης λύσης είναι συχνά υποκειμενικά. Για παράδειγμα, οι προσωπικές προτιμήσεις του προγραμματιστή ή, ας πούμε, δείκτες όπως η απόδοση, οι δυνατότητες προσθήκης IDE κ.λπ.

Η κύρια διαφορά μεταξύ των συστημάτων ελέγχου έκδοσης είναι αν είναι πελάτη-διακομιστή ή αποκεντρωμένα (p2p). Έχουν κεντρικό αποθετήριο (server), από πού προέρχεται ο κωδικός και πού επιστρέφεται με τις αλλαγές που έγιναν. Ή μήπως είναι αντίγραφο τοπική αποθήκευσημε δυνατότητα ενημέρωσης ομοτίμων: ένα πιο αποκεντρωμένο δίκτυο που χρησιμοποιείται για συγχρονισμό, ανταλλαγή ενημερώσεων κώδικα (συνόλων αλλαγών) και για τη διατήρηση του τρέχοντος κώδικα.

Αξίζει επίσης να λάβετε υπόψη την απόδοση, τη λειτουργικότητα και το όριο για την εισαγωγή / κυριαρχία ενός συγκεκριμένουσυστήματα ελέγχου... Ας εξετάσουμε τα πιο συνηθισμένασυστήματα ελέγχου έκδοσηςκαι τους λόγους για τους οποίους οι προγραμματιστές προτιμούν ορισμένες λύσεις.

Το σύστημα ταυτόχρονων εκδόσεων (Βιογραφικά)

Βιογραφικά εμφανίστηκε τη δεκαετία του 1980 και εξακολουθεί να είναι δημοφιλής τόσο στους προγραμματιστές εμπορικών προϊόντων όσο και στους προγραμματιστές ανοιχτού κώδικα.

Βιογραφικά ισχύει με όρουςΑπό τη Συμφωνία Ανοικτής Άδειας Χρήσης GNU και σας επιτρέπει να λάβετε την απαιτούμενη έκδοση του έργου από τον διακομιστή - "ολοκλήρωση παραγγελίας " και μετά προωθήστε το πίσω στον διακομιστή, "check-in "(επιστροφή),όπως τροποποιήθηκε.

Αρχικά CVS δημιουργήθηκε για την αποφυγή διενέξεων εκδόσεων. Όλοι οι συμμετέχοντες είχαν μόνο τα περισσότερα τελευταία έκδοσηκώδικας. Αυτό ήταν το πρώτο σύστημα ελέγχου έκδοσης. Ο χρήστης έπρεπε να πραγματοποιήσει γρήγορα αλλαγές στο αποθετήριο πριν τον προλάβουν άλλοι.

Τώρα CVS έχει υποστήριξη για εργασία σε έργα με κλάδους κώδικα. Αποδεικνύεται πολλές επιλογές προϊόντων με διαφορετικά χαρακτηριστικάτα οποία μπορούν να συγχωνευθούν αργότερα.

Διακομιστές CVS συνήθως τρέχει σε Unix, αλλάΒιογραφικά -Οι πελάτες είναι επίσης διαθέσιμοι σε άλλα δημοφιλή λειτουργικά συστήματαΩ.Βιογραφικά - "ώριμο", δοκιμασμένο στο χρόνοσύστημα ελέγχου έκδοσης... Εξακολουθεί να είναι ένα σύστημα ανοιχτού κώδικα, αλλά σήμερα σπάνια προστίθενται νέες δυνατότητες.

Ταυτόχρονα, το CVSNT, είναι μια έκδοση που έχει κυκλοφορήσει σε ξεχωριστό έργο.Βιογραφικά Για Διακομιστές Windows, - επεκτείνει τώρα ενεργά τη λειτουργικότητά του.

Πλεονεκτήματα:

  • Τεχνολογία δοκιμασμένη στο χρόνο που κυκλοφορεί στην αγορά εδώ και δεκαετίες.

Μειονεκτήματα:

  • Η μετονομασία ή η μετακίνηση αρχείων δεν αντικατοπτρίζονται στο ιστορικό
  • Κίνδυνοι ασφαλείας που σχετίζονται με συμβολικούς συνδέσμους σε αρχεία
  • Δεν υπάρχει υποστήριξη για ατομικές λειτουργίες, οι οποίες μπορεί να οδηγήσουν σε καταστροφή κώδικα
  • Λειτουργίες υποκαταστημάτων κώδικα προγράμματοςακριβό από αυτόσύστημα ελέγχουδεν προορίζεται για μακροπρόθεσμα έργα με κλάδους κωδικών

Apache Subversion (SVN)

SVN δημιουργήθηκε ως εναλλακτική λύσηΒιογραφικά προκειμένου να διορθωθούν οι ελλείψειςΒιογραφικά και ταυτόχρονα εξασφαλίζουν υψηλή συμβατότητα με αυτό.

Όπως το CVS Το SVN είναι ένα δωρεάν σύστημα.έλεγχος έκδοσης ανοιχτή πηγή. Η μόνη διαφορά είναι ότι διανέμεται υπό την άδεια Apache, και όχι υπόΗ Συμφωνία Ανοιχτής Άδειας Χρήσης GNU.

Για να διατηρήσει την ακεραιότητα της βάσης δεδομένων, το SVN χρησιμοποιεί τις λεγόμενες ατομικές λειτουργίες. Όταν κυκλοφορήσει μια νέα έκδοση, είτε όλες είτε καμία από τις διορθώσεις εφαρμόζεται στο τελικό προϊόν. Έτσι, ο κώδικας προστατεύεται από χαοτικές μερικές επεξεργασίες που δεν συμφωνούν μεταξύ τους και προκαλούν σφάλματα.

Πολλοί προγραμματιστές έχουν αλλάξει σεSVN από τότε νέα τεχνολογίακληρονόμησε τα καλύτερα χαρακτηριστικάΒιογραφικά και ταυτόχρονα τις διεύρυνε.

Ενώ στο CVS Οι λειτουργίες με κλάδους κώδικα είναι ακριβές και δεν παρέχονται από την αρχιτεκτονική του συστήματος, το SVN δημιουργήθηκε ακριβώς για αυτό. Δηλαδή για μεγαλύτερα έργα με διακλάδωση κώδικα και πολλούς τομείς ανάπτυξης.

Τα μειονεκτήματα του SVN αναφέρονται συγκριτικά χαμηλή ταχύτητακαι η έλλειψη κατανεμημένου ελέγχου έκδοσης. Διανέμονταιέλεγχος έκδοσης χρησιμοποιεί ένα μοντέλο peer-to-peer αντί για έναν κεντρικό διακομιστή για την αποθήκευση ενημερώσεων κώδικα. Ενώ το μοντέλο peer-to-peer λειτουργεί καλύτερα σε έργα ανοιχτού κώδικα, δεν είναι ιδανικό σε άλλες περιπτώσεις. Το μειονέκτημα της προσέγγισης από την πλευρά του διακομιστή είναι ότι όταν ο διακομιστής διακόπτεται, οι πελάτες δεν έχουν πρόσβαση στον κώδικα.

Πλεονεκτήματα:

  • Βασισμένο στο σύστημαΒιογραφικά
  • Επιτρέπει ατομικές λειτουργίες
  • Οι εργασίες διακλάδωσης είναι λιγότερο δαπανηρές
  • Μεγάλη ποικιλία προσθηκών IDE
  • Δεν χρησιμοποιεί peer-to-peer μοντέλο

Μειονεκτήματα:

  • Τα σφάλματα εξακολουθούν να υπάρχουν, που σχετίζονται με τη μετονομασία αρχείων και καταλόγων
  • Μη ικανοποιητικό σύνολο εντολών για εργασία με το αποθετήριο
  • Σχετικά χαμηλή ταχύτητα

Git

Αυτό το σύστημα δημιουργήθηκε για να διαχειρίζεται την ανάπτυξη του πυρήνα Linux και ακολουθεί μια προσέγγιση που είναι θεμελιωδώς διαφορετική από το CVS και το SVN.

Η βάση Git Οι έννοιες τέθηκαν για να δημιουργηθεί μια ταχύτερη διανομήσύστημα ελέγχου έκδοσης, σε αντίθεση με τους κανόνες και τις αποφάσεις που χρησιμοποιούνται σεΒιογραφικά ... Δεδομένου ότι το Git αναπτύχθηκε κυρίως για Linux, σε αυτό το λειτουργικό σύστημα εκτελείται πιο γρήγορα.

Το Git εκτελείται επίσης σε συστήματα τύπου Unix (όπως το MacOS) και το πακέτο mSysGit χρησιμοποιείται για εκτέλεση στην πλατφόρμα των Windows.

Ο κωδικός ενδέχεται να μην είναι διαθέσιμος όταν χρησιμοποιείτε υπολογιστή χωρίς αποθετήριο. Υπάρχουν λύσεις για την επίλυση αυτού του προβλήματος και ορισμένοι προγραμματιστές πιστεύουν ότι η απόδοση του Git είναι μια δίκαιη τιμή για την ταλαιπωρία.

Επιπλέον, το Git διαθέτει πολλά εργαλεία για την πλοήγηση στο ιστορικό αλλαγών. Κάθε λειτουργικό αντίγραφο του πηγαίου κώδικα περιέχει ολόκληρο το ιστορικό ανάπτυξης, το οποίο είναι εξαιρετικά χρήσιμο κατά τον προγραμματισμό χωρίς σύνδεση στο Διαδίκτυο.

Πλεονεκτήματα:

  • Ιδανικό για όσους μισούν CVS / SVN
  • Σημαντική αύξηση της απόδοσης
  • Φτηνές εργασίες υποκαταστημάτων
  • Πλήρες ιστορικό ανάπτυξης διαθέσιμο εκτός σύνδεσης
  • Κατανεμημένο, peer-to-peer μοντέλο

Μειονεκτήματα:

  • Υψηλό όριο εισόδου (μάθησης) για όσους χρησιμοποιούσαν προηγουμένως SVN
  • Περιορισμένος Υποστήριξη Windows(σε σύγκριση με το Linux)

Αστατος

Αστατος κυκλοφόρησε ταυτόχρονα με το Git. είναι το ίδιοδιανέμονται σύστημα ελέγχου έκδοσης.

Το Mercurial δημιουργήθηκε ως εναλλακτική λύση στο Git για την ανάπτυξη λειτουργικών μονάδων πυρήνα Linux. Επειδή όμως επέλεξαν το Git, το Mercurial χρησιμοποιείται λιγότερο. Ωστόσο, πολλοί κορυφαίοι προγραμματιστές εργάζονται με αυτό το συγκεκριμένο σύστημα, για παράδειγμαOpenOffice.org .

Το σύστημα ελέγχου έκδοσης της Mercurial είναι διαφορετικόσυστήματα ελέγχου έκδοσηςστο ότι είναι κυρίως γραμμένο σε Python (όχι C). Ωστόσο, ορισμένα μέρη υλοποιούνται ως μονάδες επέκτασης στο C.

Δεδομένου ότι το σύστημα είναι αποκεντρωμένο και γραμμένο σε Python, πολλοί προγραμματιστές Python κλίνουν προς το Mercurial.

Οι χρήστες σημειώνουν ότι το Mercurial διατηρεί ορισμένα από τα χαρακτηριστικά του SVN, ενώ είναι ένα κατανεμημένο σύστημα, και λόγω αυτής της ομοιότητας, έχει χαμηλότερο όριο εισόδου για όσους είναι ήδη εξοικειωμένοι με το SVN. Επίσης, η τεκμηρίωση για το Mercurial είναι πιο πλήρης, κάτι που σας βοηθά να εξοικειωθείτε γρήγορα με τις διαφορές.

Ένα από τα σημαντικότερα μειονεκτήματα του Mercurial είναι ότι, σε αντίθεση με το Git, δεν μπορεί να συγχωνεύσει δύο γονικούς κλάδους, καθώς το Mercurial χρησιμοποιεί ένα σύστημα πρόσθετων αντί για υποστήριξη σεναρίων. Αυτό είναι εξαιρετικό για ορισμένους προγραμματιστές, αλλά πολλοί δεν θέλουν να εγκαταλείψουν τις δυνατότητες του Git.

Πλεονεκτήματα:

  • Πιο εύκολο στην εκμάθηση σε σύγκριση με το Git
  • Αναλυτική τεκμηρίωση
  • Κατανεμημένο μοντέλοσυστήματα ελέγχου έκδοσης

Μειονεκτήματα:

  • Δεν υπάρχει τρόπος να συγχωνευθούν δύο γονικοί κλάδοι
  • Χρησιμοποιώντας πρόσθετα, όχι σενάρια
  • Λιγότερο χώρο για προσαρμοσμένες λύσεις

Οι οποίεςτο σύστημα ελέγχου έκδοσης μου ταιριάζει?

Τις περισσότερες φορές χρησιμοποιούν οι προγραμματιστέςΒιογραφικά γιατί τους είναι πιο οικείο. Εάν η ομάδα εργάζεται ήδη σε ένα έργο, τότε η προοπτική να μεταφέρει όλες τις εξελίξεις σε άλλοσύστημα ελέγχουκατά κάποιο τρόπο δεν εμπνέει. Αν έπρεπε να αλλάξουν το σύστημα, τότε πιθανότατα θα άλλαζαν στο SVN.

Το CVS έχει ήδη φτάσει στο καθεστώς της «ώριμης τεχνολογίας», πράγμα που σημαίνει ότι δεν θα περιέχει πλέον ριζικά νέες δυνατότητες και λύσεις. Η αδράνεια της συνήθειας χάνεται καθώς οι άνθρωποι μετακινούνται στο SVN. Αυτό σημαίνει ότι το CVS σταδιακά γίνεται παρελθόν.

Σήμερα το SVN κρατά την παλάμη μεταξύ του διακομιστήσυστήματα ελέγχου έκδοσης... Περιλαμβάνει τα οφέληΒιογραφικά και τους ξεπερνάει. Αν μιλάμε για επικράτηση, τότε είναι πιθανό να συναντάτε πιο συχνάΒιογραφικά ή SVN παρά με το Git ή το Mercurial. Έτσι, η γνώση της τεχνολογίας ενός διακομιστή, αν και δεν είναι απαραίτητη, θα σας διευκολύνει τη μετάβαση.

Λόγω της ευρείας χρήσης και της ωριμότητας της τεχνολογίας, το SVN διαθέτει μια μεγάλη βάση γνώσεων που διευκολύνει τους χρήστες να λάβουν βοήθεια.

Το Git είναι σαφώς πιο γρήγορο από τον ανταγωνισμό. Για έργα που δημιουργούνται για διανομήσυστήματα ελέγχου έκδοσης, αυτή είναι μια προφανής βελτίωση.

Ένα σημαντικό μειονέκτημα του Git είναι ότι μερικές φορές είναι δύσκολο να εξηγηθούν οι αποχρώσεις του έργου αυτούσυστήματα ελέγχουκαι επιβραδύνει τη ροή εργασίας ενώ οι προγραμματιστές το συνηθίζουν. Ωστόσο, μόλις ξεπεραστεί το «όριο εισόδου», η παραγωγικότητα αυξάνεται και η ευκολία διαχείρισης των υποκαταστημάτων κώδικα θα αποδώσει πλήρως τον χρόνο που δαπανήθηκε.

Για όσους μισούν το Git (και το σύστημα έχει τους αντιπάλους του στην κοινότητα ανάπτυξης), το Mercurial είναι ένας συμβιβασμός μεταξύ SVN και Git. Αυτό το σύστημα χρησιμοποιείται σε πολλά γνωστά έργα και έχει επίσης καλή τεκμηρίωση.

Συμβατό με έκδοση WindowsΤο Git προχωρά επίσης πιο κοντά στην έκδοση Linux από άποψη απόδοσης, επομένως αυτό το σύστημα μπορεί να είναι σχετικό με εσάς ακόμα κι αν δεν αναπτύσσετε σε Linux.

Για να καταλάβετε ποιο είναι το καλύτερο για εσάς, εξετάστε τις ιδιαιτερότητες του έργου και της ομάδας σας. Μιλήστε με τους προγραμματιστές!

Εάν το έργο σας απαιτεί ένα δέντρο ενιαίας πηγής για επεξεργασία από μια μικρή ομάδα προγραμματιστών, τότε το SVN είναι η επιλογή σας. Είναι αξιόπιστο και σχεδιασμένο για τέτοιες περιπτώσεις.

Εάν εκτελείτε ένα έργο ανοιχτού κώδικα, στο οποίο θα εργάζονται πολλοί προγραμματιστές σε διαφορετικούς χρόνους, ή, εάν υποτίθεται ότι συνεχής ανανέωσηκωδικός και μετά επιλέξτε Git. Η ταχύτητα και η διαχείριση του δέντρου πηγής είναι πολύ καλύτερη εδώ από ό,τι στο SVN.

Εάν βρίσκεστε σε ένα σταυροδρόμι ή απλά δεν σας αρέσει ο τρόπος που λειτουργεί το SVN ή το Git, τότε η Mercurial είναι στη διάθεσή σας.

Όλα αυτά τα συστήματα είναι πλήρως λειτουργικά. Και επίσης δωρεάν. Χρησιμοποιούνται για την κατασκευή λογισμικού, τοποθεσιών web, ακόμη και λειτουργικών συστημάτων που χρησιμοποιείτε και γνωρίζετε.

Πρώτα απ 'όλα, αποφασίστε εάν το ένα ή το άλλο είναι κατάλληλοσύστημα ελέγχουεκδόσεις για την επιχείρησή σας και στη συνέχεια - εξίσου σημαντικό - βεβαιωθείτε ότι η επιλογή δεν εξοργίζει τους προγραμματιστές.

Ξεκινώντας με το SVN

Εάν δεν έχετε εργαστεί ποτέ με το SVN ή το Git και δεν έχετε ιδέα πώς να ξεκινήσετε, τότελύση φιλοξενίας σε συνδυασμό με γραφική διεπαφή σας βοηθούν να ανεβείτε γρήγορα την ταχύτητα.

Όπως στις περισσότερες περιπτώσεις, το πιο σημαντικό είναι να ξεκινήσετε και μετά θα έρθει η κατανόηση. Η λειτουργία ενός συστήματος ελέγχου έκδοσης είναι πολύ παρόμοια με την εργασία με αρχεία σε διακομιστή χρησιμοποιώντας έναν πελάτη FTP.

ΣΗΜΕΙΩΣΗ:Υπάρχουν πολλές λύσεις φιλοξενίας γιασυστήματα ελέγχου έκδοσης, συμπεριλαμβανομένων εκείνων με δωρεάν δοκιμαστική περίοδο. Μπορείτε να δημιουργήσετε το πρώτο σας αποθετήριο (ένα μέρος για να εργαστείτε με αρχεία κώδικα) στη βάση τους δωρεάν. Μερικές από αυτές τις υπηρεσίες είναι:

Φιλοξενία SVN & GIT

Δημιουργία του πρώτου αποθετηρίου

Αφού δημιουργήσετε έναν λογαριασμό, πρέπει να δημιουργήσετε ένα αποθετήριο - για κάθε πλατφόρμα ξεχωριστά. Συνήθως μοιάζει με αυτό:

  • Συνδεθείτε στον λογαριασμό σας, κάντε κλικ στα έργα σας.
  • Δημιουργία έργου:
  • Στη γραμμή "Δημιουργία νέου έργου" εισαγάγετε το όνομα του έργου σας
  • Κάντε κλικ στο κουμπί "Δημιουργία έργου".
  • Σύνδεση SVN:
  • Μετά τη δημιουργία του έργου, επιλέξτε την καρτέλα "Έλεγχος πηγής" (εκδόσεις πηγαίου κώδικα)
  • Κάντε κλικ στον σύνδεσμο "Ενεργοποίηση ελέγχου πηγής"
  • Δώστε ένα όνομα στο αποθετήριο
  • Κάντε κλικ στο "Αποθήκευση"

Πελάτες γραφικών SVN και GIT

Έτσι, δημιουργείται το αποθετήριο. Τώρα πρέπει να εμφανίσετε τα πάντα σε αυτό απλά και καθαρά. Για να το κάνετε αυτό, χρειάζεστε μια γραφική διεπαφή.

βολικό πρόγραμμαγια να δουλέψω μεσυστήματα ελέγχου έκδοσηςv Microsoft Windowsκαι πιθανώς ο καλύτερος πελάτης Apache Subversion εκεί έξω. Το TortoiseSVN υλοποιείται ως επέκταση κελύφους των Windows, καθιστώντας εύκολη την ενσωμάτωσή τουπρόγραμμα περιήγησης. Επιπλέον, είναι ένα πρόγραμμα ανοιχτού κώδικα για το οποίο διατίθενται 34 πακέτα γλωσσών.

SmartGit

- γραφικός πελάτης Git (διανέμεται Open Sourceσύστημα ελέγχου έκδοσης). Λειτουργεί σε Windows, Mac OS X και Linux.Κόστος άδειας - 39 $

"Έλεγχος" του αποθετηρίου ("Ολοκλήρωση παραγγελίας")

Επιλέγεται λοιπόν ο πελάτης. Τώρα πρέπει να δημιουργήσετε ένα αποθετήριο για το σύστημα ελέγχου. Πρέπει να μπείτεΤο url, το όνομα χρήστη και ο κωδικός πρόσβασης του αποθετηρίου σας.

Το url συνήθως μοιάζει με αυτό:https: // svn .hostname.com / svn / > (μπορείτε να χρησιμοποιήσετε https: // (SSL) εάν έχετε λογαριασμό επί πληρωμή)

  1. Μεταβείτε στον ριζικό φάκελο, κάντε κλικ στο κουμπί Check Out και δημιουργήστε φάκελο εργασίαςγια πελάτη. Τώρα μπορείτε να προσθέσετε αρχεία σε αυτό.
  2. Μετά την εξαγωγή των αρχείων του έργου, μπορείτε να τα επεξεργαστείτε σε έναν τοπικό κατάλογο στον υπολογιστή σας.

Αφού κάνετε αλλαγές στα αρχεία, κάντε κλικ στο κουμπί Check-in στη γραμμή εργαλείων για να τα αποθηκεύσετε. Μπορείτε να δείτε τις αλλαγές και να προσθέσετε σχόλια σε αυτές - αυτή είναι μια πολύ καλή ιδέα, καθώς στο μέλλον θα γνωρίζετε ακριβώς τι έχετε εργαστεί, ποιες αλλαγές έχουν γίνει και θα κρατάτε ενήμερους τους άλλους συμμετέχοντες στο έργο.

Ο πελάτης σας θα πρέπει επίσης να παρέχει τη δυνατότητα να ξεκινήσει να εργάζεται με αναθεωρήσεις ανά πάσα στιγμή ανοίγοντας το αρχείο καταγραφής αναθεωρήσεων ή το ιστορικό αλλαγών - στη συνέχεια, εάν είναι απαραίτητο, μπορείτε να κάνετε "επαναστροφή" στο προηγούμενη έκδοσηγια κάθε αρχείο ξεχωριστά. Τώρα που είστε εξοικειωμένοι με τις βασικές έννοιες, την τεκμηρίωση

Γεια, Χαμπρ. Αποφάσισα να θίξω ένα θέμα που είχε φθαρεί σε πολλά άρθρα, πιο συγκεκριμένα - για να περιγράψω τη σε μεγάλο βαθμό μη τυπική (θα έλεγα, μη ταξινομημένη) χρήση συστημάτων ελέγχου έκδοσης (εφεξής - VCS). Σύντροφοι προγραμματιστές, ας κρύψουμε τις σάπιες ντομάτες και ας περάσουμε, γιατί αυτό το άρθρο δεν είναι για εσάς. Ναι, όλοι έχετε ήδη μάθει όλες τις περιπλοκές της εργασίας με το Git, το SVN, το CVS και γνωρίζετε πολλές άλλες τσιτάτα. Ας εξοικειωθούμε, οι απλοί θνητοί, με όλα τα οφέλη της χρήσης του ΣΕΛ.
Προσκαλώ κάτω από το κόψιμο όλους όσους θέλουν να εξοικειωθούν με τον ΣΕΛ, καθώς και όλους όσους, με τον έναν ή τον άλλον τρόπο, ασχολούνται με δεδομένα που αλλάζουν γρήγορα.

Γιατί χρειάζεται

Εγώ ο ίδιος είμαι φοιτητής ενός Πολυτεχνείου και σχεδόν συνεχώς δουλεύω με έγγραφα (κείμενα, εικόνες, σχέδια), αλλάζοντας τα τρεις (δέκα, εκατό) φορές την ημέρα. Μερικές φορές αποδεικνύεται ότι οι τροποποιήσεις που έγιναν την τελευταία εβδομάδα πρέπει να ακυρωθούν και να επιστραφούν στα έγγραφα στην κατάσταση της προηγούμενης εβδομάδας. Λοιπόν, αν δεν υπήρχαν πολλές επεξεργασίες, σε αυτήν την περίπτωση πενήντα πινελιές στο Ctrl + Z μπορούν να βοηθήσουν. Ωστόσο, εάν κατά τη διάρκεια αυτής της εβδομάδας υπήρξε περισσότερο ή λιγότερο ενεργή εργασία με το έγγραφο, απλά δεν θα είναι δυνατή η επαναφορά της κατάστασης "πριν από μια σημαντική αλλαγή που έγινε πριν από μια εβδομάδα". Αυτό απαιτεί ένα αντίγραφο του εγγράφου εκείνη τη στιγμή "πριν από μια σημαντική αναθεώρηση", καθώς και μια ντουζίνα ακόμη αντίγραφα "πριν από μια άλλη σημαντική αναθεώρηση", "πριν από μια αμφισβητήσιμη αναθεώρηση" και "πριν από μια τροποποίηση που πιθανότατα θα πρέπει να ακυρωθεί ". Καταρχήν, αυτή η προσέγγιση είναι δυνατή και εφαρμόζεται από πολλούς. Μέχρι πρόσφατα, ο ίδιος διατηρούσα σημαντικές εκδόσεις αρχείων, αποθηκεύοντάς τα με τα προθέματα "ημερομηνία_ώρα" και, φαινόταν, ήμουν χαρούμενος. Το πλεονέκτημα αυτής της μεθόδου είναι η απλότητα, το μειονέκτημα είναι το "φούσκωμα" των φακέλων εργασίας και η ταλαιπωρία χρήσης. Και, αν το πρώτο από αυτά μπορεί να αντιμετωπιστεί με κάποιο τρόπο (μεγάλο σκληροι ΔΙΣΚΟΙκαι 7zip), τότε κάτι έπρεπε να γίνει με ταλαιπωρία.

Τι μπορεί να γίνει για αυτό ή τι είναι ο ΣΕΛ

Βγάζουμε μια παράγραφο από τη Wikipedia: "Σύστημα ελέγχου έκδοσης (από το English Version Control System, VCS ή Revision Control System) - λογισμικό που διευκολύνει την εργασία με την αλλαγή πληροφοριών. Το σύστημα ελέγχου έκδοσης σάς επιτρέπει να αποθηκεύετε πολλές εκδόσεις του ίδιου εγγράφου, εάν είναι απαραίτητο, να επιστρέψετε σε περισσότερες πρώιμες εκδόσεις, καθορίστε ποιος και πότε έκανε αυτή ή εκείνη την αλλαγή και πολλά άλλα." Είναι παρόμοιο με την αρχή λειτουργίας της ίδιας της Wikipedia - όλες οι εκδόσεις των άρθρων με όλες τις επεξεργασίες είναι διαθέσιμες για μελέτη.
Έτσι, η χρήση του VCS σε μια κατάσταση όπου πρέπει να αποθηκεύσετε πολλές εκδόσεις αρχείων είναι αυτό που χρειάζεστε. Τα πλεονεκτήματα αυτής της προσέγγισης περιλαμβάνουν την ευκολία χρήσης και την εξοικονόμηση ελεύθερου χώρου στο δίσκο λόγω της λεγόμενης συμπίεσης δέλτα (όταν τα ίδια τα αρχεία δεν αποθηκεύονται σε διαφορετικές εκδόσεις, αλλά αλλάζουν από έκδοση σε έκδοση, γεγονός που μειώνει τον όγκο των αποθηκευμένων δεδομένων). Ας δοκιμάσουμε.

Τι είναι το SLE

Η ίδια Wikipedia προτείνει ότι τα SLE είναι κεντρικά και κατανεμημένα, μεγάλα και μικρά, με ή χωρίς κουδούνια και σφυρίχτρες. Δεν μας ενδιαφέρει ιδιαίτερα αυτό, αφού θα χρησιμοποιήσουμε (τουλάχιστον στην αρχή) μόνο μέρος της λειτουργικότητας του SLE. Θα εξετάσουμε αυτήν ακριβώς τη λειτουργικότητα.
Σχεδόν όλα τα VCS είναι ένα είδος αποθήκευσης που αποθηκεύει όλες τις εκδόσεις των αρχείων με τα οποία εργαζόμαστε. Εδώ είναι απαραίτητο να διευκρινιστεί ότι η έκδοση των αποθηκευμένων αρχείων καθορίζεται συχνότερα από τον χρήστη. Κάναμε, ας πούμε, μια ντουζίνα μικροεπεξεργασίες και αποφασίσαμε ότι ήρθε η ώρα να αποθηκεύσουμε τα αποτελέσματα των δραστηριοτήτων μας στο αποθετήριο. Μια αναλογία έρχεται στο μυαλό με το περιοδικό πάτημα Ctrl + S, με τη μόνη διαφορά ότι αυτή η έκδοση του αρχείου μπορεί να προσπελαστεί στο μέλλον. Φυσικά, με μια πτώση, μπορείτε να προσθέσετε όσες εκδόσεις θέλετε στο αποθετήριο. ένας μεγάλος αριθμόςαρχεία. Αυτή η ενέργεια ονομάζεται "δέσμευση", ή "διαγραφή αλλαγών" με απλό τρόπο.
Ανά πάσα στιγμή, μπορείτε να προσθέσετε ένα νέο ή να διαγράψετε ένα υπάρχον αρχείο στο αποθετήριο (έτσι ονομάζεται έξυπνα το αποθετήριο) και το VCS θα "θυμάται" πότε και τι προσθέσαμε / αφαιρέσαμε. Και χάρη στα σχόλια στο commit, μπορείτε επίσης να περιγράψετε γιατί εκτελείται αυτή η δέσμευση («προστέθηκε ένα μπιχλιμπίδι εκεί» / «αφαίρεση του πιθανώς απαραίτητου κομματιού από εκεί»).
Όταν επιτέλους καταλάβουμε ότι ήρθε η ώρα να επιστρέψουμε στην έκδοση της προηγούμενης εβδομάδας, έχουμε όλο το ιστορικό των αλλαγών. Και εδώ μπορούμε να επιλέξουμε τι θα κάνουμε. Εάν πρέπει να αντιγράψετε το επιθυμητό κομμάτι από το παλιό αρχείο και να το επικολλήσετε τρέχουσα έκδοση- απλώς εξαγάγετε το παλιό αρχείο από το χώρο αποθήκευσης και αντιγράψτε το απαραίτητο από αυτό. Εάν πρέπει να επιστρέψετε εντελώς και να συνεχίσετε να εργάζεστε με την παλιά έκδοση, το SLE έρχεται και πάλι στη βοήθειά μας - μπορείτε να επιστρέψετε στην προηγούμενη έκδοση και να δημιουργήσετε ένα λεγόμενο νέο υποκατάστημα ("υποκατάστημα"), διατηρώντας παράλληλα όλα όσα "εγκαταλείψαμε". " επιστρέφοντας στις εκδόσεις πριν από μια εβδομάδα. Έτσι, το ιστορικό εκδόσεων ενός έργου μπορεί να αναπαρασταθεί γραφικά ως δέντρο - από τις «ρίζες» (η αρχή του έργου) έως τα «κλαδιά» (επιτυχείς και ανεπιτυχείς επεξεργασίες). Επιπλέον, ένα "υποκατάστημα" μπορεί να δημιουργηθεί τεχνητά, για παράδειγμα, στην περίπτωση που αποφασίσουμε να αναπτύξουμε δύο διαφορετικές εκδόσεις από τα ίδια αρχεία πηγής - στην πρώτη εργαζόμαστε σε μερικά μπιχλιμπίδια, στη δεύτερη - σε άλλα. Επιπλέον, εάν τα αρχεία εργασίας είναι έγγραφα κειμένου(και σε ορισμένα άλλα), είναι δυνατή η συγχώνευση διαφορετικών κλάδων σε ένα - η λεγόμενη συγχώνευση ("συγχώνευση"). Ας φανταστούμε τώρα ότι αρκετοί άνθρωποι εργάζονται σε ένα έργο, και ο καθένας ασχολείται με το δικό του «μπιχλιμπίδι». Η ύπαρξη ενός κοινού αποθετηρίου σε αυτήν την περίπτωση απλοποιεί σημαντικά την ανάπτυξη.

Από τη θεωρία στην πράξη ή την έναρξη χρήσης του ΣΕΛ

Ελπίζω λοιπόν να σας έπεισα ότι η χρήση του SLE είναι καλή. Απομένει μόνο να μάθουμε πώς να χρησιμοποιείτε το SLE. Αυτό θα κάνουμε.
Υπάρχουν διάφορα συστήματα ελέγχου εκδόσεων, που διαφέρουν μεταξύ τους σε διάφορες πτυχές της χρήσης τους. Δεδομένου ότι δεν μας ενδιαφέρουν (τουλάχιστον στην αρχή) οι λεπτές αποχρώσεις της λειτουργίας διαφόρων συστημάτων, θα επικεντρωθούμε στα πιο απλά και φιλικά από αυτά. Κατά την ταπεινή μου γνώμη, ένα τέτοιο σύστημα, παραδόξως, είναι το Mercurial - «ένα σύστημα ελέγχου κατανεμημένων εκδόσεων σε πολλαπλές πλατφόρμες σχεδιασμένο για αποτελεσματική εργασίαμε πολύ μεγάλα αποθετήρια κώδικα "με γραφικό κέλυφοςΧελώνα Hg. Το σύστημα μπορεί να λειτουργήσει με Windows, Linux και Mac OS X.
Θα κάνω μια κράτηση αμέσως και θα σας περιγράψω πώς να εργαστείτε με το σύστημα στα Windows. Όσοι έχουν κατακτήσει το Linux δεν θα δυσκολευτούν να μελετήσουν τα πάντα κατ' αναλογία.
Επιπλέον, παράλληλα, θα μάθουμε να συνεργαζόμαστε δωρεάν φιλοξενία Mercurial repositories - bitbucket.org, απαραίτητα εάν δεν εργάζεστε μόνοι σας σε ένα έργο ή, πράγμα πολύ βολικό, θέλετε να έχετε πρόσβαση σε όλες τις εκδόσεις του έργου μέσω του Διαδικτύου. Βασικά, είναι μια εύχρηστη αντικατάσταση του Dropbox αν το έχετε χρησιμοποιήσει στο παρελθόν.
Αρχικά, εγκαταστήστε το Mercurial + TortoiseHg από το tortoisehg.bitbucket.org.
Αυτό το σύστημα λειτουργεί στην κονσόλα, οπότε θα γράψουμε μερικά *. αρχείο batγια τυπικές λειτουργίες.
Όλες οι λειτουργίες εκτελούνται με την εντολή hg. Καλείται χωρίς παραμέτρους, παραθέτει τις κύριες εντολές.
Όποιος κατάλογος επιλέξουμε (θα χρησιμοποιήσω τον φάκελο "C: \ project \") λειτουργεί ως αποθήκη, στον οποίο θα πρέπει να αποθηκεύονται όλα τα αρχεία του μελλοντικού μας έργου. Φυσικά, κανείς δεν απαγορεύει να υπάρχουν πολλά αποθετήρια σε έναν υπολογιστή.
Για να κάνουμε το σύστημα να «καταλάβει» ότι θέλουμε να δημιουργήσουμε ένα αποθετήριο, εκτελούμε την εντολή:
hg init c: \ έργο
μετά από αυτό θα δημιουργηθεί ο φάκελος “c: \ project \”, αν δεν είχε δημιουργηθεί νωρίτερα και ο φάκελος “c: \ project \ .hg \”, στον οποίο η Mercurial θα αποθηκεύσει όλες τις πληροφορίες της υπηρεσίας.
Αμέσως θυμόμαστε ότι θέλουμε να πάρουμε όχι μόνο ένα τοπικό αποθετήριο στον υπολογιστή μας, αλλά και ένα απομακρυσμένο αποθετήριο στο οποίο θα προωθήσουμε όλες τις αλλαγές μας (ή, όπως λένε οι έξυπνοι, «σπρώξτε» τις αλλαγές σε ένα απομακρυσμένο αποθετήριο, από το Αγγλικό «σπρώξιμο»). Για να το κάνετε αυτό, μεταβείτε στο bitbucket.org, εγγραφείτε και δημιουργήστε το πρώτο μας αποθετήριο (Repositories - Create new repository). Δώστε ένα όνομα στο αποθετήριο (για λόγους σαφήνειας θα το ονομάσω remote_project) και κάντε κλικ στο Create repository.
Τώρα έχουμε δύο αποθετήρια - ένα τοπικό που βρίσκεται στο φάκελο "c: \ project \" και ένα απομακρυσμένο που βρίσκεται στο "bitbucket.org/your_account_name/remote_project/", όπου το your_account_name καθορίζεται κατά την εγγραφή στο bitbucket, το remote_project είναι το αποθετήριο όνομα, επιλεγμένο όταν δημιουργήθηκε.
Για να συνεχίσουμε την εξερεύνηση, πρέπει να βάλουμε κάτι στο τοπικό μας αποθετήριο. Απλώς δημιουργήστε σε αυτό (στην περίπτωσή μου - στο φάκελο "c: \ project \") οποιοδήποτε αρχείο του μελλοντικού σας έργου ή αντιγράψτε το τρέχον έργο σας εκεί.
Τώρα, μιλώντας αυστηρά, πρέπει να πούμε στη Mercurial: "προσθέσαμε τέτοια αρχεία και μερικούς νέους φακέλους στον φάκελο του έργου", για αυτό παρέχεται η εντολή "hg add". Ωστόσο, μια άλλη προσέγγιση είναι πιο βολική - στην επόμενη δέσμευση θα πούμε στη Mercurial να πάρει όλα τα αρχεία που δημιουργήθηκαν πρόσφατα από τον φάκελο του έργου και να ξεχάσει τα διαγραμμένα, αυτό είναι πολύ πιο εύκολο από την εκτέλεση του "hg add c: \ project \ new_document .doc” κάθε φορά που δημιουργείτε ένα νέο έγγραφο ”.
Λοιπόν, ας πάμε στην πρώτη μας δέσμευση. Εκτελείται με την ακόλουθη εντολή:
hg commit –A –m «σχόλιο για δέσμευση»
Ας ρίξουμε μια ματιά σε όλα με τη σειρά. Η εντολή πρέπει να εισαχθεί όταν βρισκόμαστε στο αποθετήριο (δηλαδή πρέπει πρώτα να εκτελέσουμε το “cd c: \ project”). Απαιτείται η επιλογή -A προκειμένου η Mercurial να παραλάβει νέα αρχεία (βλ. παραπάνω), η επιλογή -m προσθέτει ένα σχόλιο στο commit. Αυτά τα σχόλια θα εμφανίζονται κατά την προβολή εκδόσεων (ή αλλαγών) στο TortoiseHg και στη σελίδα του έργου στο bitbucket.org. Είναι πολύ σημαντικό να δίνετε ουσιαστικά σχόλια, ώστε να μην υποφέρετε αργότερα, να θυμάστε πότε έγινε αυτή ή εκείνη η επεξεργασία.
Τώρα το αποθετήριο μας περιέχει την αρχική έκδοση του έργου μας. Όλες οι περαιτέρω δεσμεύσεις εκτελούνται με τον ίδιο τρόπο αφού αποφασίσουμε ότι είναι ώρα να αποθηκεύσουμε την τρέχουσα έκδοση.
Η δεσμευμένη δέσμευση μπορεί να προωθηθεί στο απομακρυσμένο αποθετήριο με την εντολή:
hg push https://bitbucket.org/your_account_name/remote_project
Σε αυτήν την περίπτωση, πρέπει επίσης να βρίσκεστε στον φάκελο που αντιστοιχεί στο αποθετήριο. Αφού εισαγάγετε την εντολή, θα σας ζητηθεί το όνομα και ο κωδικός πρόσβασης του λογαριασμού μας στο bitbucket.org, ώστε να μην τα εισάγετε με κάθε πάτημα, η εντολή μπορεί να αντικατασταθεί με την εξής:
hg push hg push https: // your_account_name: [email protected]/your_account_name/remote_project
Δεδομένου ότι θα σφυρηλατήσουμε όλες τις εντολές σε ένα αρχείο * .bat, σε αυτήν την περίπτωση ο κωδικός πρόσβασης θα αποθηκευτεί σε καθαρό κείμενο, το οποίο ενέχει κάποιο κίνδυνο ασφάλειας, αλλά για μένα είναι αποδεκτό.
Έτσι, για ευκολία, δημιουργούμε αρχεία commit.bat, push.bat και commit & push.bat στη ζώνη άμεσης πρόσβασης με το ακόλουθο περιεχόμενο:
[περιεχόμενο αρχείου commit.bat]
ΑΝ!% 1 ==! πήγαινε έξοδο1
cd C: \ έργο
hg commit -A -m "% *"
πήγαινε έξοδο0
: έξοδος1
ηχώ "ΧΩΡΙΣ ΑΡΓ ΓΡΑΜΜΗΣ ΕΝΤΟΛΗΣ!"
: έξοδος0
Αυτό το αρχείο, που καλείται με ορίσματα, θα δεσμεύσει το έργο, προσθέτοντας τα ορίσματα στο σχόλιο δέσμευσης. Παράδειγμα: εκτελούμε το “commit.bat my first commit” και παίρνουμε ένα commit με το σχόλιο “my first commit”. Στο FAR είναι βολικό να χρησιμοποιήσετε τον συνδυασμό Ctrl + Enter για αυτό.
[περιεχόμενο αρχείου push.bat]
cd C: \ έργο
hg push https: // your_account_name: [email protected]/your_account_name/remote_project
Αυτό το αρχείο θα προωθηθεί στο απομακρυσμένο αποθετήριο.
[περιεχόμενο αρχείου commit & push.bat]
ΑΝ!% 1 ==! πήγαινε έξοδο1
cd C: \ έργο
hg commit -A -m "% *"
πήγαινε έξοδο0
: έξοδος1
ηχώ "ΧΩΡΙΣ ΑΡΓ ΓΡΑΜΜΗΣ ΕΝΤΟΛΗΣ!"
: έξοδος0
καλέστε ./push.bat
Αυτό το αρχείο, που καλείται με ορίσματα, θα εκτελέσει μια διαδοχική δέσμευση και ώθηση του έργου, συμπεριλαμβανομένων των ορισμάτων στο σχόλιο δέσμευσης.
Επιπλέον, για μικρές ενδιάμεσες δεσμεύσεις, προτείνω να δημιουργήσετε ένα αρχείο commit_date_time.bat:
[περιεχόμενο αρχείου commit_date_time.bat]
cd C: \ έργο
hg commit -A -m "% DATE%% TIME%"
Αυτό το αρχείο θα δεσμευτεί με την τρέχουσα ημερομηνία και ώρα ως σχόλιο, κάτι που είναι συχνά βολικό.
Ο καθένας αποφασίζει για τη συχνότητα των δεσμεύσεων και πιέζει σε ατομική βάση, ανάλογα με την ένταση και την πολυπλοκότητα των επεξεργασιών που γίνονται. Αν και συνιστάται να καθοδηγείτε από τον κανόνα «περισσότερο τόσο καλύτερα».
Κάνοντας δεξί κλικ στο αρχείο/φάκελο του αποθετηρίου, μπορείτε να εκκινήσετε το Repository Explorer (TortoiseHg - Repository Explorer), το οποίο περιέχει όλα τα commit μας με σχόλια σε αυτά. Αυτό το παράθυρο εμφανίζει τη δομή δέντρου του αποθετηρίου μας, από εδώ μπορείτε επίσης να κάνετε δεσμεύσεις, ωθήσεις, επαναλήψεις σε προηγούμενες εκδόσεις (backouts) και άλλες λειτουργίες.
Στο bitbucket.org/your_account_name/remote_project υπάρχει ένα παρόμοιο σύνολο συνόλων αλλαγών και μπορείτε να κάνετε λήψη οποιασδήποτε έκδοσης του έργου σε ένα αρχείο, κάτι που μερικές φορές είναι πολύ βολικό.
Γενικά θεωρώ ότι η αρχική μου γνωριμία με τον Mercurial τελείωσε. Για περισσότερα λεπτομερείς πληροφορίεςμπορείτε να επικοινωνήσετε στη διεύθυνση: translation.by/you/mercurial-the-definitive-guide/into-ru/trans/

Σε ποιον απευθύνεται αυτό το άρθρο

Θα τελειώσω, ίσως, με το πού πρέπει να ξεκινήσω - για ποιον είναι αυτό το άρθρο; Η απάντηση είναι απλή - για όσους θέλουν να μάθουν πώς να χρησιμοποιούν SLE. Κατάφερα να «αγκιστρώσω» αρκετούς σχεδιαστές, μηχανικούς ακόμα και έναν συγγραφέα στο ΣΕΛ. Δοκιμάστε το μόνοι σας - κάνοντας αυτό, μπορείτε να διευκολύνετε πολύ την εργασία σας.

P. S. Μεταφέρθηκε στο ιστολόγιο "Συστήματα ελέγχου έκδοσης".

Ετικέτες: Προσθήκη ετικετών

Misha Radionov

Τι είναι τα συστήματα ελέγχου έκδοσης και γιατί τα χρειάζεστε

Επιστρέψετε στην

Φανταστείτε μια κατάσταση: προσλάβατε έναν προγραμματιστή για να προσθέσει, ας πούμε, μια λειτουργία γρήγορης παραγγελίας στο ηλεκτρονικό σας κατάστημα. Δεδομένου ότι ο ιστότοπος πρέπει να λειτουργεί συνεχώς και να δημιουργεί εισόδημα, ο προγραμματιστής αποφασίζει να εργαστεί στον τοπικό διακομιστή του.

Ενώ λειτουργεί, ο σχεδιαστής έστειλε ένα νέο λογότυπο, το οποίο αντικαταστήσατε εσείς οι ίδιοι στο πρότυπο στην κύρια έκδοση του ιστότοπου. Ταυτόχρονα μείωσες τη γραμματοσειρά στα ονόματα των εμπορευμάτων ώστε να χωράνε όλα στην οθόνη ενός netbook ενός πελάτη σου. Στη συνέχεια, ενημερώσατε μερικές εικόνες προϊόντων. Αυτή τη στιγμή, ο προγραμματιστής αποφάσισε να σας κάνει τη χάρη - να καθαρίσει στην έκδοση του ιστότοπού σας την ειλικρινά περιττή λειτουργικότητα που έγραψε ο προηγούμενος προγραμματιστής. Όπως συμβαίνει συχνά, και οι δύο πιστεύετε ότι δεν κάνατε τίποτα σοβαρό. Αλλά κάνεις λάθος.

Όταν η έκδοση του προγραμματιστή μεταφορτώνεται στον ιστότοπο, όλοι οι συμμετέχοντες στην ανάπτυξη αρπάζουν το κεφάλι τους. Τα αποτελέσματα της εργασίας σας διαγράφονται, υπάρχουν σφάλματα. Ποιο είναι το πρόβλημα δεν είναι ξεκάθαρο. Ας ελπίσουμε ότι σε αυτό το σημείο θα έχετε τουλάχιστον ένα λειτουργικό αντίγραφο ασφαλείας στη διάθεσή σας και στη χειρότερη περίπτωση, θα περάσετε αρκετές ημέρες για να εντοπίσετε προβλήματα χειροκίνητα. Πώς να μην μπεις σε αυτή την κατάσταση; Ας πούμε.

Τι είναι το VCS;

Σύστημα ελέγχου έκδοσης (από το English Version Control System, VCS ή Revision Control System) - λογισμικό για τη διευκόλυνση της εργασίας με την αλλαγή πληροφοριών.

Και τώρα με απλό τρόπο

Ένα σύστημα ελέγχου έκδοσης σάς επιτρέπει να αποθηκεύετε πολλές εκδόσεις του ίδιου εγγράφου, να επαναφέρετε προηγούμενες εκδόσεις εάν είναι απαραίτητο, να προσδιορίσετε ποιος έκανε μια συγκεκριμένη αλλαγή και πότε, και πολλά άλλα.

Με άλλα λόγια, το VCS επιτρέπει σε πολλούς προγραμματιστές να τροποποιούν τα ίδια αρχεία ταυτόχρονα και χωρίς να δημιουργούν τοπικά αντίγραφα στους υπολογιστές τους. Ταυτόχρονα, όλες οι παραλλαγές των αλλαγών αποθηκεύονται ξεχωριστά και μπορείτε να κάνετε διαφορετικές εκδόσεις του ίδιου αρχείου, λαμβάνοντας υπόψη διαφορετικές επεξεργασίες από διαφορετικά άτομα. Εάν πολλές αλλαγές επηρεάζουν το ίδιο τμήμα του εγγράφου, τότε το σύστημα θα προτείνει να επιλέξει την επιθυμητή επιλογή.


Συνήθως, για εργασία με ένα σύστημα ελέγχου έκδοσης χρησιμοποιείται ξεχωριστός υπολογιστής(διακομιστής) ή μια υπηρεσία Διαδικτύου που παρέχει τη δυνατότητα ενοικίασης ενός τέτοιου διακομιστή.

Ένα απλό παράδειγμα

Αν πάνω από ένα Έγγραφο ExcelΕάν εργάζονται πολλά άτομα, τότε μόνο ένα άτομο μπορεί να έχει πρόσβαση στο αρχείο για επεξεργασία, ενώ τα υπόλοιπα έχουν πρόσβαση "μόνο για ανάγνωση". Με τη χρήση του VCS, έχετε τη δυνατότητα να επεξεργαστείτε το αρχείο ταυτόχρονα και από όλους. Η μόνη προϋπόθεση είναι ότι μετά την πραγματοποίηση αλλαγών, το αρχείο πρέπει να αποθηκευτεί στον διακομιστή και όχι σε τοπικός υπολογιστής... Όμως, όπως αναφέρθηκε παραπάνω, τα εργαλεία καθιστούν εύκολη και απλή την εκτέλεση τέτοιων ενεργειών.

Σύστημα ελέγχου έκδοσης στο στούντιο Flag

Στην εργασία μας, χρησιμοποιούμε το σύστημα ελέγχου έκδοσης Git. Αυτό το σύστημα είναι ένα από τα πιο κοινά VCS. Εξ ου και πολλή υποστήριξη από την κοινότητα του Git. Επίσης, το πλεονέκτημα είναι το εύκολο mastering του συστήματος, γιατί υπάρχει μεγάλη γκάμα προϊόντα λογισμικούαναπτύχθηκε ειδικά για αυτό το σύστημα.

Χρησιμοποιούμε ένα πρόγραμμα ανάπτυξης κώδικα που ονομάζεται IntelliJ IDEA. Παρέχει ένα IDE, δηλαδή μια μεγάλη λειτουργική βάση για προγραμματιστές, συμπεριλαμβανομένης μιας βολικής διεπαφής για εργασία με έλεγχο έκδοσης. Έτσι, χωρίς να φύγουμε από το πρόγραμμα, μπορούμε να δούμε ποιες αλλαγές έγιναν από αυτόν ή αυτόν τον προγραμματιστή στον ιστότοπο που χρειαζόμαστε. Ή, χωρίς να φοβάστε ότι θα χάσετε τις αλλαγές σας, λάβετε τις αλλαγές που γίνονται από άλλον προγραμματιστή. Η διεπαφή IDEA μοιάζει με αυτό:


Για την αποθήκευση εκδόσεων, χρησιμοποιούμε υπηρεσία cloud Bitbucket. Αυτή η υπηρεσία έχει μια φιλική προς το χρήστη διεπαφή και, εκτός από την αποθήκευση των εκδόσεων σας, σας επιτρέπει να διαχειρίζεστε τους κανόνες πρόσβασης στα προϊόντα σας για διαφορετικούς χρήστες. Το πλεονέκτημα της χρήσης αποθήκευση στο σύννεφοείναι η απουσία οποιωνδήποτε απαιτήσεων για γνώση διαμόρφωσης και διαχείρισης διακομιστή. Παίρνετε τα πάντα από το κουτί και μπορείτε να αρχίσετε να το χρησιμοποιείτε αμέσως. Οτιδήποτε ανεβάζετε στο bitbucket είναι ιδιωτικό, δηλ. χωρίς την άδειά σας, κανείς άλλος δεν μπορεί καν να δει τι κρατάτε. Διεπαφή Bitbucket:



Τι μας δίνει η χρήση του VCS

  • Απόλυτη εμπιστοσύνη ότι τα αρχεία που λαμβάνουμε από το σύστημα είναι πάντα ενημερωμένα, ανά πάσα στιγμή.
  • Δυνατότητα λήψης της απαιτούμενης έκδοσης από οποιονδήποτε υπολογιστή που θα σας επιτρέψει να συνδεθείτε στον διακομιστή.
  • Όταν αποθηκεύετε ένα αρχείο στο VCS, δεν χρειάζεται να σκεφτείτε το γεγονός ότι κάποιος που εργάζεται με το ίδιο αρχείο θα αποθηκεύσει ξανά και θα αντικαταστήσει τις αλλαγές.
  • Για τους προγραμματιστές λογισμικού, η χρήση του συστήματος επιτρέπει επίσης την αποδοχή / απόρριψη των αλλαγών που έγιναν από έναν από τους προγραμματιστές.

Τι δίνει στους πελάτες μας

Ας επιστρέψουμε στην κατάσταση που συζητήθηκε στην αρχή. Όπως θα ήταν με το VCS. Ο προγραμματιστής ανεβάζει τον κωδικό του σε ξεχωριστό κλάδο. Εξετάζετε τις αλλαγές και τις εφαρμόζετε μόνο αν δείτε ότι όλα είναι εντάξει. Όλα είναι αποθηκευμένα σε ένα μέρος, ασφαλή, γρήγορα και βολικά. Και όταν υπάρχουν πολλοί προγραμματιστές, δεν μπορείς καθόλου χωρίς VCS.

Ενεργοποιήστε την JavaScript για να προβάλετε το

Συχνά, οι προγραμματιστές εργάζονται σε μια ομάδα σε ένα έργο, πράγμα που σημαίνει ότι πολλά άτομα ταυτόχρονα μπορούν να τροποποιήσουν ένα αρχείο ταυτόχρονα. Για να αποφευχθεί η σύγχυση σε τέτοιες περιπτώσεις, χρησιμοποιείται ένα σύστημα ελέγχου έκδοσης, το οποίο σας επιτρέπει να αποθηκεύετε το ιστορικό των αλλαγών του έργου και, εάν είναι απαραίτητο, βοηθά στην επιστροφή σε προηγούμενη έκδοση.

Εκδόσεις

Για να κατανοήσετε καλύτερα το πρόβλημα της έκδοσης, εξετάστε ένα παράδειγμα σχεδιαστή που ολοκλήρωσε την εργασία σε ένα έργο και έστειλε την τελική έκδοση σε έναν πελάτη. Ο σχεδιαστής έχει ένα φάκελο όπου αποθηκεύεται η τελική έκδοση του έργου:

Πηγή / barbershop_index_final.psd

Όλα είναι καλά, ο σχεδιαστής τελείωσε τη δουλειά, αλλά ο πελάτης έστειλε πίσω τις επεξεργασίες. Για να μπορέσω να επιστρέψω στο παλιά εκδοχήέργο, ο σχεδιαστής δημιούργησε ένα νέο αρχείο barbershop_index_final_2.psd, έκανε αλλαγές και έστειλε στον πελάτη:

Πηγή / barbershop_index_final.psd barbershop_index_final_2.psd

Δεν ήταν μόνο αυτό, ως αποτέλεσμα, η δομή του έργου μεγάλωσε και άρχισε να μοιάζει με αυτό:

Πηγή / barbershop_index_final.psd barbershop_index_final_2.psd… barbershop_index_final_19.psd… barbershop_index_latest_final.psd barbershop_index_latest_final_Final.psd

Πιθανώς, πολλοί το έχουν ήδη αντιμετωπίσει αυτό, για παράδειγμα, όταν γράφουν εργασίες όρου ενώ σπουδάζουν. Στην επαγγελματική ανάπτυξη, είναι κακή πρακτική η χρήση νέων αρχείων για έκδοση εκδόσεων. Συνήθως οι προγραμματιστές έχουν πολλά αρχεία στον φάκελο του έργου τους. Επίσης, πολλά άτομα μπορούν να εργαστούν σε ένα έργο. Εάν κάθε προγραμματιστής για έκδοση εκδόσεων δημιουργήσει ένα νέο αρχείο, αλλάζοντας ελαφρώς το όνομα της προηγούμενης έκδοσης, τότε σύντομα θα αρχίσει το χάος στο έργο και κανείς δεν θα καταλάβει ποια αρχεία πρέπει να ανοίξουν.

Git

Για να λύσετε το πρόβλημα της αποθήκευσης μιας νέας έκδοσης αρχείων, είναι βολικό να χρησιμοποιείτε συστήματα ελέγχου έκδοσης. Ένα από τα πιο δημοφιλή είναι το Git. Το Git μπορεί να συγκριθεί με τη διαδικασία αποθήκευσης και φόρτωσης σε παιχνίδια υπολογιστή:

  • εάν μια δύσκολη μάχη περιμένει μπροστά, τότε πριν από αυτό είναι καλύτερο να αποθηκεύσετε εκ των προτέρων.
  • Για να το κάνετε αυτό, πρέπει να εκτελέσετε μια ειδική εντολή.
  • μετά την οποία η αποθήκευση πηγαίνει στο ειδικό φάκελοκαι περιέχει την κατάσταση του παιχνιδιού.
  • τώρα, αν χρειαστεί, είναι πάντα δυνατή η επιστροφή στην προηγούμενη έκδοση του παιχνιδιού.

SomeGame / | - σώζει | | - save001.sav | | - save002.sav | | … | | αποθήκευση φακέλου | | - game.exe | ... αρχεία παιχνιδιών

Τα αρχεία που απαιτούνται για την εκτέλεση της εφαρμογής αποθηκεύονται στο χώρο εργασίας. Ο φάκελος αποθήκευσης περιέχει το ιστορικό όλων των αποθηκευμένων παιχνιδιών. Το Git αποθηκεύει τον κώδικα του έργου σας με τον ίδιο τρόπο: τα save πηγαίνουν σε ένα ειδικό κρυφός φάκελοςκαι η περιοχή εργασίας είναι τα περιεχόμενα του ριζικού φακέλου.

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

GUI

Τα ειδικά προγράμματα μπορούν να διευκολύνουν την εργασία με το Git και το GitHub. Τέτοια προγράμματα σε βολική μορφή εμφανίζουν αλλαγές στον κώδικα, μια λίστα δεσμεύσεων και έχουν άλλα βολικά χαρακτηριστικά. Συνήθως, τέτοια προγράμματα έχουν τη δυνατότητα να εκτελούν τυπικές εντολές Git: pull, push, commit και άλλα - απλά κάνοντας κλικ σε ένα κουμπί.

Σε επαφή με

Τηλεγράφημα

Συνεχίζοντας το θέμα:
Ενας υπολογιστής

Πώς μπορώ να ενημερώσω το λογισμικό; Σας παρέχουμε διαφορετικούς τρόπους ενημέρωσης του λογισμικού, συγκεκριμένα: ενημέρωση με χρήση κάρτας μνήμης ή ενημέρωση "με ...