Подтвердить что ты не робот

RW Access git с помощью svn (git -svnserver)?

Есть ли программа, которая делает то, что делает git -svn, но в ситуации, когда репозиторий на сервере git, а разработчик использует svn?

Я знаю, что github.com позволяет svn-доступ к репозиториям git, которые они размещают, но не похоже, что они выпустили этот открытый проект (пока?), и использование их серверов не является вариантом для меня (даже не их частные хранилища).

EDIT: Я думаю, что я ищу параллель с git -cvsserver '- git -svnserver. В ходе поиска я нашел 2-3-летние потоки в списке рассылки git, но не похоже, что кто-то добился значительного прогресса. Надеюсь, кто-то может исправить меня по этому поводу.

Существуют ли в настоящее время проекты git -svnserver? Мне бы не хотелось дублировать усилия, но кажется, что GitHub - самый дальний путь, но никто не может его иметь.

4b9b3361

Ответ 1

Посмотрите SubGit.

SubGit - это серверное решение, оно позволяет Subversion получить доступ к репозиторию Git и наоборот. Вы можете обратиться к documenation для получения более подробной информации, но в целом довольно легко использовать 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-версию в Git commit на каждом svn commit и Git commit в svn-ревизию на каждом git push,

Итак, вы можете зафиксировать изменения в созданном репозитории Subversion и сохранить все изменения в синхронизации с основным репозиторием Git.

Ответ 3

SVNGit - именно то, что вы хотите. Это библиотека сервлета opensource для клиентов SVN для доступа к репозиториям Git.

Ответ 4

Я полагаю, что ссылка git-svn предназначена для управления с помощью git (для мониторинга - rebase или dcommit - ветки SVN).
Это означает, что вы можете сначала клонировать все git репо на локальном сервере (там, где вы также используете SVN), и использовать это для команд <git-svn между локальным репозиторией git и рабочим пространством SVN.

После того, как ваше местное репозиционирование git адекватно отражает ваше репо SVN, вы можете вернуться к удаленному серверу git.