Могу ли я использовать git repos внутри svn repos

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

Мне бы хотелось:

  • Поддерживать проект клиента со всем кодом в subversion
  • Любой dev добавляет плагины/модули из любого удаленного/github-репо в проект
  • Любой разработчик сможет вытащить изменения, внесенные в репозитории github, и добавить их в проект svn repo (по проекту по проектам, а не сразу)
  • Уметь создавать специфические настройки проекта для кода, выведенного из репозиториев github, которые нельзя отбросить в github или повлиять на возможность переноса изменений из github
  • Devs с необходимыми ключами ssh может вызывать локальные изменения в коде github до github, поэтому любые исправления ошибок или новые функции, которые могут принести пользу всем проектам, использующим модуль plugin/module, также могут вывести их.

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

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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