2015-03-19 3 views
0

Я добавил некоторые отладочные материалы в существующий рабочий код и сделал mq-патч. (Отладочный материал на самом деле разбивает приложение, но мне нужно его отлаживать добавленные функции, поэтому я хочу, чтобы один блок отвечал за изменения, патч был бы в порядке.) Затем я изменил работу кода, и теперь я хочу совершить то, что я сделал. Идея заключается в фиксации изменений, но не в отладке.Mercurial Queues: не может зафиксировать и не может qpop

Но это не сработало:

$ hg ci 
abort: cannot commit over an applied mq patch 
$ hg qpop 
abort: local changes found, refresh first 
$ hg qseries 
debug-stuff 
$ hg qapplied 
debug-stuff 

Как временно исключить его изменения отладки и совершить полезные изменения? (Тогда мне нужно будет повторно применить изменения отладки и продолжить развитие.)

ответ

0
  1. "рт.ст. Shelve", чтобы сохранить неизрасходованную работу
  2. qpop патч
  3. "рт.ст. unshelve", чтобы восстановить функцию

, то вы можете совершить эту функцию.

+0

Да, это сработало. Недостатком является то, что Ubuntu Precise использует hg 2.0.2 (и встроенная полка начинается с 2,8), поэтому нужно клонировать старый источник полки, как предлагается на http://mercurial.selenic.com/wiki/ThirdPartyShelveExtension и проверить совместимую версию. Просто включение полки не сработало, причина, описанная в http://stackoverflow.com/questions/22031147/hg-shelve-installed-but-hg-unknown-command-unshelve – 18446744073709551615

+0

Вы можете получить более новое репо за 3.01, используя ppa из [здесь] (https://launchpad.net/~mercurial-ppa/+archive/ubuntu/releases). Также черепаха из [здесь] (https://launchpad.net/~tortoisehg-ppa/+archive/ubuntu/releases). –

0
$ hg qnew -f a-lot 
$ hg qpop -a 
// manually editing .hg/patches/series to swap the two patches 
$ hg qpush 

и теперь у меня есть изменения как мэк патч, в то время как я хочу их совершать.

$ hg qapplied 
a-lot 
$ hg qfinish a-lot 
patch a-lot finalized without changeset message 
$ hg qapplied 
$ 

В настоящее время журнал «hg log» показывает изменения как совершенные.

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

+0

FYI: после 'hg qpop -a' вы можете' hg qpush a-lot -move' вместо редактирования файла серии, а затем просто 'hg qfinish a-lot' it. – Edward