Сценарий:
У меня есть 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 года она делает свою работу. Но не сохраняет имя автора коммитов. Я работаю в этом. Должна быть завершена через неделю. Для текущего статуса, проверьте страницу репо.