Intereting Posts
Как восстановить svn-свойства в соответствии с новой конфигурацией SVN? Может ли Maven загружаться из разных репозиториев (SVN) за одно исполнение? Исходное управление не работает в Xcode 8 Системы управления распределенной версией объединяют сведения о простоте Eclipse не запрашивает проект Maven Как достичь .svn-папки только в корне? Удаление папки Subversion с клиента и сервера Какие команды вы используете для обновления среды разработки с помощью Mercurial? Сделать git pull -rebase сохранить слияние Есть ли система управления версиями, которая позволяет отслеживать изменения имени файла? Как вручную запускать / запускать скрипты из .gitlab-ci для тестирования? Как правильно использовать NuGet с развитием команды? Как просмотреть diff файла в TortoiseSVN? как различать и «возвращать -a» добавленные файлы? SVN-файлы на удаленном обновленном, но не являющемся частью репо

Одновременно управлять одним проектом в разных системах 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.