Есть ли причины не использовать несколько систем контроля версий?

9

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

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

Есть ли какая-то причина, по которой я не могу использовать mercurial для своего собственного локального репозитория, но перенести все это в GIT и размещенные в Mercurial репозитории? Или, скорее, есть веская причина не делать этого, я уверен, что это возможно.

Джон Стори
источник
2
Единственный способ увидеть, что работа - это если одна всегда является авторской копией, а другая всегда генерируется из первой. Таким образом, нет никакой путаницы.
Йоахим Зауэр
Спасибо, вот о чем я думал - Гит был бы просто рабом Mercurial. Mercurial используется для меня как обычно, а затем переходит от Mercurial к Git, чтобы позволить пользователям Git получить доступ к моей ветке (без наворотов)
Jon Story

Ответы:

8

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

Джеймс Маклеод
источник
Одна всегда будет авторитетной копией - в данном случае Mercurial, поскольку я использую ее для отслеживания изменений, работы с несколькими исправлениями и т. Д. Git будет просто ведомым, копией Mercurial-репозитория, чтобы позволить членам сообщество, которое знакомо с Git, но не с Mercurial, чтобы получить копию моей ветки. Людям, которые интересуются отдельными патчами, очевидно, придется использовать Mercurial, но я стараюсь не выходить за рамки соглашений проекта, упрощая себе жизнь.
Джон Стори
Спасибо за ответ. Это было не совсем по этой причине (я также решил, что предпочитаю GIT и могу жить без ртутных очередей), но ваш ответ заставил меня осознать, что избыточность бессмысленна, если ее можно избежать, что в данном случае возможно.
Джон Стори
2

В настоящее время я делаю это, используя git и svn. Хотя есть причины не делать этого, нет общего правила. Git может делать то, что svn не может, я привык к этим функциям, поэтому мой рабочий процесс, следовательно, увеличивается производительность, когда я могу использовать git. Глядя на плюсы и минусы в моей ситуации, было бы глупо не использовать оба. Вы должны смотреть на свою ситуацию так же. (кстати, единственные минусы для меня - запуск одного маленького скрипта для синхронизации git с svn)

Стейн
источник
1

Вы можете хранить свои патчи в Git отдельно: делайте каждый из них в отдельной ветке, а затем объединяйте их выборочно по желанию.

Марнен Лайбоу-Козер
источник