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