Ось шпаргалка з командами:
hg update
змінює батьківську версію робочої копії, а також змінює вміст файлу відповідно до цієї нової батьківської версії. Це означає, що нові оновлення виконуватимуться після оновлення, до якого ви оновите.
hg revert
змінює лише вміст файлу і залишає версію батьківської версії робочої копії самостійно. Зазвичай ви використовуєте, hg revert
коли вирішите, що не хочете зберігати незаконні зміни, внесені до файлу, у своїй робочій копії.
hg branch
починає нову названу гілку. Подумайте про названу гілку як мітку, яку ви присвоюєте наборам змін. Тож якщо ви це зробите hg branch red
, то наступні набори змін будуть позначені як належні на "червоній" гілці. Це може бути приємним способом організації наборів змін, особливо коли різні люди працюють у різних галузях, і ви згодом хочете побачити, звідки походить набір змін. Але ви не хочете використовувати його у своїй ситуації.
Якщо ви використовуєте hg update --rev 38
, то набори змін 39–45 залишаться як глухий кут - звисаюча голова, як ми це називаємо. Ви отримаєте попередження при натисканні, оскільки ви будете створювати "кілька головок" у сховищі, до якого ви натискаєте. Попередження є, оскільки це неначебно залишати такі голови навколо, оскільки вони припускають, що комусь потрібно зробити злиття. Але у вашому випадку ви можете просто йти вперед, і hg push --force
оскільки ви дійсно хочете залишити його висячим.
Якщо ви ще не натиснули редакцію 39-45 десь в іншому місці, тоді ви можете залишити їх приватними. Це дуже просто: з hg clone --rev 38 foo foo-38
вами ви отримаєте новий локальний клон, який містить лише до редакції 38. Ви можете продовжувати працювати foo-38
і висувати нові (хороші) набори змін, які ви створюєте. Ви все одно матимете старі (погані) зміни у своєму foo
клоні. (Ви можете перейменовувати клони, як тільки захочете, наприклад, foo
в foo-bad
і foo-38
до foo
.)
Нарешті, ви також можете скористатися, hg revert --all --rev 38
а потім здійснити фіксацію. Це створить версію 46, яка буде схожа на версію 38. Потім ви продовжите роботу з версією 46. Цей бажання створити вилку в історії таким же явним чином, як hg update
і ви, але з іншого боку, ви не отримаєте скарги на наявність кілька головок. Я б використовував, hg revert
якби співпрацював з іншими, хто вже зробив власну роботу на основі перегляду 45. В іншому випадку hg update
більш чітко.