Как отразить GitHub SVN-репозиторий в SVN-репозитории, размещенном в другом месте - PullRequest
2 голосов
/ 20 октября 2010

Сценарий:

У меня есть Git Repo, размещенный в GitHub: https://Nerian@github.com/Nerian/JPovray.git

К которым могут обращаться клиенты SVN по адресу: http://svn.github.com/Nerian/JPovray.git

И у меня есть еще один сервер SVN, размещенный на школьных серверах. Я хочу, чтобы этот сервер был зеркалом репозитория на GitHub.

В школе необходимо использовать репозиторий SVN в школе.

Тест:

#Create the mirror repo
svnadmin create dest

#Make the hooks always pass
echo "#!/bin/sh" > dest/hooks/pre-revprop-change
echo "#!/bin/sh" > dest/hooks/start-commit    

#Make the hooks executable
chmod +x dest/hooks/pre-revprop-change dest/hooks/start-commit

#Initialize the mirror repo to mirror the github repo
svnsync init file://`pwd`/dest http://svn.github.com/Nerian/JPovray.git 

Это дает мне это сообщение:

svnsync: хранение нестандартного свойства 'svn: wc: ra_dav: version-url' запрещено через интерфейс репозитория и может указывать на ошибку в вашем клиенте

#Start the mirroring process 
svnsync sync file://`pwd`/dest

Это дает мне это сообщение:

svnsync: ОТЧЕТ 'http://svn.github.com/Nerian/JPovray.git': 200 ОК (http://svn.github.com)

#Checkout the mirror repo.
svn checkout file://`pwd`/dest client

Это дает мне сообщение:

Извлечено ревизия 0.

В настоящее время в репозитории Github есть 6 ревизий. Оформить заказ говорят, что есть 0. Таким образом, это означает, что синхронизация не работает. Репо клиента пусто, а репозиторий Github содержит 2 файла.

Сдерживает:

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

История коммитов репозитория GitHub должна храниться. Мы - команда из 3 человек, и профессор должен знать, кто что совершает.

EDIT:

Я связался с GitHub по этому поводу, и они сказали, что невозможно отразить репозиторий GitHub svn, потому что они на самом деле не являются репозиториями Subversion. Это просто какой-то мост.

Итак, я начал программировать решение:

https://github.com/Nerian/github_subversion_converter

Это приложение на Ruby позволяет передавать коммиты из одного SVN в другой. В настоящее время по состоянию на 23 октября 2010 года она делает свою работу. Но не сохраняет имя автора коммитов. Я работаю в этом. Должна быть завершена через неделю. Для текущего статуса, проверьте страницу репо.

1 Ответ

0 голосов
/ 02 февраля 2013

Pure Git с git-svn может быть более практичным способом (для ручного зеркалирования):

  • Github-репо, доступный как git-repo
  • SVN repo - это просто дополнительный пульт с git-svn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...