Это, возможно, необычно, таким образом позвольте мне задать тон:
У нас есть SVN repo содержащий нашу историю проекта - встроенная система на основе Linux. SVN repo содержит ядро Linux, подводную лодку, busybox и т.д. источники и все наши внутренние приложения, файловая система и такой.
Ядро Linux, которое мы имеем, старо и твердо, и я работаю над портированием на магистраль, которая находится в процессе активного развития для нашей платформы (платформ). Я делаю работу стороны ядра при мерзавце и торгую патчами с "Сообществом".
Я мог получить вещи работа и взять снимок источников ядра и вывести ее в SVN, но я хотел бы сохранить способность получить обновления, иметь локальные ответвления и управлять патчами с мерзавцем. Я мог сохранить две копии ядра, один управляемый каждым SCM, но это будет немного грязно. Существуют также риски разработки и тестирования источников ядра использования, управляемых при мерзавце и упущении поместить те изменения в SVN, приводящий к поврежденным версиям SVN, где источники неядра вне синхронизации.
Миграция всего проекта мерзавцу не является опцией. Управление просто источником ядра с мерзавцем и наличие набора сценариев связующего звена и сохраненных хешей в SVN возможны, но более хорошо иметь объединенную историю / diffing способность от SVN для целого проекта.
То, что я рассматриваю, пытается управлять источниками ядра и под SVN и под мерзавцем одновременно в том же каталоге.
Как ядро dev я главным образом использовал бы мерзавца и сделал бы фиксацию SVN для внутреннего пользования, когда вещи выглядят хорошими. Для других внутренних пользователей они смогли бы получить все, последовательные источники с одним контролем SVN, видеть объединенную историю, и они могли внести изменения в источники ядра под SVN. Позже я или другой использующий мерзавца человек можем обновление SVN тех изменений и передавать их мерзавцу как соответствующих.
Некоторый funning вокруг того, чтобы заставлять мерзавца проигнорировать .svn файлы и наоборот должен будет быть сделан. Также я не совсем уверен, как можно было бы взять простой контроль SVN и сказал бы мерзавцу начинать управлять поддеревом ядра также, но я уверен, что у мерзавца есть некоторые неясные опции швейцарского ножа сделать это.
Таким образом, это - моя идея du подмастерье. Это означает, что большинство коллег не должно волноваться о мерзавце, и мы можем бесшумно проигнорировать мерзавца и ветвление далеко позже по мере необходимости.
Вопрос здесь действительно, кто-либо сделал что-то вроде этого, как он удавался, или какие альтернативные решения Вы предлагали?
Я делаю это регулярно, и это отлично работает.
Единственное, что мне нужно было сделать, это добавить папку .git в список игнорирования subversion, а папки .svn/ - в файл .gitignore.