У нас есть команда (Team A) из 10+ участников, они часто меняют код и фиксируют SVN.
Другая команда (команда Б) использует GIT (Azure DevOps).
Нам нужно отправлять изменения исходного кода (из SVN) в определенный момент времени (например, один раз в месяц) в GIT.
Вариант использования: если релиз выполнен командой А в JAN и отправлен исходный код в GIT. В FEB мы должны передать разницу исходного кода между версиями JAN и FEB в GIT.
Мы хотим, чтобы команда А работала над SVN, а команда Б — над GIT.
Как это может быть достигнуто бесшовным способом?
Должно быть довольно просто делать то, что вы хотите:
Повторяйте эти шаги в любое время, когда вы хотите сделать последний снимок SVN и зафиксировать его в Git (например, один раз в месяц, как вы предложили).
Что касается необязательных шагов: вам, вероятно, нужно выполнить либо шаг 2, либо шаг 4, но, возможно, не оба. Если вы когда-нибудь намереваетесь собрать в репозитории Git что-либо, полученное из репозитория SVN, то вам, вероятно, все равно захочется выполнить шаг 4. Цель здесь состоит в том, чтобы после копирования/вставки на шаге 3 вы могли слепо зафиксировать все изменения на шаге 5 без ручной подготовки подмножества.
Примечание: относительно этого предложения вашего вопроса:
In FEB, we should push difference of source code between JAN and FEB release to GIT.
SVN (и большинство инструментов управления исходным кодом) хранит изменения или различия за кулисами, однако Git работает по-другому. Git хранит снимки всего репо в каждом коммите, и за кулисами он сравнивает, чтобы выяснить, как эффективно хранить эти снимки. Это на самом деле не влияет на ответ, но это важная концепция для понимания. Git вычисляет различия на лету при сравнении коммитов, чтобы показать вам, что изменилось между ними.
Дополнительное примечание: есть инструменты для преобразования SVN в Git, которые сохранят историю, если это вас интересует, вместо ежемесячных снимков состояния.