несколько репозиториев исходного кода - PullRequest
6 голосов
/ 22 февраля 2012

Я использую Mercurial для контроля версий моего исходного кода. Но некоторые люди предпочитают другие системы контроля версий (такие как git, Bazaar, SVN, CVS).

Я хотел бы знать, возможно ли хранить хранилище под несколькими системами одновременно, чтобы люди могли использовать любое хранилище, какое захотят?

Ответы [ 5 ]

4 голосов
/ 22 февраля 2012

возможно ли хранить хранилище под несколькими системами одновременно

Я думаю ответ - нет , так как репозиторий имеет определенный формат, связанный с приложением.

Лучше всего сделать это, чтобы разрешил другому разработчику использовать клиентское приложение, соответствующее их потребностям , если оно совместимо с вашим рабочим процессом.

Пример: у вас уже есть репозиторий SVN и еще один репозиторий Git. Как разработчик, я хотел бы использовать только BZR. Я могу использовать плагин bzr-svn или bzr-git для ответвления от SVN или Git, выполнить локальную фиксацию с помощью BZR (и воспользоваться функциями BZR), а затем отправить результат обратно в SVN или Git.

4 голосов
/ 22 февраля 2012

GitHub разработал расширение hg-git для Mercurial. Это расширение позволяет вам клонировать из репозиториев git с помощью Mercurial, а затем отправить обратно. Поэтому, если вы не возражаете против наличия центрального репозитория git, то, безусловно, будет возможно получить к нему доступ как с помощью git, так и mercurial.

Хотя в другом ответе указано, что большинство упомянутых вами инструментов VCS довольно похожи на использование, поэтому сомнительно, стоит ли прилагать усилия, чтобы позволить людям использовать все, что они хотят, по сравнению с минимальными затратами. в изучении новой системы.

3 голосов
/ 22 февраля 2012

Я не знаю о Mercurial, но с AccuRev возможно сохранить ваш исходный код в AccuRev и Git.Плагин Kando заботится о репликации из AccuRev в Git и наоборот.Для более подробной информации посмотрите на http://www.accurev.com/kando

2 голосов
/ 22 февраля 2012

Не легко - вам придется поддерживать синхронизацию каждого из них с помощью множества сценариев ловушек и событий. Например, можно извлечь из Subversion, сделать hg init в этой папке и временно поработать с помощью Mercurial, а затем в конечном итоге зафиксировать Subversion, когда вы будете довольны (гарантируя, что вы не добавляете и не делаете коммит и .hg файлов). Также, в зависимости от количества разработчиков, вы можете столкнуться со всевозможными проблемами с конфликтами из-за слияний, если два разработчика фиксируют один и тот же файл в разных системах контроля версий.

Поскольку Subversion (и CVS) являются централизованными системами управления версиями, а git, bazaar и mercurial распределены, для их синхронизации потребуется выбор мастер-копии для каждой.

Все упомянутые вами инструменты VCS довольно похожи в командной строке (хотя CVS действительно больше не следует использовать), поэтому кривая обучения для других пользователей не особо крутая.

1 голос
/ 23 февраля 2012

Зависит от того, легко ли выбрать и использовать инструменты преобразования например мерзавец: Официально поддерживается git-svn, он встроен в версию Windows и легко устанавливается в debian / ubuntu с помощью пакетов deb

рт.ст.:
https://www.mercurial -scm.org / вики / WorkingWithSubversion
https://www.mercurial -scm.org / вики / RepositoryConversion # Subversion со многими типами преобразователей на выбор, и многие из них требуют некоторой настройки

BZR:
bzr-svn встроен в версию Windows и официально поддерживается
Подробности здесь: http://wiki.bazaar.canonical.com/ForeignBranches/Subversion

...