Я плохо знаком с Подвижным. Просто не может найти правильную команду. Испытанное обновление/контроль без удачи. Я использую локальный репозиторий.Спасибо
Я думаю, что вы хотите HG Revert -R
(это изменит этот файл, чтобы быть таким, как оно было по данной ревизии).
Как сказал DJC Revert
изменяет файл на месте, чтобы соответствовать предыдущему пересмотру. Если вы хотите его не на месте, вы можете использовать HG CAT -R REVISTIDID FILENAME
(подстановка RevisionId и filename конечно), который выводят файл на STDOUT, подходящий для перенаправления любого места.
HG Revert
действительно решает эту проблему. Но я думаю, что вы смущены более широким кругом вещей, чем просто ответ на ваш вопрос и хотите попытаться ответить более полно.
HG Update
- это целая команда репозитория и не будет работать на отдельных файлах. Это в отличие от Subversion Обновление SVN
таким образом. Если вы сделаете Update HG --help
Вы можете увидеть, что это так, потому что команда не принимает аргумент файла. Его можно использовать для перемещения всего репозитория на определенный снимок, но не может быть использован для этого только с одним файлом.
Если вы напечатаете HG --help
Вы видите список команд. Это довольно большой и несколько сложный список, но если вы прочитаете его, вы найдете эту строку:
revert restore individual files or directories to an earlier state
Теперь, если вы просто хотите, чтобы последнее состояние для сравнения, есть другая команда, которую вы можете заинтересовать, и Это HG Cat
. Это позволит вам распечатать содержимое файла при любой конкретной ревизии. Затем вы можете перенаправить его вывод в какой-то другой файл. Тогда вы можете получить предыдущую известную хорошую версию вашего файла и старую версию для сравнения бок о бок.
Причина, по которой Mercurial имеет отдельное Обновление
Команда , заключается в том, что можно что-то сделать в Mercurial, что невозможно в Subversion. Вы можете обновление
на более раннюю версию, внесите изменения, затем совершать. Это создаст ветку. Команда UPDATE
имеет эффект также изменения родительского пересмотра текущего рабочего каталога, а также изменения содержимого всех файлов в этом каталоге к версиям ревизии родителей.
Это означает REVERT
изменяет содержимое файла (или даже всего репозитория, если вы дадите команду правильные аргументы), но оставляет родительскую версию текущей рабочей копии то же самое.
Вы можете узнать родительскую ревизию (или ревизии в случае слияния) текущей рабочей копии с помощью команды HG Rooms
.
В ревизиях Subversion являются строго линейной прогрессией. Mercurial создает ветви на капле шляпы, и они почти так же легко сливаться. Изменения формируют даг, а не строго линейную прогрессию.