Ερωτήσεις περι cvs...

DJ Art djart at linux.gr
Sat Jun 21 03:31:01 EEST 2003


On Saturday 21 June 2003 00:03, Nikiforakis Manos wrote:

> ΕΡΩΤΗΣΗ 1: προτού κανω οτιδήποτε κανω make clean στο directory
> /home/manos/koffice-cvs/koffice σωστο; Μήπως θά πρεπε να εχω
> συμπιέσει το αρχικό μόλις το κατέβασα με το cvs co koffice και να
> δουλέψω με εκείνο;

Αν και αυτό που λές δεν είναι άσχημη ιδέα (δηλαδή το να κράταγες 
συμπιεσμένο το "clean" repository και πάνω σε αυτό να κάνεις τα 
μελλοντικά updates), παρόλα αυτά δεν νομίζω ότι θα σου παρουσιαστεί 
κάποιο πρόβλημα. Το cvs θα φροντίσει να φέρει όλα τα αναβαθμισμένα 
αρχεία.

Αν τώρα, κάπου υπάρξει κάποιο πρόβλημα, όπως π.χ. conflict, θα σου 
βγάλει error message κατά τη διαδικασία του update και θα σου πεί 
επακριβώς επάνω σε ποιό αρχείο έχει πρόβλημα.

Επίσης, συνήθως οι developers στα Makefiles βάζουν και το dist-clean 
rule, όπου κάνοντας make dist-clean, επαναφέρεις το source repository 
στην εντελώς αρχική του κατάσταση. Δοκίμασέ το.

> ΕΡΩΤΗΣΗ 2: στη συνέχεια δίνω cvs login και cvs update -PAd -r
> KOFFICE_1_3_BETA2 σωστό; Τα P,d χρειάζονται; (ρωτάω γιατί τι τα
> βάλαμε στο .cvsrc;)

όχι, από τη στιγμή που τα έχεις δηλώσει στο .cvsrc δεν χρειάζονται, αν 
και γενικότερα το να τα χρησιμοποιείς (ξανά) στο command line, απλώς θα 
έλεγα ότι κάνει την εντολή που εκτελείς πιο "ξεκάθαρη". Δηλαδή ότι 
ανεξάρτητα του τί έχεις στο ~/.cvsrc, βρέξει χιονίσει τα -PAd -r θα 
χρησιμοποιηθούν.

> ΕΡΩΤΗΣΗ 3: εδω μου κάνει κατεβάζει κάποια νέα αρχεία, μου ανανεώνει
> κάποια άλλα ΚΑΙ ΣΒΗΝΕΙ ΚΑΠΟΙΑ ΑΛΛΑ; (μου λέει π.χ πως το ταδε αρχειο
> δεν υπάρχει πια στο cvs repocitory - δε πιστεύω να πρέπει να τα σβήσω
> εγώ...)

Θα σβηστούν αυτόματα. Οι άδειοι κατάλογοι επίσης θα αφαιρεθούν αυτόματα 
λόγω της επιλογής -P που χρησιμοποιείς κατά το cvs update

> Εγω χρειαζεται να κάνω κάτι άλλο; κάνω κάτι λάθος;

(με μία μόνο επιφύλαξη κυρίως λόγω περασμένου της ώρας ;), η διαδικασία 
μου φαίνεται οκ.

> διότι τις 9 στις 10 φορές αυτό με το οποίο κατέληγα δεν γινόταν
> compile. Και άντε αν πρόκειται για μια τυχαία μέρα που μου σηκώθηκε
> να κατεβάσω cvs, αλλά όχι και για stable ή και beta releases που θα
> έπρεπε τουλάχιστον αυτές να γίνονται compile. Και εδω είναι που
> υποψιάζομαι οτι κάνω εγώ κάτι λάθος.

Το θέμα είναι πως πρέπει να δούμε τί είδους λάθος έβγαλε στο compile και 
αν το cvs τυχόν παραπονέθηκε για conflicts ώστε να συμπεράνει κάποιος 
αν το cvs update έγινε επιτυχώς ή όχι.

Πάντως, πρόκειται για cvs version. Μην το ξεχνάς. Αν π.χ. δεν έκανες 
grab την stable release, δεν αποκλείεται όντως να είναι κάτι broken 
στον κώδικα και να μην κάνει compile.

Επίσης, υποπτεύομαι και κάτι άλλο: συνήθως τα cvs source releases 
περιέχουν ειδικά makefiles (π.χ. Makefile.cvs ή πρέπει να τρέξεις 
./autoconfig) όπου πρώτα κάνεις τα βήματα για να δημιουργηθεί το 
configure από τα autoconf και automake. Θα πρέπει να ξανακάνεις αυτή τη 
διαδικασία κάθε φορά που κάνεις update το repository.

> Αυτό γιατί κατεβάζοντας το koffice-1.3-beta2 το οποίο ονομάσαν
> koffice-1.2.91 βλέπω καταρχήν μια διαφορά ~4ων MB (περισσότερα στο
> δικό μου bz2 package από το cvs) 

Αυτό μπορεί να οφείλεται σε binaries ή object files που έχουν ξεμείνει 
μετά το compile.

> ΕΡΩΤΗΣΗ 4: το TAG που θα το ξέρω εγώ κάθε φορά; Δεν κατάλαβα ποια
> εντολή πρέπει να δίνω...

Για να δείς τί tags/branches υπάρχουν σε ένα repository, δωσε την 
εντολή:

export CVSROOT=mpla mpla (το κατάλληλο)
cvs status -v

Θα σου επιστρέψει στο output το status για κάθε αρχείο του repository!
π.χ. κάπως έτσι:

=============================================
File: uc.c            Status: Up-to-date

   Working revision:    1.1.1.1
   Repository revision: 1.1.1.1 /var/cvs/services/projects/uc.c,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        start                           (revision: 1.1.1.1)
        website                         (branch: 1.1.1)

 Για κάθε αρχείο, υπάρχει το πεδίο Existing Tags.
Π.χ. όταν το κάνεις εσύ αυτό για το koffice, θα πρέπει στο existing tags 
να εμφανιστεί το "KOFFICE_1_3_BETA2"

Τώρα, για να μη σου φέρει το cvs το status για όλα τα αρχεία, μπορείς να 
τρέξεις την εντολή για ένα συγκεκριμένο αρχείο:
π.χ:

$ cvs status -v backend.c
(βάλε όπου backend.c ένα υπαρκτό αρχείο από το koffice)


> Ελπίζω να μην έγινα πολύ κουραστικός.... :-)

Μπά, όχι ιδιαίτερα :)
Απλώς, όλες οι απορίες που έχεις (ακόμα και αυτές που δεν συμπεριέλαβες 
στο e-mail ;) θα σου λυθούν αν κοιτάξεις και 5 πράγματα στο manual του 
cvs. Όχι στο man page, στο manual: http://www.cvshome.org/docs/manual/

Eίναι αρκετά αναλυτικό και πλήρες για όλες τις λειτουργίες που μπορεί 
κάποιος να κάνει με το cvs. Και καλό guide είναι και καλό reference :)


-- 
Kyritsis Athanasios <djart at hellug.gr>

- What's your ONE purpose in life ?
- To explode, of course! ;-)




More information about the Linux-greek-users mailing list