Могу ли я использовать git-репозитории внутри SVN-репозиториев? - PullRequest
11 голосов
/ 28 января 2010

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

То, что я хотел бы сделать, это:

  1. Ведение клиентского проекта со всем кодом в Subversion
  2. Любой разработчик добавляет плагины / модули из любого удаленного репозитория / github в проект
  3. Любой разработчик сможет извлекать изменения, сделанные в репозиториях github, и добавлять их в репозиторий svn проекта (для каждого отдельного проекта, а не для всех сразу)
  4. Уметь вносить в проект определенные изменения в коде, извлеченном из репозиториев github, которые не должны быть перенесены обратно в github, или влиять на возможность извлечения изменений из github
  5. Разработчики с необходимыми ключами ssh могут перемещать локальные изменения в коде на github обратно в github, поэтому любые исправления ошибок или новые функции, которые будут полезны для всех проектов, использующих плагин / модуль, также могут их разрушать.

Возможно ли это? Если да, то как?

Могу ли я сделать это с помощью комбинации:

  1. Вендор разветвляется в репозиториях svn с поставщиком для каждого из внешних репозиториев github, чтобы сохранить разделение кода многократного использования на github и откорректированного кода для проекта.
  2. фиксация папки .git в ветке vendor в репозитории svn, чтобы кто-нибудь мог получить последние изменения.

Ответы [ 3 ]

10 голосов
/ 08 апреля 2010

Довольно забавно, github добавил поддержку Subversion как шутку, не связанную с апрелем. Другими словами, он выглядел как первоапрельская шутка, но полностью функционален!

Вы можете добавить git-репозиторий как svn: externals, используя Subversion URL http://github.com/USER/PROJECT.

2 голосов
/ 28 января 2010

Не должно быть проблем с объединением репозиториев .git и .svn так, как вы предлагаете.

Я рекомендую добавлять .svn в файл .gitignore для каждого git-репо, используемого таким образом.

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

2 голосов
/ 28 января 2010

Я считаю, что большая часть того, о чем вы просите, возможна с помощью git-svn (http://git.or.cz/course/svn.html), который позволяет вам размещать git поверх subversion. Вы можете вернуться в хранилище svn, когда почувствуете это хорошо провести время и между тем, как использовать git обычным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...