обновит от mercurial перезаписать мои изменения? - PullRequest
6 голосов
/ 03 декабря 2011

Я использую команду hg для обновления проекта из репозитория (mercurial repository).

hg pull
hg update

Проблема в том, что из моего последнего обновления я модифицировал некоторые файлы для себя. Теперь проблема обновления из репозитория перезапишет мои изменения. Как я могу предотвратить это?

1 Ответ

10 голосов
/ 03 декабря 2011

hg pull просто извлекает новую историю, поэтому не влияет на незафиксированные изменения.

hg update обновится до подсказки, но незафиксированные изменения объединятся с новым родителем.

Вы ничего не потеряете, хотя ваш инструмент слияния может работать, если в слиянии есть конфликты.

Обратите внимание, однако, что hg update -C, будет "чисто" обновлять подсказку, выбрасывая незафиксированные модификации.

Пример

Создать простую базу данных с двумя изменениями. Первый набор изменений (0) состоит из двух строк. Второй набор изменений (1) имеет четыре строки.

C:\>md example
C:\>cd example
C:\example>hg init
C:\example>echo Line1 >file.txt
C:\example>echo Line2 >>file.txt
C:\example>hg ci -Am "first checkin"
adding file.txt
C:\example>echo Line3 >>file.txt
C:\example>echo Line4 >>file.txt
C:\example>hg ci -Am "2nd checkin"

Обновление до первого (более раннего) набора изменений с двумя строками.

C:\example>hg update 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
C:\example>type file.txt
Line1
Line2

Внести изменения в файл, добавив еще одну строку. hg st показывает, что изменение было внесено, но оно еще не было зафиксировано с hg ci.

C:\example>echo Line5 >>file.txt
C:\example>hg st
M file.txt

Теперь обновите до новой ревизии. В этом случае инструмент слияния откроется, потому что «Line5» конфликтует с «Line3» в этом новом наборе изменений. Я разрешил объединение и сохранил.

C:\example>hg update
merging file.txt
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
C:\example>type file.txt
Line1
Line2
Line3
Line4
Line5

Ничего не потеряно!

Также ознакомьтесь с Mercurial: полное руководство и другие Руководства для начинающих .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...