merging with hg(1)
Giorgos Keramidas
keramida at ceid.upatras.gr
Wed Jan 23 01:26:09 EET 2008
On 2008-01-22 20:53, Manolis Kiagias <sonicy at otenet.gr> wrote:
> Giorgos Keramidas wrote:
>> [ancestor] --> [keramida]
>> \
>> `---> [manolis]
>>
>> Τότε το merge κάνει αυτόματα 'resolve', θεωρώντας ότι το να είναι ίδια
>> τα αρχεία στο [keramida] και [manolis] είναι αρκετά καλή ένδειξη ότι δεν
>> χρειάζεται να γίνει merge τίποτα, π.χ.:
>
> Ενδιαφέρον. Αν το κατάλαβα καλά, εννοείς ότι αν εγώ και εσύ κάνουμε
> την ίδια αλλαγή στο ίδιο αρχείο ο καθένας στο δικό του (διαφορετικό)
> changeset, τότε το επόμενο merge θα γίνει αυτόματα, αφού ουσιαστικά
> πρόκειται για το ίδιο περιεχόμενο και δεν χρειάζεται να γίνει resolve
> με το χέρι.
Ναι.
> Κάτι που μπορεί να συμβεί άμα διορθώνουμε π.χ. τα tags στην αρχή. Τώρα
> μέσα στο ίδιο το κείμενο πόσο πιθανό είναι αυτό; Θα κάνω μερικές
> δοκιμές με αυτό στο mercurial/testing να δω πως πάει.
Σε random text είναι λίγο απίθανο. Είναι ένα σενάριο που μπορεί να
γίνει όμως αν εσύ κάνεις τις αλλαγές 3 και 4 παρακάτω:
[1]----[2]----[3]----[4]
στο μεταξύ εγώ κάνω τις αλλαγές [5] και [6]:
[1]----[2]----[5]----[6]
ύστερα κάνω pull από σένα, και accept όλες τις δικές σου αλλαγές στα
αρχεία 'foo' και 'bar':
[1]----[2]----[3]----[4]----[7]
\ /
`---[5]----[6]---'
Εσύ στο μεταξύ κάνεις άλλες άσχετες αλλαγές σε άλλα αρχεία, και κάνεις
pull & merge από μένα:
.---[8]
/
[1]----[2]----[3]----[4]----[7]
\ /
`---[5]----[6]---'
Κάνοντας "hg up -C 8" και "hg merge" το hg-merge script θα προσπαθήσει
να κάνει 'merge' το περιεχόμενο από το 'foo' και 'bar', αλλά βλέποντας
ότι τα contents στα changesets [7] και [8] είναι ακριβώς τα ίδια, για τα
συγκεκριμένα αρχεία δε θα ανοίξει καν editor :)
More information about the Freebsd-doc-el
mailing list