Intereting Posts
Mercurial – отказ от свободных концов .gitignore не работает в github для mac-программы Как вы отслеживаете счет сборки вашей библиотеки, когда несколько авторов используют контроль версий? Управление конфигурационными файлами пользователей на нескольких компьютерах Tortoise SVN – Первый раз, когда был применен Java-метод Как может репозиторий SVN стать коррумпированным? На базаре, как мне изменить цель по умолчанию для «bzr push»? Возможно ли сохранить файл в SVN, который не может быть замечен другими пользователями Разверните ветвь на главном Могу ли я копировать репозиторий SVN между машинами, используя точную копию файла? Как экспортировать проблемы из проекта Google Code в Github? Поддержание релизов / филиалов в «подвижном» ритме? Как я могу запретить доступ к моему репозитарию subversion Конфигурация конфигурации приложения git-svn умер от сигнала 10 на OSX

Является ли клонирование рекомендуемым способом ветвления в Mercurial или нет?

В этой статье автор говорит:

Я был наивным, чтобы думать, что ветви, живущие в совершенно разных каталогах, ушли в прошлое. Как SVN из них. Я не могу себе представить, как я живу своей жизнью, создавая местные клоны, чтобы эффективно справляться с длинными ветвями. Книга буквально говорит:

«В большинстве случаев выделение филиалов в хранилищах является правильным подходом».

Хм, нет, спасибо. Оказывается, чем больше я попадаю в ветвящиеся вещи, тем больше я понимаю, почему они выступают за то, что вы клонируете к ветке. Все на одном треке – вы не можете что-то совершить, а затем легко оставить его там для работы позже и игнорировать его пока, для чего я использую главным образом ветви. Это как Mercurial – однодорожечный микшер …

и так далее.

В другом источнике, для которого я не могу найти ссылку сейчас, я читал, что разработчики Mercurial используют клонирование для ветвления.
Для меня странно, что в Mercurial, где ветвление является «первоклассной» концепцией, ветви могут быть созданы только путем совершения изменений без заголовка – клонирование линейного репозитория является основным способом ветвления.
Это правда? Или, вероятно, это было правдой в па? Какую историю имеет эта проблема?

п.с.
Я вспомнил, где заметил слова о том, что Hg devs используют клонирование – это популярная статья Стива Лоша :

Мне лично не нравится этот метод и я не использую его. Другие делают, хотя, так что хорошо это понимать (Mercurial сам использует эту модель).

Solutions Collecting From Web of "Является ли клонирование рекомендуемым способом ветвления в Mercurial или нет?"

Статья, на которую вы ссылаетесь, была написана в 2008 году, это 5 лет назад, и тогда это было неточно. Статья Стива, на которую вы ссылаетесь:

http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

намного лучше, и, хотя он был написан в 2009 году, он регулярно обновлялся. Это ясно показывает, что Mercurial может создавать ветви git-стиля (он называет их «закладками») или клонирует как ветви или названные ветви (которых нет) или анонимные ветви (которых нет git).

Разработчики Mercurial сами используют различные типы для различных целей, как описано здесь: https://www.mercurial-scm.org/wiki/StandardBranching

Что примерно сводится к:

  • названные ветви для stable и release
  • закладки (git-style) для отдельных функций
  • клоны для разных групп доступа (экипаж против ретрансляции мата)

Краткий ответ : Нет.

Длинный ответ : клонирование удобно, когда вам вообще не нужны ветки. Подобно работе над быстрым патчем, исправлению ошибок в нескольких документах и ​​т. Д. Клонирование – это интуитивно понятное и быстрое выполнение, не требует, чтобы вы читали книгу или помните о том, в какой отрасли вы работаете. Этот подход освобождает один слот в вашем мозгу, записывая имя ветви в качестве текущего рабочего каталога.

Итак, для простых случаев вам не нужны ветви (вы все равно будете создавать anonymous ветвь в вашем клоне, которую рано или поздно нужно будет объединить в основную строку, но никто не заботится).

Клонирование – хорошая точка входа , и скоро вы будете готовы к передовым концепциям. Но по моему опыту с ~ 50 репозиториями на Bitbucket я почти ничего не помню с помощью ветвей, хотя все знают, что ветви удобны для обслуживания и исправления ошибок стабильных версий, проверенных временем.

Поэтому вам нужно выяснить себя, если вам нужна передовая стратегия ветвления для вашего проекта, и единственная рекомендация, которую я могу предоставить, – это прочитать презентацию DVCS (с Mercurial) Дэвидом Вегой, в которой содержатся фотографии стоимостью тысячи слов.

Я теперь читаю книгу Брайана О'Салливана Mercurial, которая цитируется в этой статье о GitHub и наткнулась на эту фразу:

В большинстве случаев выделение филиалов в хранилищах является правильным подходом.

Автор GitHub просто вырезал его из контекста – в книге он не имеет значения, что «клонирование – это меркурийный способ ветвления», Салливан просто говорит, что:

Его простота позволяет легко понять; и поэтому трудно ошибаться.

(для новичков, как я понял), и в следующем параграфе он начинает описывать более продвинутые методы ветвления:

Если вы больше в категории «power user» (и ваши соавторы тоже), есть альтернативный способ обработки филиалов, которые вы можете рассмотреть.

Кстати, глава, где происходит эта фраза, называется «Управление выпуском и разветвленной разработкой » .

Таким образом, очевидно, что фраза в книге Mercurial-book ничего не значит из интерпретации Чакона в его статье о GitHub. Чакон просто неверен.