Να πάρει τον αριθμό ανατροπή αποθετήριο σε κώδικα

ψήφοι
39

Θα ήθελα να εφαρμόσουν έναν τρόπο καταγραφής της έκδοσης του έργου στον κωδικό, έτσι ώστε να μπορεί να χρησιμοποιηθεί κατά τη δοκιμή και να βοηθήσει σφάλματα κομμάτι. Φαίνεται ότι ο καλύτερος αριθμό έκδοσης να χρησιμοποιήσετε μόνο θα είναι ο σημερινός αριθμός αναθεώρησης από την ανατροπή. Είναι ένας εύκολος τρόπος για να συνδέσετε τον αριθμό αυτό σε μια (C ++ στη δική μου περίπτωση) αρχείο κεφαλίδας ή κάτι, το οποίο στη συνέχεια μπορώ να πάρω σε το κωδικό εκεί; Υποθέτω ότι αυτό είναι μια θέση διαπράξει γάντζο ή κάτι άλλο;

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

Δημοσιεύθηκε 19/08/2008 στις 13:19
χρήστη
Σε άλλες γλώσσες...                            


6 απαντήσεις

ψήφοι
4

Μπορείτε να χρησιμοποιήσετε την svn:keywordsιδιότητα να ενεργοποιήσετε τη Revλέξη-κλειδί.

Στη συνέχεια, μπορείτε να χρησιμοποιήσετε $Rev$τον κωδικό σας και SVN θα επεκταθεί αυτόματα κατά την ενημέρωση για $Rev: 256 $τα οποία μπορούν στη συνέχεια να αναλύσει ...

Περισσότερες πληροφορίες σχετικά με το εγχειρίδιο Subversion

Απαντήθηκε 19/08/2008 στις 13:26
πηγή χρήστη

ψήφοι
27

Δύο τρόποι:

Ενσωματώστε $ Id $ ή $ Αναθεώρηση $ μέσα στον κώδικα. Τότε που svn: λέξεις-κλειδιά = «Id Αναθεώρηση» ιδιοκτησίας στο αρχείο. Αυτό θα σας δώσει την τροποποιήθηκε τελευταία αναθεώρηση του εν λόγω αρχείου προέλευσης. Καλό για μικρότερα έργα και σενάρια.

Εναλλακτικά, χρησιμοποιήστε ένα Makefile οδηγείται διαδικασία και το εργαλείο svnversion γραμμής εντολών. (Γλώσσα συγκεκριμένες - αυτό θα πρέπει να εργαστεί για την C / C ++)

echo -n "#define VERSION 1.0.1-" > version.h
svnversion -n . >> version.h

Ή κάποια πιο πολύπλοκη κατασκευή σενάριο με sed και version.h.in. Στη συνέχεια, μόλις #include version.h

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

Σημείωση: Θα χρησιμοποιηθεί επίσης ένα αναγνώσιμο από τον άνθρωπο κορδόνι έκδοση που έχω με το χέρι ενημέρωση. Το παράδειγμα θα δώσει: Έκδοση: 1.0.1-r13445

~ J

Απαντήθηκε 19/08/2008 στις 13:30
πηγή χρήστη

ψήφοι
14

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

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

Wikipedia το κάνει αυτό στη σελίδα τους εκδοχή για να δείξει την αναθεώρηση του λογισμικού που τρέχει ζωντανά? ο κώδικας είναι εδώ - αναζητήστε το getSvnRevision () μέθοδο.

Απαντήθηκε 30/08/2008 στις 03:23
πηγή χρήστη

ψήφοι
13

Μπορείτε επίσης να χρησιμοποιήσετε SubWCRev η οποία αποτελεί μέρος της TortoiseSVN.

SubWCRev είναι το πρόγραμμα της κονσόλας των Windows που μπορεί να χρησιμοποιηθεί για να διαβάσετε την ιδιότητα του Subversion αντίγραφο εργασίας και, προαιρετικά, να εκτελέσει υποκατάστασης λέξη-κλειδί σε ένα αρχείο προτύπου. Αυτό χρησιμοποιείται συχνά ως μέρος της διαδικασίας κατασκευής ως μέσο για την ενσωμάτωση πληροφοριών αντίγραφο εργασίας στο αντικείμενο χτίζετε. Συνήθως μπορεί να χρησιμοποιηθεί για να συμπεριλάβετε τον αριθμό αναθεώρησης σε «Σχετικά» κουτί.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

Απαντήθηκε 09/10/2008 στις 09:16
πηγή χρήστη

ψήφοι
6

στο Makefile σας, προσθέστε:

SVNDEV := -D'SVN_REV="$(shell svnversion -n .)"'
CFLAGS := $(SVNDEV) ...

τότε μπορείτε να χρησιμοποιήσετε μακρο SVN_REVοπουδήποτε στον κώδικά σας, όπως:

printf ("Version: SVN %s\n", SVN_REV);
Απαντήθηκε 10/05/2013 στις 23:51
πηγή χρήστη

ψήφοι
0

Μια καλή up-to-ημερομηνία λύσης:

Δημιουργήστε μια Makefileπου περιέχει την ακόλουθη γραμμή (στον ίδιο φάκελο YourFile.dox):

sed "s~RevNumber~$(shell svnversion ../)~g" YourFile.dox > YourFileDummy.dox; doxygen YourFileDummy.dox

Και YourFile.doxθα πρέπει να περιέχει το εξής:

...
PROJECT_NUMBER         = "Revision RevNumber"
...

Τώρα:

  1. sedαντικαθιστά RevNumberτο .dox με την έξοδο του svnversion(που εκτελούνται στο κεντρικό φάκελο του αποθετηρίου σας) και να αποθηκεύει το τροποποιημένο αρχείο ναYourFileDummy.dox
  2. doxygenεκτελείται για YourFileDummy.doxνα δημιουργήσει την τεκμηρίωση
  3. τεκμηρίωση σας θα περιέχει πλέον τον αριθμό αναθεώρησης!
Απαντήθηκε 18/04/2017 στις 08:26
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more