Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Using SourceSafe

Îåêßíçóå áðü ôï ìÝëïò kkara. Τελευταία δημοσίευση από το μέλος Χρήστος Γεωργακόπουλος στις 04-06-2006, 08:38. Υπάρχουν 12 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-11-2005, 14:06 6602

    Using SourceSafe

    Είμαι τελείως καινούριος στην χρήση του SourceSafe (v6.0d) στο Visual Studio 2003 και χρειάζομαι μια μικρή βοήθεια Embarrassed [:$]...

    Η απορία μου βασικά είναι αν μπορώ να το ρυθμίσω ώστε ανά πάσα στιγμή όλοι οι χρήστες να βλέπουν την τελευταία έκδοση του κώδικα, χωρίς να χρειάζεται να κάνουν Get Latest Version. Π.χ. αν κάποιος άλλος χρήστης προσθέσει ένα νέο αρχείο και το κάνει Check In θα ήθελα με κάποιο τρόπο να το γνωρίζω ενώ έχω ανοιχτό το project στο VS (ή έστω να με ειδοποιήσει ότι υπήρξε κάποια αλλαγή και να κάνω manually Get). Διάβασα για τα Shadow Folders αλλά επειδή όλοι οι χρήστες θα θέλουν να κάνουν και τοπικό compile, δεν με βολεύει (ή αλλιώς δεν τα κατάλαβα καλά). Θεωρούσα ότι αυτή η λειτουργικότητα θα ήταν αυτονόητη, αλλά προφανώς έσφαλα (ή είμαι τυφλός και δεν το βλέπω Smile [:)]).

    Ευχαριστώ εκ των προτέρων...

    Στερνή μου γνώση να σε είχα πρώτα...
  •  01-11-2005, 17:02 6607 σε απάντηση της 6602

    Απ: Using SourceSafe

    Θεωρώ οτι το ζητούμενο έχει δύο όψεις:

    1. Οποτε κάνει κάποιος checkin να κάνουν οι άλλοι αυτόματα get latest
    2. Οποτε κάνει κάποιος checkin να υπάρχει ειδοποίηση στους υπόλοιπους ωστε ν α μπορούν να επιλέξουν αν θα κάνουν get latest ή οχι.

    Στο (1), η φιλοσοφία του VSS είναι να ΜΗΝ σου δίνει τη δυνατότητα για κάτι τέτοιο. Δεν έχω κάτι να προτείνω.

    Στο (2), βρήκα αρκετά πράγματα ψάχνοντας, χωρις, επαναλαμβάνω, ΧΩΡΙΣ, να τα εχω δοκιμάσει. Ριξε μια ματιά και αν βρεις κάτι αποτελεσματικό σε παρακαλώ ενημέρωσε και εμάς τους φτωχούς :)

    Codeproject εφαρμογές με source code:

    http://www.codeproject.com/vb/net/LmVMS.asp

    http://www.codeproject.com/vbscript/ssmonitor.asp

    Εμπορικές εφαρμογές:

    http://www.sourcevizor.com/

    http://www.cryptomonkey.com/

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-11-2005, 19:29 6613 σε απάντηση της 6607

    Απ: Using SourceSafe

    Η αλήθεια είναι ότι το SourceSafe δεν είναι, ούτε για μένα, από τα δυνατά στοιχεία μου.

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

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  01-11-2005, 19:36 6615 σε απάντηση της 6607

    Απ: Using SourceSafe

    Ώστε δεν είμαι τυφλός, και όντως δεν υπήρχε αυτή η δυνατότητα (γι' αυτό δεν τη βρήκα)... Το καλό είναι ότι γλυτώνω τον οφθαλμίατρο το κακό είναι ότι δεν έκανα τη δουλειά μου Sad [:(].

    Καθότι κι εγώ "φτωχός", κοίταξα μόνο τις CodeProject εφαρμογές και όχι τις εμπορικές. Η δεύτερη δούλευε με Console λύση, οπότε δεν ασχολήθηκα. Άρα μας μένει η πρώτη... Πολύ ενδιαφέρουσα, αλλά δυστυχώς δεν κατάφερα να την κάνω να δουλέψει με τον τρέχων Messenger που έχω.

    Όντως η ιδέα πίσω από την εφαρμογή ήταν ακριβώς αυτό που ήθελα, να μπορέσω δηλαδή να λαμβάνω ειδοποιήσεις όταν συμβαίνει κάποιο event στη DB του VSS. Μπορούσε να στέλνει ειδοποιήσεις μέσω e-mail (που δεν με απασχολούσε, οπότε δεν ασχολήθηκα) και μέσω του MSN Messenger, που θα ήταν θεϊκό αν δούλευε. Το κακό είναι ότι η εφαρμογή έχει φτιαχτεί παλιά και προφανώς χρησιμοποιεί πολύ παλιά έκδοση του MSN Messenger (την 4, σύμφωνα με τον author). Η λύση φυσικά θα ήταν να πάρω το API του τρέχοντος Messenger και να γράψω τον κατάλληλο κώδικα, αλλά δεν καίγομαι τόοοοοοοοοοσο πολύ Wink [;)].

    Πάντως το θεωρώ απαράδεκτο να μην ενημερώνεσαι για τις αλλαγές που κάνουν άλλοι στον κώδικα από το ίδιο το SourceSafe. Δηλαδή αν δεν έχω τον συνάδελφο απέναντι να μου πει πάρε τελυταία έκδοση τι κάνω; Ή αν κάνουμε ταυτόχρονα αλλαγές στο ίδιο Project; Ας ελπίσουμε ότι το νέο SourceSafe για το VS2005 θα έχει διαφορετικό προσανατολισμό...

    Στερνή μου γνώση να σε είχα πρώτα...
  •  01-11-2005, 20:01 6616 σε απάντηση της 6615

    Απ: Using SourceSafe

     kkara wrote:
    Πάντως το θεωρώ απαράδεκτο να μην ενημερώνεσαι για τις αλλαγές που κάνουν άλλοι στον κώδικα από το ίδιο το SourceSafe. Δηλαδή αν δεν έχω τον συνάδελφο απέναντι να μου πει πάρε τελυταία έκδοση τι κάνω; Ή αν κάνουμε ταυτόχρονα αλλαγές στο ίδιο Project; Ας ελπίσουμε ότι το νέο SourceSafe για το VS2005 θα έχει διαφορετικό προσανατολισμό...

    Πολύ φοβάμαι ότι αυτό, μοιάζει σαν feature του "Μεγάλου Αδελφού" του SourceSafe 2005, του Team System Foundation Server...

    Θα το δω, να σου πω σίγουρα...

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  01-11-2005, 22:20 6620 σε απάντηση της 6615

    Απ: Using SourceSafe

     kkara wrote:
    Πάντως το θεωρώ απαράδεκτο να μην ενημερώνεσαι για τις αλλαγές που κάνουν άλλοι στον κώδικα από το ίδιο το SourceSafe. Δηλαδή αν δεν έχω τον συνάδελφο απέναντι να μου πει πάρε τελυταία έκδοση τι κάνω; Ή αν κάνουμε ταυτόχρονα αλλαγές στο ίδιο Project; Ας ελπίσουμε ότι το νέο SourceSafe για το VS2005 θα έχει διαφορετικό προσανατολισμό...

    Εγώ έχω αρκετά μεγάλη εμπειρία με το vss. Αυτό που λες, όντως ακούγεται σαν καλή ιδέα αλλά στην πράξη δεν χρειάζεται τόσο συχνά. Συνήθως ο κύκλος ενός check out - check in είναι αρκετά μεγάλος σε χρονική διάρκεια (30min με 4-5 ώρες) και επειδή οι developers αποφεύγουν να δουλεύουν στα ίδια κομμάτια κώδικα (δεν επιτρέπονται multiple checkouts) δεν υπάρχει η ανάγκη στο να έχει ο ένας την τελευταία έκδοση του κώδικα του άλλου συνεχώς. Περισσότερο υπάρχει η ανάγκη επικοινωνίας για συνεννόηση σε αλλαγές στο ίδιο αρχείο ("κάνε μου check-in γιατί θέλω να προσθέσω μια function", "περίμενε μισό λεπτό να διορθώσω ένα bug") αλλά πιστεύω ότι μεγάλη λύση σε αυτό το πρόβλημα θα είναι τα partial classes του 2.0.

    Αν έχετε πάντως άλλες απορίες, ρωτήστε...


    Χρήστος Γεωργακόπουλος
  •  01-11-2005, 22:47 6621 σε απάντηση της 6620

    Απ: Using SourceSafe

     cgeo wrote:
    Περισσότερο υπάρχει η ανάγκη επικοινωνίας για συνεννόηση σε αλλαγές στο ίδιο αρχείο ("κάνε μου check-in γιατί θέλω να προσθέσω μια function", "περίμενε μισό λεπτό να διορθώσω ένα bug") αλλά πιστεύω ότι μεγάλη λύση σε αυτό το πρόβλημα θα είναι τα partial classes του 2.0.

    Χρήστο, με projects με Visual Studio 6, είμαστε αναγκασμένοι, να έχουμε multiple check-out, γιατί αλλιώς δεν μπορούμε να κάνουμε τοπικά compile, όταν το .vbp δεν είναι check-out. Με αποτέλεσμα να στηριζόμαστε στο VSS να κάνει merging στον κώδικά μας όταν γίνεται check-in. Hmm [^o)] Δεν μπορώ να πω ότι γίνεται πάντα επιτυχημένα. Sad [:(]

    Πρόβλημα συνεννόησης δεν έχουμε και τόσο, αν και είμαστε σε ξεχωριστούς ορόφους, χάρη στο Messenger και τον Live Communication Server. Smile [:)]

    Το μεγαλύτερο δίλημμα που υπάρχει είναι, αν θα πρέπει να χρησιμοποιείται το VSS σε άλλα Source Management Systems τρίτων, να γίνεται το check-in, check-out εκτός του IDE εργασίας, ή μέσα από το IDE με του μηχανισμούς που παρέχει το IDE. Αυτό προκύπτει από το θέμα ότι το VSS δεν μπορεί να κάνει merging σε binary αρχεία. Αν πρέπει όλα τα αρχεία του project να είναι μέσα στο VSS. πχ resource files, access databases και τα τελικά .dll και .exe αρχεία, τουλάχιστον για το VS6 αυτό είναι ζήτημα, γιατί δεν μπορείς να κάνεις check-out ένα .dll μέσα από το IDE για να το ξανακάνεις complile και να το βάλεις ξανά μέσα - πρέπει να το κάνεις check-out εξωτερικά του IDE και μετά το compile μέσα από το IDE, και τέλος το check-in πάλι εξωτερικά.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  01-11-2005, 23:42 6622 σε απάντηση της 6621

    Απ: Using SourceSafe

    Με το 6 δεν έχω παίξει... Αυτό πάντως με τις dlls ακούγεται μεγάλο μπλέξιμο. Μήπως να φτιάχνατε μια εφαρμογή να τσεκάρει αυτόματα για ενημέρωση του dll αρχείου και να κάνει αυτόματα post το αρχείο στο vss ? Με το api του vss στο VS2003 είναι αρκετά εύκολο.

    Για λοιπά αρχεία, εγώ το χρησιμοποιώ για όλα μου τα projects, ακόμα και για άσχετα πράγματα από το VS (γραφικά, documents κλπ). Ρίξε και μια ματιά στο ESS (http://www.codeproject.com/tools/ess.asp) διευκολύνει λίγο τα πράγματα.

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

    PS. Τώρα που το σκέφτομαι, με το API θα μπορούσε να φτιαχτεί εξίσου εύκολα μια εφαρμογούλα που να κάνει sync τη βάση του vss με τα local αρχεία... Αν βρεθεί βέβαια τρόπος να μην γίνεται αυτό την ώρα του build... Καμιά ιδέα;


    Χρήστος Γεωργακόπουλος
  •  04-04-2006, 05:20 11535 σε απάντηση της 6602

    Απ: Using SourceSafe

    Η τελευταία έκδοση κώδικα είναι πάντα μέσα στο VSS μόνο που χρειαζετε ανά πάσα στίγμη να κάνετε show difference και να δείτε τις διαφορές στο κώδικα που είναι στον υπολογιστή σας. Δεν υπάρχει αυτόματος τρόπος δυστυχώς. Δούλεψα αρκετά με labelling στο VSS και το βρήκα αρκετά καλό μόνο όταν όλοι οι developers (το αναπτυκτές με τρομάζει ακόμα) έπαιζαν με τους ίδιους όρους. Αποφασίζαμε από πριν μια συγκεκριμένη ώρα και όλοι έκαναν check in compilable code. Αν δεν ήταν compilable δεν το κάναμε check in. Είχαμε μόνο ένα άτομο που είχε όλα τα .vbp check out και έκανε compile, check in (.dll and .vbp κτλ. ) και label τουλάχιστον δυο τρεις φορές την μέρα όταν γράφαμε κωδικό σαν αφινιασμένοι και όποτε χρειαζόταν τις υπόλοιπες μέρες. Κάθε label υποτίθετε πως δούλευε και μπορούσαμε να κάνουμε get label τάδε αντί για get latest. Κάναμε και local compile αλλά δεν κάναμε ποτέ check out ή check in το .vbp. Απλώς του βγάζαμε το read only attribute.

    Όταν όμως δουλεύουν πολλοί developers με κοινά core components οι πιθανότητες για τραγελαφικά περιστατικά αυξάνονται που κανένα source management δεν τα αποφεύγει! Παράδειγμα το Alpha male είναι υπεράνω κανονισμών, ο αδιάφορος αδιαφορεί, ο τσαπατσούλης δεν ενοχλήτε που τα έκανε όλα σαλάτα και το GetMonthlyTotal επιστρέφει ημερίσια ποσά και βγαίνει και από πάνω λέγοντας πως από δω και πέρα πρέπει όλοι οι υπόλοιποι να προσθέσουν μερικούς πολλαπλασιασμούς στον τον κώδικά τους!



    ΥΓ.

    Συγνώμη για τα ελληνικά μου. Ζω και δουλεύω στο εξωτερικό και προσπαθώ να μάθω ελληνική τεχνολογική ορολογία από τον Ζαχαρία ΔεΤοΦτιάχνω και τους συνεργάτες του.






    πολυτεχνίτρια κ' ερημοσπίτισα
  •  03-06-2006, 03:03 13568 σε απάντηση της 6602

    Απ: Using SourceSafe

    'Ανασταίνω' λίγο το thread, για να ρωτήσω κι εγώ με τη σειρά μου κάποια πράγματα. Χρησιμοποιώ το Visual Studio 2005 και το Visual Source Safe 2005.
    Ξεκινάω:
    1. Ο 'ορθός' τρόπος δημιουργίας ενός source controlled project είναι η δημιουργία του από το Visual Studio και μετά 'add solution to source control' ή υπάρχει και κάτι άλλο;
    2. Ας πούμε ότι δύο team members θέλουν να δουλέψουν στο ίδιο solution ταυτόχρονα. Πώς γίνεται ακριβώς αυτό; Δηλαδή, θα κάνουν open το original sln αρχείο μέσα από το studio, θα ανοίξουν το sln από το Visual Source Safe client που έχουν, ή θα ανοίξουν αυτό που έχει αποθηκευτεί στο working folder τους;
    3. Όσον αφορά το working folder, εκεί αν έχω καταλάβει καλά αντιγράφονται τα αρχεία εργασίας κατά τη διάρκεια που αυτά είναι checked out. Όταν γίνουν check - in τότε τι ακριβώς γίνεται με τα αρχεία στο working folder; Δηλαδή, τι ρόλο ύπαρξης έχουνε πλέον;

    Είναι λίγο ασαφείς οι ερωτήσεις μου, το γνωρίζω, αλλά αν μπορεί κάποιος ας απαντήσει και συνεχίζουμε......

    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  03-06-2006, 09:03 13571 σε απάντηση της 13568

    Απ: Using SourceSafe

    1. Είναι πολύ πιο βολικό να κάνεις add μέσα από το VS (και μετά να ελέγχεις ότι έχει μπει στη σωστή θέση)
    2. Το ότι θέλουν δύο developers να δουλέψουν το ίδιο solution δεν σημαίνει ότι γίνεται check out το sln. Το sln γίνεται checkout μόνο όταν προσθαφαιρούνται projects και το vbproj και csproj μόνο όταν προσθαφαιρούνται αρχεία ή υπάρχουν αλλαγές στο configuration. Αυτές οι δουλιές όμως δεν επηρεάζουν άμεσα τον κώδικα (αν είναι compilable ή όχι), οπότε μπορούν να είναι πολύ σύντομες. Δηλαδή, θέλω να προσθέσω ένα νέο αρχείο στο project μου, κάνω check out το vbproj, προσθέτω το αρχείο (πχ ένα winform) και όπως είναι, χωρίς δικό μου κώδικα, ξανακάνω check in το project. Κατόπιν κάνω check out το νέο μου αρχείο και δουλεύω. Οπότε επειδή οι δύο developers δουλεύουν το ίδιο project αλλά εν γένει διαφορετικά αρχεία, δεν υπάρχει πρόβλημα.
    3. Το working folder διατηρεί ένα local copy των αρχείων. Δεν διαγράφονται στο checkin. Επίσης, μπορείς να χρησιμοποιήσεις αυτά τα αρχεία για να κάνεις άλλες γενικότερες εργασίες που δεν χρειάζονται check out (πχ, να πάρεις ένα πρόχειρο backup, να τα κοπιάρεις για να τα πάρεις στο σπίτι σου χωρίς να έχεις vss, να τρέξεις κάποιο εξωτερικό εργαλείο για code analysis το οποίο δεν ξέρει από vss, κλπ.).

    Να συμπληρώσω επίσης, ότι επειδή το VS, και ιδιαίτερα το VS 2005 γίνονται αρκετά καλά integrate με το VSS, είναι ιδανικά για source control σε projects με οποιαδήποτε αρχεία. Για παράδειγμα, φτιάχνουμε ένα flash web site, και θέλουμε source control στα αρχεία μας. Έχουμε ουσιαστικά fla, swf, html, psd, cdr, gif, jpg κλπ αρχεία και καθόλου κώδικα. Οπότε επειδή το να τα διαχειριστούμε με το χέρι από VSS έχει το μπλέξιμό του (manual add, remove, move), φτιάχνουμε ένα solution στο VS και τα χειριζόμαστε από εκεί. Το solution βέβαια κώδικα δεν έχει, compile δεν χρειάζεται, αλλά το VS μου δίνει τη δυνατότητα να χειρίζομαι εύκολα τα αρχεία μου με source control από πίσω.

     


    Χρήστος Γεωργακόπουλος
  •  03-06-2006, 13:15 13578 σε απάντηση της 13571

    Απ: Using SourceSafe

    Καταρχάς, ευχαριστώ για τη γρήγορη απάντηση.
    1. Για να δούμε το θέμα σε μια λίγο πιο real κατάσταση (μπας και καταλάβω τι γίνεται), ας πάρουμε ένα παραδειγματάκι.Έστω ότι εγώ, ο developer A, δημιουργώ ένα solution σε ένα folder FA στο PC μου, φτιάχνω φόρμες σε ένα project, φτιάχνω business logic σε ένα άλλο, φτιάχνω DAL σε ένα άλλο. Έχω λοιπόν στο folder FA στο PC μου, ένα sln με τρία projects. Κάνω add recursively το solution σε source control (οπότε αντιγράφονται τα πάντα στη VSS database). Ο developer B μετά, θέλει να δουλέψει πάνω στο solution. (χαζή ερώτηση coming....Big Smile) Πώς θα το ανοίξει;;;;; Θα ανοίξει το sourcesafe client που έχει στο PC του, και μέσω αυτού θα κάνει edit το sln αρχείο ώστε να κατέβουν όλα τα αρχεία στο working folder του, ή θα πρέπει να έχω κάνει share εγώ τον φάκελο FA (όπου έκανα την ανάπτυξη πριν κάνω add στο VSS) και να το ανοίξει από κει;
    2. Στο ίδιο σενάριο, ο developer B θέλει να κάνει build το solution, π.χ. για να το πάει demo σε πελάτη. Θα έχει ανοίξει το project, θα κάνει ένα build σε release, και θα πάρει το ouput από το working folder του και τέλος; Ή θα πρέπει να χρησιμοποιήσει shadow folder;

    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  04-06-2006, 08:38 13587 σε απάντηση της 13578

    Απ: Using SourceSafe

    1. Το ανοίγει από το File/Source control/Open from source control όπου εκεί βλέπει τα projects μέσα από το VSS. (Αρκεί βέβαια να έχει συνδεθεί στη βάση του VSS). Ψάχτο λίγο, δεν είναι δύσκολο.
    2. Θα ανοίξει το studio, θα κάνει get latest σε όλο το solution, θα κάνει το build και μετά από το working folder που έχει κάτσει το startup project θα πάρει τα αρχεία. Δεν αλλάζει κάτι σε αυτό επειδή υπάρχει VSS από πίσω.

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

     


    Χρήστος Γεωργακόπουλος
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems