2010-05-06 2 views
16

Наша команда только начинает работать с Mercurial. Одна из первых вещей, с которой мы начали играть, - hg shelve. На местном уровне у меня нет проблем с заменой стеллажей. Все это отлично работает, что я могу сказать. Однако, когда я пытаюсь отключить, я получаю сообщение restoring backup files, но когда я запустил hg diff, изменений нет, и мои изменения отсутствуют в коде. Если я делаю hg unshelve -i, я вижу diff, но опять же, попытка unhelve, похоже, не имеет никакого эффекта.hg unshelve не работает

Я пытался проверить его с помощью очень простых изменений, которые не должны быть проблемой с точки зрения конфликтов, например. добавление тестового комментария. Я должен отметить, что я пробовал hg unshelve -f, после чего он говорит unshelve completed, но опять же мои изменения не восстанавливаются.

Любые идеи, что я делаю неправильно?

Если это имеет значение: Mercurial Распределенная SCM (версия 1.5.1 + 20100405)

+1

Только что нашел это: https://bitbucket.org/tksoh/hgshelve/issue/11/unshelve-is-not-restoring-file-changes Soooo, hg unhelve только что сломан? Правильно ли это? – shanebonham

+2

Стоит упомянуть, что 'hg shelve' не является частью mercurial, это чужое стороннее расширение. Я подозреваю, что одна из причин, почему «полка» не является частью ртути, заключается в том, что она действительно не подходит для меркурийного мышления. Меркуриальный способ выхода на полку - либо просто зафиксировать, либо затем обновить до одной ревизии или быстро клонировать ваше репо. Клон мгновен, занимает почти нет места (жесткие ссылки на современные файловые системы) и не имеет ваших незафиксированных изменений. Даже если ваша команда в конечном итоге использует полки, вы должны начать их с ванильного ртути, чтобы они изучали идиому. –

+5

Также стоит упомянуть, что Брайан О'Салливан является одним из авторов hgshelve и основным разработчиком Mercurial, поэтому это не просто случайное стороннее расширение. Во что бы то ни стало сначала научитесь без излишеств, но не препятствуйте людям использовать Mercurial, но это удобно для них. –

ответ

7

Пробовал, что вилка и она работает: https://bitbucket.org/astiob/hgshelve/

Таким образом, ответ, кажется, да, он сломан, и да , этот fork исправляет это.

+1

Вилка «astiob» была втянута в магистраль «tksoh». У меня все еще есть проблемы, используя Mecurial 1.7.1. – jwhitlock

+0

Эта вилка также не работает для меня, но комментарий Ника работал: 'hg shelve -i | patch -p1' – Pascal

0

Как обновление, я в настоящее время на версии Mercurial Distributed SCM (version 2.9.1) и не имеет проблем. Если у вас все еще возникают проблемы с unhelve, я рекомендую обновить до последней версии Mercurial.

Смежные вопросы