Здравствуйте, alexzz, Вы писали:
A>Допустим, у Маши с Петей отсутствует фантазия. Маша закоммитила, поставила синхронизируемую закладку, запушила. Петя закоммитил у себя и поставил закладку с таким же именем. Попробовал её синхронизировать, но оказалось, что закладка с таким именем уже есть. Петя переименовал свою закладку, и они жили долго и счастливо.
Вроде я понял чего тебе не понятно. hg имеет жуткое cvcs наследие, которым жестоко коцают мозги юзеров. Ты видишь только два репозитория, притом один из них более главный, или ещё "центральный сервер". А в dvcs — репозиториев потенциально бесконечно и они все равноправны. Маша и Петя это могут быть две БОЛЬШИЕ команды. И закладка команды ПЕТЯ уже разползлась в 1000 реп, закладка команды МАША в 2000 реп. И вот теперь приходит тут такая МАША и указывает ПЕТЕ что он у себя всё везде обязан поменять, т.к. МАША так хочет, как думаешь, куда пошлёт её ПЕТЯ?
A>>>Могут под свои задачи именованные ветки завести, если захотят или потребуется зачем-то. A>·>Ветки же уже заведены — с именем "experiment". Надо будет кому-то из них ветку переименовывать, переписывая историю. А от этой истории уже могут другие зависимости существовать... A>В худшем случае, если Маша с Петей две недели пахали локально в ветках с одинаковым названием, успели наделать много-много ревизий, даже успели засветить где-то на стороне хеши этих ревизий, а потом одновременно запушили на сервер, так что ни у кого из них не было шанса заранее узнать о совпадении имён ― ну, значит, пока будет две ветки "experiment". Хоть три. Можно их сразу закрыть и продолжить с новыми внятными названиями. Можно повесить закладки. Можно оставить как есть.
Это называется ripple effect — где-то небольшая проблема и все вокруг везде должны всё менять, вместо того, чтобы сделать локальное согласование только в точке взаимодействия.
A>Я толком не пользовался Гитом и не могу прочувствовать проблему совпадения имён.
Ты похоже, просто толком мне пользовался dvcs. Это не проблема git, это проблема распределённой разработки.
A>>>Маша и Петя спокойно обошлись без именованных веток, без bookmarks, без тэгов, вообще без всего. A>·>Т.к. при совпадении имён веток, Маша может вытянуть ветку Пети под другим именем, скажем, назвать её в своём репозитории как petya_dev. По смыслу — ветки dev у Пети и у Маши — независимые истории. A>Вот на самом деле зачем Маше Петина ветка под другим именем? По смыслу это одна ветка, у который есть своё имя (если есть). С чего его вдруг менять?
Чтобы их легко различать по имени, а не по неким косвенным признакам.
A>>>·> Почему их нужно насильно сталкивать лишь по тому, что у них случайно совпали имена — хз. A>>>Я думаю, слово "нужно" неверно. Устраивает базовый функционал анонимных веток? Пользуешься им. Испытываешь неудобства? Можешь использовать закладки и/или именованные ветки. A>·>Как выяснилось выше — не могу, проблему они не решают. A>Чем больше перечитываю, тем больше не понимаю, о чём речь. Что конкретно ты не можешь? Hg ругается на совпадение имён, виснет, теряет данные или не даёт коммитить, пушить и т.д.? Ему пофиг.
Ему пофиг на человеков: люди умные — захотят, разберутся.
A>·>Вот. Уже внезапно стало три анонимные ветки, различать их стало ещё сложнее. A>Там всё было подписано.
Т.е. если и Маша, и Петя удосужатся всё аккуратно подписывать и они чётко договорятся как именно подписывать, то возможно разберутся.
A>·>Та же проблема, имена закладок глобальны, да ещё и пушатся без спросу — думай тщательно каждый раз когда даёшь название. A>Можно тщательно думать, давая имена. Можно не думать, давая имена. Можно не давать имена. Имена не на что не влияют.
Они влияют на конфликты.
A>Я так понял из разговоров, что Гит заставляет давать каждой головной ревизии уникальные в пределах репозитория имена.
Нет, гит _сам_ добавляет префикс к имени. Хотя не обязательно, можно и без имён обойтись Например, дефолтным именем FETCH_HEAD
A>Но поскольку головных ревизий бывает много, а слов в языке мало, то названия совершенно разных веток в разных репозиториях периодически совпадают. И тогда чтобы влить в один репозиторий изменения из другого, иногда приходится чужие ветки у себя переименовывать. И тогда в разных репозиториях совершенно разные ветки могут называться одинаково, а одна и та же ветка может называться по-разному. Отсюда, наверное, такая любовь и ненависть к именам?
Они совадают потому что репозитории разные и независимые, потенциально — без какого либо централизованного контроля, distributed vcs однако.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай