Προγραμματισμός με συνεργασία μέσω του CVS

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

Κλάδοι

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

Κοινή χρήση εργασίας

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

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

Αλληλεπίδραση με κλάδους και πάγκους εργασίας

Αισιόδοξο μοντέλο ομάδας

Το CVS παρέχει δύο σημαντικά χαρακτηριστικά τα οποία είναι απαραίτητα για την εργασία σε ομάδα:

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

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

Προτεινόμενη ροή εργασίας

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

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

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

Απαρίθμηση ιδανικής ροής

Η ιδανική ροή εργασίας αναλύεται ως εξής:

  1. Κάντε μια νέα αρχή. Πριν αρχίσετε να δουλεύετε, ενημερώσετε τους πόρους στο χώρο εργασίας με την τρέχουσα κατάσταση κλάδου. Εάν είστε σίγουροι ότι δεν υπάρχει κάποια εργασία τοπικά η οποία σας ενδιαφέρει, ο ταχύτερος τρόπος για να πραγματοποιήσετε ενημέρωση είναι να επιλέξετε τα έργα που σας ενδιαφέρουν από τον κλάδο (ή το HEAD) και να επιλέξετε Ανάληψη ελέγχουΑντικατάσταση με > Τελευταίο από χώρο αποθήκευσης εάν τα έργα υπάρχουν ήδη τοπικά). Με αυτό τον τρόπο οι τοπικοί πόροι θα αντικατασταθούν με αυτούς που υπάρχουν στον κλάδο.

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

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

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

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

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

Περισσότερες πληροφορίες σχετικά με το CVS μπορείτε να βρείτε στη διεύθυνση http://www.cvshome.org.

Σχετικές έννοιες
Χώροι αποθήκευσης CVS
Κλάδοι
Εκδοχές
Συγχρονισμός με το χώρο αποθήκευσης CVS

Σχετικές εργασίες
Δημιουργία θέσης χώρου αποθήκευσης CVS

Ανάληψη ελέγχου ενός έργου από ένα χώρο αποθήκευσης CVS
 
Αντικατάσταση πόρων στον πάγκο εργασίας

Κοινή χρήση νέου έργου με χρήση CVS

Συγχρονισμός με το χώρο αποθήκευσης

Ενημέρωση

Επίλυση διενέξεων

Συγχώνευση από έναν κλάδο

Δέσμευση

Σχετικές παραπομπές
CVS