git svn dcommit без перезагрузки

Наша компания использует (и поддерживает!) SVN, но я предпочитаю использовать git. Что я хочу попробовать, так это иметь репозиторий git - по одному на проект, разработчики проектов смогут извлекать из этого репозитория (и, конечно, извлекать друг от друга, если они захотят). Но я все равно хочу подтолкнуть все изменения в SVN, потому что SVN поддерживается нашей техподдержкой.

Я тестировал сценарий со следующими репозиториями:

  1. SVN-репозиторий - этот репозиторий поддерживается нашей компанией, и наша команда должна в какой-то момент отправить туда все изменения
  2. git-svn-clone - это репозиторий git, клонированный из SVN, описанного выше - все разработчики проекта должны отправлять свои коммиты здесь
  3. git-dev-clone - это репозиторий git разработчика.

Единственная проблема с прямым использованием git svn rebase и git svn dcommit, которую я заметил, заключается в том, что после каждого нажатия на git разработчика репозиторий в репозиторий git-svn-clone Я должен перебазировать репозиторий разработчика, как только изменения будут распространены на SVN и перебазированы. Чего я хочу добиться, так это избегать перебазирования после каждого нажатия.

Обратите внимание: я предполагаю, что каждый разработчик проекта будет использовать только репозиторий git, и никто не будет использовать SVN напрямую.

Мне удалось добиться этого поведения вручную, проверяя каждую фиксацию git один за другим в репозитории 'git-svn-clone' после отправки и фиксируя эти изменения в SVN с помощью клиента SVN. Я считаю, что 'git svn dcommit' делает то же самое, но он также синхронизируется с SVN и изменяет идентификаторы SHA фиксации, что вынуждает меня перебазировать.

PS: - опция no-rebase для git svn dcommit не помог, поскольку после первого коммита, распространенного на SVN , git svn dcommit не позволял мне вносить больше изменений в SVN, пока предыдущий не был перебазирован. Однажды я пробовал такое поведение и, наверное, мог что-то пропустить.

6
задан Eric 10 May 2013 в 08:08
поделиться