Nothing tastes like the original
Christos Ricudis
ricudis at paiko.net
Sun Mar 25 16:33:45 EEST 2012
On 03/25/2012 04:00 PM, Thanasis wrote:
>> http://penicuik.lala.gr/~ricudis/software/Mosaic/
>>
>> Και μην ξεχνατε την εκπληκτικη μας προσφορα: Στους πρωτους 10 που θα το
>> κατεβασουν, ΔΩΡΟ ενα account στο geocities με ΑΚΡΙΒΩΣ ΜΗΔΕΝ ΕΥΡΩ!
>>
>>
>>
> Πώς βάζουμε τα patches (diffs);
>
Οπως οπουδηποτε αλλου (απανταω γιατι αυτο ειναι χρησιμη πληροφορια για
οσους μπορει να μην ξερουν).
Συνηθως, η διαδικασια του diff γινεται καπως ετσι :
diff -ruN dirA dirB
οπου dirA το original source tree, και το dirB το source tree με τις
αλλαγες που θελεις να τις περασεις σε patch.
Το diff αρχειο που παραγεται, εχει τα αναλογα pathnames embedded :
...
...
diff -ruN dirA/koko/lala.c dirB/koko/lala.c
--- dirA/koko/lala.c 1996-07-18 10:49:26.000000000 +0300
+++ dirB/koko/lala.c 2012-03-24 18:02:23.059747200 +0200
@@ -54,6 +54,7 @@
mpla
mpla
mpla
+kati ti tou leipei, ti tou leipei ti tou leipei
mpla
mpla
mpla
...
...
Το θεμα εδω ειναι οτι πρεπει να προσεξεις ωστε η patch να καταφερει να
βρει τα αρχεια στα οποια θελει να κανει apply το diff.
Αν πας να περασεις το patch με τον προφανη τροπο (patch < file.diff),
κανει strip ολα τα pathnames, και ψαχνει το lala.c στο current working
directory, πραγμα που συνηθως αποτυγχανει οικτρα.
Αυτο το αναλαμβανει η παραμετρος -pX οπου X ο αριθμος των pathname
components που θα κανει strip απο την αρχη ψαχνοντας να βρει τα αρχεια.
Ειναι απο τις περιπτωσεις στο unix που η default συμπεριφορα ενος
utility ειναι εντελως ηλιθια, και πρεπει να του δωσεις μια μυστηρια
παραμετρο για να παιξει.
Ετσι, αν κανουμε patch -p0 < file.diff, θα ψαξει να βρει το
dirA/koko/lala.c ενω αν κανουμε patch -p1 < file.diff θα ψαξει να βρει
το koko/lala.c.
Συνηθως το σωστο ειναι το patch -p0 < file.diff. Μερικες φορες ομως
προκυπτουν προβληματακια του ειδους "το original dirA δεν ταιριαζει
μ'αυτο που εχουμε εμεις", οποτε μπαινουμε μεσα στο dirA μας και κανουμε
patch -p1 < file.diff.
(Οποτε μετα μας γκρινιαζει στην περιπτωση που το patch θελει να
δημιουργησει καινουρια αρχεια ΚΑΤΩ απο την ιεραρχια στην οποια
βρισκομαστε (π.χ. ενα dirC/), κτλ κτλ)
More information about the Linux-greek-users
mailing list