Введение в Mercurial
Я только начал работать над проектом, который использует Mercurial в качестве системы контроля версий, и мне нужны некоторые основные советы о том, как это использовать. Пожалуйста, используйте этот вопрос, чтобы дать несколько вводных советов по этой технологии.
В частности, я ищу советы по лучшим программам для использования и лучшим методам использования (ветки, в и из-проверки и т.д. Мне нужно узнать лучшие практики!)
Ответы
Ответ 1
Я знаю, что у вас уже есть сайт Mercurial, но самым полезным для меня ресурсом была Mercurial book. Это отличный обзор программы и способы ее использования.
Я нашел лучший способ узнать, что Mercurial - это просто использовать его в проекте. Я импортировал в Mercurial проект, который я экспортировал из подрывной деятельности, и сделал с ним регулярную разработку. Я постарался клонировать репозиторий для разных наборов изменений, чтобы я мог привыкнуть к слиянию и обновлению. Я не изучил все передовые технологии, но теперь я нахожусь на довольно прочной основе и еще не вернулся в Subversion.
Многие проекты имеют разные методы для выполнения рабочего процесса. У некоторых есть изменения, выдвинутые разработчиками, например, централизованные системы, а некоторые из них будут извлекать изменения от участников (например, Linux). Трудно слишком обобщать, не зная процесса вашего проекта.
Вот как я делаю свое развитие:
- Централизованное дерево в общей папке или http, называемое
project-trunk
или project
, которая является окончательной версией проекта
- Чистое дерево в моей системе, которое я клонировал из удаленного репозитория и использую для возврата в репозиторий. Затем я клонирую это дерево для своих изменений. Я называю это дерево
project-local
- Клонировать дерево
project-local
для каждого из моих изменений: например. project-addusers
, project-141
и т.д.
- После того, как я закончил с фиксацией для дерева, я затем перетаскиваю изменения в репозиторий
project-local
- Наконец, нажмите изменения в
project-local
на project-trunk
У меня есть чистое дерево project-local
, потому что тогда я могу одновременно переместить все изменения в тубус, что полезно, если есть группа связанных изменений, которые нужно отбросить вместе.
Что касается инструментов, это зависит от вашей платформы. Я просто использую инструмент командной строки vanilla. Исходя из TortoiseSVN, было немного изменений, чтобы перейти в командную строку. Но теперь я в порядке. Я попытался использовать TortoiseHg, но он не работал хорошо на моей виртуальной машине Windows 7 x64. Я слышу это намного лучше на поддерживаемых 32-битных платформах.
Ответ 2
Вот полезный учебник о Mercurial, написанный Joel Spolsky.
Он охватывает основное использование и команды, а также то, как работать с Mercurial на более концептуальном уровне. Если вы уже знакомы с SVN, то первая часть, безусловно, стоит прочитать: в ней рассказывается о главных концептуальных различиях между SVN и Mercurial, потому что попытка использовать Mercurial так же, как вы используете SVN, требует неприятностей.
Ответ 3
Посмотрите Mercurial book или на Учебник по Mercurial.
Ответ 4
Если вы используете последний TortoiseHG клиент и включаете каталог установки в свою среду PATH, вы сможете использовать как хороший графический интерфейс, который они предоставляют, и командную строку 'hg'
Я не могу слишком много использовать расширения mq. Они создают отличную среду "рабочего хранилища".
Я использую очереди для управления локальными изменениями в репозитории subversion. Я выполняю свои локальные краткосрочные изменения и использую mercurial для синхронизации с подрывной деятельностью и остальной частью команды.
Ответ 5
В зависимости от вашего фона с другими инструментами управления версиями, я бы также предложил конкретный SCM-что-нибудь для руководства Mercurial. Например, посмотрите это руководство для пользователей Subversion.
Еще один хороший ресурс для вашей головы вокруг всей "распределенной" идеи управления версиями: http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/... с полезными диаграммами
Ответ 6
Несколько сообщений в блоге Steve Losh хороши, хотя им уже пару лет. В основном они касаются того, как работать с ветвлением.
Также стоит посмотреть его hgtip.com сайт.
Ответ 7
В дополнение к учебнику Mercurial Book и Hg Init, я хотел бы упомянуть руководство, основанное на примерах, которое я написал:
Он показывает, как начать работу с Mercurial, а также охватывает некоторые более продвинутые концепции, такие как названные ветки и hgsubversion. Я использовал его при обучении Mercurial новым пользователям, и им, похоже, понравилось.