Взгляните на SubGit .
SubGit - это решение на стороне сервера, оно обеспечивает доступ Subversion к репозиторию Git и наоборот.Вы можете обратиться к документация для получения более подробной информации, но в целом это довольно просто использовать SubGit :
SubGit требуется локальный доступ к репозиторию Git, к которому вы обращаетесь,Создайте репозиторий Subversion на том же компьютере:
$ svnadmin create $SVN_REPOS
, затем выполните
$ subgit configure $SVN_REPOS
Эта команда создает файл $SVN_REPOS/conf/subgit.conf
, настройте его параметр git.default.repository
следующим образом:
[git "default"]
repository = /path/to/your/git/repository.git
Вы можете указать много репозиториев Git, синхронизируемых с одним репозиторием Subversion, просто добавьте необходимые [git "identifier"]
секции.
Вы также можете указать произвольный макет репозитория, например, стандартный выглядит так:
trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
Вы также можете настроить $SVN_REPOS/conf/authors.txt
для сопоставления имен авторов SVN с идентификаторами git.
После этого запустите:
$ subgit install $SVN_REPOS
$ ... let initial translation complete ...
$ TRANSLATION SUCCESSFUL
На данный момент у вас есть хранилище Subversion и егоGit-аналог, который постоянно синхронизируется, т.е. SubGit немедленно переводит svn revision в git commit для каждого svn commit
, а git commit в svn revision для каждого git push
.
Таким образом, вы можете зафиксировать изменения в созданном хранилище Subversion и синхронизировать все изменения с основным хранилищем Git.