“bzr отменяют фиксацию” эквивалентный в Подвижном?

Попробуйте - очень полезно

%{--Use BlogService--}%


  • ${title}

См. Это

Также это не рекомендуемая вещь, вы всегда можете использовать taglib

12
задан Martin Geisler 26 January 2012 в 09:12
поделиться

5 ответов

Maybe hg backout tip? I recommend http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html for all details about hg backout, how it differs from hg revert, and many related topics, but if I undestand what uncommit does, it does seem exactly equivalent to hg backout tip.

Edit: in a comment you've now clarified you want to "delete history" -- that's hard (unless you're VERY fast on the draw, maybe;-)... per the red-bean book again:

Since Mercurial treats history as accumulative—every change builds on top of all changes that preceded it—you generally can't just make disastrous changes disappear. The one exception is when you've just committed a change, and it hasn't been pushed or pulled into another repository. That's when you can safely use the hg rollback command

So if you just want to try to "make it disappear" (and you're lucky enough that it hasn't yet been pushed or pulled elsewhere), then hg rollback may be a better approach!

8
ответ дан 2 December 2019 в 04:53
поделиться

Разве "hg revert" этого не делает?

0
ответ дан 2 December 2019 в 04:53
поделиться

Читая комментарии, кажется, что вам нужен способ просто удалить запись фиксации без отмены изменений в файле. В Mercurial нет автоматизированного способа сделать это. hg revert максимально приближен к вам.

Однако вы можете сделать это с помощью пары ручных шагов. Когда вы вызываете hg revert , его поведение по умолчанию заключается в том, чтобы взять файлы из набора изменений, которые вы восстанавливаете, и переименовать их как filename.ext.orig , где ext - исходное расширение файла. Затем возвращенные версии принимают исходное имя файла. Итак, что вы можете сделать, это запустить hg revert , удалить файлы с исходными именами и удалить .orig из имен файлов резервных копий. Затем повторите фиксацию с исправленным сообщением журнала. Просто не делайте этого с какой-либо ревизией, кроме подсказки, потому что вы, вероятно, получите много измененных файлов и забудете, какие из них принадлежали к какому набору изменений.

Я также не рекомендую делать это, если вы уже отправили изменения в удаленное репо. Делайте это только в том случае, если все по-прежнему локально.

Дайте мне знать, если вам нужны дополнительные объяснения. Мне приходилось делать это время от времени, поэтому я знаком с процессом.

Дайте мне знать, если вам нужны дальнейшие объяснения. Мне приходилось делать это время от времени, поэтому я знаком с процессом.

Дайте мне знать, если вам нужны дальнейшие объяснения. Мне приходилось делать это время от времени, поэтому я знаком с процессом.

0
ответ дан 2 December 2019 в 04:53
поделиться

Вам нужна команда hg rollback , но см. Ниже, если вы используете Mercurial 2.2 или новее.

Команда отката удалит последнюю транзакцию из вашего репозитория. Фиксация - это транзакция, поэтому вы можете использовать ее как

% hg commit -m 'My elaburate bugfix.' foo.c foo.h
% hg rollback
% hg commit -m 'My elaborate bugfix.' foo.c foo.h

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

Осторожно: hg rollback более мощный, чем простая функция «uncommit», и вы можете использовать ее, чтобы выбросить работу , если вы не будете осторожны. Чтобы выбросить фиксацию do

$ hg commit -m 'My big and very difficult bugfix'
$ hg pull --update
$ hg rollback

Теперь вы потеряли последнюю сделанную фиксацию, и поскольку вы обновили рабочую копию до некоторой другой ревизии, изменения в этой фиксации пропали . Таким образом, вы должны использовать hg rollback для отмены фиксации, только если вы уверены, что hg commit действительно была последней командой, которая работала с рабочей копией.

Кроме того, если вы не указали сообщение о фиксации в командной строке, то вы не можете просто дважды нажать стрелку вверх, чтобы повторить фиксацию после отката. Однако Mercurial 1.5 и более поздние версии сохранят ваше последнее сообщение о фиксации в .hg / last-message.txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый --amend флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

убедитесь, что hg commit действительно была последней командой, которая работала с рабочей копией.

Кроме того, если вы не указали сообщение о фиксации в командной строке, вы не можете просто дважды нажать стрелку вверх чтобы повторить фиксацию после отката. Однако Mercurial 1.5 и более поздние версии сохранят ваше последнее сообщение о фиксации в .hg / last-message.txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый --amend флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

убедитесь, что hg commit действительно была последней командой, которая работала с рабочей копией.

Кроме того, если вы не указали сообщение о фиксации в командной строке, вы не можете просто дважды нажать стрелку вверх чтобы повторить фиксацию после отката. Однако Mercurial 1.5 и более поздние версии сохранят ваше последнее сообщение о фиксации в .hg / last-message.txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый --amend флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

если вы не указали сообщение о фиксации в командной строке, вы не можете просто дважды нажать стрелку вверх, чтобы повторить фиксацию после отката. Однако Mercurial 1.5 и более поздние версии сохранят ваше последнее сообщение о фиксации в .hg / last-message.txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый --amend флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

если вы не указали сообщение о фиксации в командной строке, вы не можете просто дважды нажать стрелку вверх, чтобы повторить фиксацию после отката. Однако Mercurial 1.5 и более поздние версии сохранят ваше последнее сообщение о фиксации в .hg / last-message.txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый --amend флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый - исправьте флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

txt , чтобы вы всегда могли найти его снова после отката.

Mercurial 2.2 имеет новый - исправьте флаг для hg commit . Это позволит вам внести в последний коммит новые изменения. Он просто включает изменения, перечисленные в hg status , в родительский коммит, как если бы вы откатились и снова зафиксировали.

23
ответ дан 2 December 2019 в 04:53
поделиться

Существует также команда "hg strip" из расширения "mq". Это почти точный эквивалент команды "bzr uncommit". Однако, будьте осторожны, если вы переместили свой ошибочный коммит ранее в другой репозиторий, он будет воссоздан с ближайшим извлечением из него.

0
ответ дан 2 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: