Vra

Verbeel jou hierdie scenario:

  1. Alice en Bob beide klone 'n sentrale meester Mercurial repository, met 1 tekslêer
  2. Beide Alice en Bob maak 'n verandering aan dieselfde lyn in die lêer, en verbind
  3. Bob stoot om die sentrale bewaarplek, maar nie Alice
  4. Alice trek nou in haar repository, sien sy het nou twee koppe, en versmelt
  5. Sedert die merge is 'n konflik, besluit sy die konflik
  6. Alice pleeg dan maar nie druk
  7. Bob maak nou verdere veranderinge aan die lêer, in 'n ander plek van die lêer (dws. Nêrens naby die aanvanklike veranderinge) en verbind, en stoot
  8. Alice, in haar saamgesmelt lêer, doen 'n soortgelyke verandering in die dieselfde plek Bob net verander, en verbind
  9. Alice trek, en die ontdekking van nog 'n dubbele-headed repository, paart sy

Hier is 'n ander siening van die bogenoemde scenario

(die getalle na "VERANDER" beteken dat die persoon verander "gedeelte X" van die lêer. As beide gebruikers dieselfde gedeelte verander, ons het 'n merge konflik voor, as hulle verskillende verander, nie so veel)

    Alice                    Bob
    CLONE MASTER             CLONE MASTER
    -----------------------------------------
    CHANGE 1                               <-----+
    COMMIT                                       +-- upcoming merge conflict
    -----------------------------------------    |
                             CHANGE 1      <-----+
                             COMMIT
                             PUSH
    -----------------------------------------
    PULL                                   <-- Bob's change +1 head
    MERGE                                  <-- Attempt to get rid of extra head
    RESOLVE CONFLICT                       <-- Resolve merge conflict
    COMMIT
    -----------------------------------------
                             CHANGE 2      <-----+
                             COMMIT              +-- yet another merge
                             PUSH                |   conflict ahead
    -----------------------------------------    |
    CHANGE 2                               <-----+
    COMMIT
    PULL                                   <-- Bob's change, again +1 head
    MERGE                                  <-- Attempt to get rid of extra head
    RESOLVE ???

Op hierdie punt, my vraag is:

  • Sal die samesmelting gereedskap neem haar eerste merge resolusie in ag? Sedert Bob nooit in veranderinge Alice se trek, sy kopie is nog niet van enige van die veranderinge Alice gemaak het, haar aanvanklike verandering (wat in stryd is met Bob se), haar merge, en haar jongste verandering, wat in stryd is met die nuutste verandering Bob se .

As ek net Bob se weergawe van die lêer, en Alice se weergawe van die lêer geneem het, en aan enige merge-program, het dit sou vlag beide veranderinge as in konflik.

Met ander woorde, sal die konflik instrument probeer om Alice vra om beide die oorspronklike konflik en die nuwe een, of net die nuutste een los?

Ek vermoed ( Ek het nie hierdie toets deurstaan ??het, nog 'n poging om 'n soort van toets script te bou om hierdie probleem toets) wat Mercurial net sal vra Alice na die jongste konflik op te los.

Wat gebeur as ek instel Mercurial om 'n 3de party diff / saamsmelt program gebruik? Sal dit steeds van toepassing? Byvoorbeeld, het ek my installasie die twee lêers ingestel om te gebruik Beyond Vergelyk , sal (Bob is met net sy veranderinge en Alice se met haar veranderinge + die merge resolusie) gegee word, met of sonder die aanvanklike besluit teenwoordig? Met ander woorde, as die gebruik van Beyond Vergelyk , sal die korrekte ding te gebeur hier (die veronderstelling dat dit nie glad nie.)

Was dit nuttig?

Oplossing

Mercurial sal slegs vereis dat die nuutste botsing opgelos, en wat sal werk fyn met eksterne verandering tools.

Wanneer Alice doen haar tweede merge, sy samesmelting haar eie vorige merge met nuwe delta bob se en net wat verandering behoeftes opnuut om opgeneem te word.

Baie duidelike diagram, BTW. Dankie

Ander wenke

Dit is net gaan Alice vra om die nuutste konflik verander.

Die rede hiervoor is soos volg:

Sy het reeds VERANDER 1 van BOB dit in haar geskiedenis so dit sal nie probeer om dit kode weer verander. Dit werk.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top