Mercurial: извлечение изменений из удаленного репозитория без публичной фазы (не публикуемый сервер, "abort: невозможно перебазировать неизменяемый набор изменений")
Фон
У Mercurial теперь есть Фазы, которые являются отличным механизмом, чтобы удержать людей от изменения истории, которые не должны быть изменены. Когда набор изменений передается в удаленный репозиторий, это делается public
и больше не может быть rebased
, Обычно это хорошо, если хранилище общедоступно и вы не хотите, чтобы другие изменяли ваши наборы изменений.
Однако, если у вас есть собственный временный репозиторий для обмена draft
Изменения только с самим собой, это может стать очень раздражающим. У Mercurial есть возможность отключить это. Добавление этого к .hg/hgrc
файл удаленного хранилища.
[phases]
publish = False
Это предотвратит перемещение наборов изменений, отправленных в удаленный репозиторий, из draft
фаза к public
фаза (как локальная ревизия, так и та, которую только что перенесли в удаленный репозиторий. Однако, потянув эту ревизию вниз, она всегда будет опускаться в public
фаза.
Вопрос
Я надеюсь снести наборы изменений в draft
фаза. Я просто хочу отправить набор изменений на свой персональный сервер, а затем развернуть его дома. После того, как я потяну это, я буду rebase
мой временный коммит поверх любых коммитов, которые я снял с нашего настоящего сервера публикации.
Любой способ избежать автоматического перемещения вытянутой ревизии в public
было бы замечательно. Этот удаленный репозиторий является для меня полным и полным сервером черновиков. Будучи вынужденным вручную переместить наборы изменений обратно в draft
после неудачного rebase
Попытка действительно начинает изнашивать нервы.
Рекомендации
2 ответа
Я получил это разрешение с помощью помощи на Bugzilla. Вот фрагмент моего последнего поста (спасибо, что поставили меня на правильный путь, DJ).
Похоже, мы можем объяснить это ошибкой пользователя / ошибочными тестами (конечно). Если есть кто-то виноват (кроме меня), это может быть TortoiseHg. Мои тестовые случаи состояли из извлечения коммитов из одного из двух репозиториев, а затем изменения фазы этого коммита в другом репозитории и повторной отправки / извлечения. Кажется, что TortoiseHg иногда тянет не в ту фазу (возможно, проблема с кэшированием). Я все еще могу воспроизвести это, когда я переключаю свой сервер назад и вперед между публикацией и отсутствием публикации (но не совсем так, как раньше).
Однако выполнение команды командной строки, кажется, заставляет ее работать каждый раз. Я использовал командную строку, чтобы проверить исходящие / входящие, сделать изменения фазы и тому подобное, но, возможно, никогда не использовал его для фактической тяги.
Извините, что тратить время всех. Я решил, что это недействительно, не уверен, что кто-то хочет изменить его на лучшую категорию. Дайте мне знать, если вы хотите, чтобы я проверил или уточнил что-нибудь еще.
Я буду редактировать в любых обновлениях, дайте мне знать, если у кого-то все еще есть проблемы с этим.
Это похоже на ошибку. Какую версию Mercurial вы используете? Вы пытались зарегистрировать ошибку на https://bz.mercurial-scm.org/?