Используя mercurial, могу ли я отправить только одну ревизию со всем содержимым? (Push and Collapse) - PullRequest
2 голосов
/ 18 ноября 2011

Я пишу проект с открытым исходным кодом, я выполнил всю работу на своем компьютере, и теперь я хочу отправить проект на Codeplex.com, но я не хочу отправлять всю старую историю.

Можно ли отправить все файлы за одну ревизию в Codeplex и продолжить мою историю локально? Что-то вроде толчка и краха

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Нет - DVCS полагается на тот факт, что вы синхронизируете всю историю между участниками в наборе распространения.

Если вы хотите избавиться от истории, прежде чем перейти к Codeplex, вы можете сделать следующее:

  • Клонируйте свой локальный репозиторий до ревизии, прежде чем историю, которую вы хотите "удалить" Мы назовем клон "Хранилище B".
  • Обновите репозиторий А до подсказки, которую вы хотите применить. Соберите изменения и скопируйте файлы в свой клонированный репозиторий B. Вы можете добавить пакет или патч, но для краткости здесь я просто расскажу о быстром и грязном:)
  • В репозитории B зафиксируйте один набор изменений со всеми этими изменениями.
  • С этого момента хранилище B является вашим хозяином. Переместите это в Codeplex.

Как видите, у вас не может быть исторических данных наборов изменений для одного клона, который участвует в синхронизации с другим, но прежде чем вы перейдете в Codeplex, вы можете объединить все эти изменения в один коммит - до тех пор, пока вы тоже можете потерять историю на местном уровне.

Альтернативой является использование Mercurial Queues для "сворачивания" истории, но это необходимо сделать перед тем, как вы перейдете в Codeplex - проверьте на этой вики-странице для получения дополнительной информации.

1 голос
/ 18 ноября 2011

Проверьте CollapseExtension .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...