Intereting Posts
Удаление больших файлов из истории / полное удаление истории локально, а затем перетаскивание ее в исходное положение Развертывание и управление файлами FTP для приложений PHP Переход между разработкой и производством в Mercurial Как выровнять версию кода с помощью git с неверсированным кодом? SVN изменить имя пользователя Mercurial не распознает новую папку в репозитории Инструмент GUI для управления администрированием SVN Какая система SCM для Xcode? Проверить diff на файл на сервере Как нажимать конкретную фиксацию ветви на другую ветвь после того, как многие фиксации уже сделаны на обеих ветвях Приложение Seachable для управления версиями / версиями и репозиторий / библиотека кода для очень маленьких проектов Добавление всех файлов в папку, которые не были добавлены в subversion? Переход с SVN на git Каковы преимущества использования Perforce вместо Subversion? Tortoise Subversion – отменить обновление

Одновременно управлять одним проектом в разных системах SCM

В настоящее время у меня есть проект, организованный на частном реестре Git, которым я управляю с использованием sourcetree. Недавно я решил сотрудничать с группой друзей по этому проекту. Однако они предпочитают Mercurial & SVN для Git, и я предпочел бы иметь отдельные хранилища Mercurial & SVN, созданные с моим проектом, чтобы они могли сотрудничать при сохранении моего собственного репозитория Git. Мне было интересно, можно ли сделать следующее через Sourcetree или любой другой метод:

  1. У вас есть одна папка проекта на моей рабочей системе, которая отслеживает мои проекты на всех трех серверах репо (Git / Mercurial / SVN) одновременно?

  2. Если возможно 1, могу ли я выборочно вытащить изменения из любой системы управления версиями, а также выборочно нажать на них изменения?

Я использую Sourcetree на Mac. Я наткнулся на статью пользователя, который делает это для отдельных репозиториев на github и bitbucket, но я не могу вспомнить ссылку для обмена здесь. Я надеюсь найти хороший способ сделать это, чтобы упростить управление кодом. Простите меня, если такой вопрос здесь не принадлежит, мода может закрыть это. Любая помощь приветствуется 🙂

Solutions Collecting From Web of "Одновременно управлять одним проектом в разных системах SCM"

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

Бесплатный рабочий каталог для вас (все – Git-centric) является более управляемым и менее хаотичным решением:

  • просто добавьте один дополнительный пульт для каждого «чужого» репозитория – «Mercurial-source» и «SVN-source»;
  • вытащить «другие» репозитории, нажать «собственный»,

SVN-link может поддерживаться git-svn, Mercurial-link (со стороны Git) с помощью «Mercurial bridge»

Фактически, напрямую используя git-репозиторий, hg может получить к нему доступ с помощью расширения hg-git. Но если вы намерены поддерживать два репозитория, я думаю, что это тоже возможно.

Действительно, в папке он может иметь .hg папку для mercurial, .git папку для git, если вы имеете в виду это. На самом деле hg и git различают рабочий каталог и репозиторий, поэтому в этой папке могут храниться разные хранилища.

По второму вопросу, я думаю, вам нужно настроить некоторые крючки как в hg, так и в git, и позволить им общаться через hg-git расширение hg, когда push происходит в любой системе. Насколько я знаю, это расширение работает хорошо.

Но для SVN все по-другому. Хотя hg и git имеют расширения svn (hgsubversion и git-svn; расширение здесь – общая идея, не специфичная для hg-подобного расширения), системы DVCS будут легко ветвиться и что вызывает сопоставление с svn немного сложным.

Таким образом, я думаю, что hg и git-хранилища в одной папке возможны с помощью расширения hg-git и перехватчиков, и не совсем уверены в svn.