У меня есть некоторый старый персональный/собственный код, который я хочу "способствовать" открытому исходному коду.
Но я действительно хотел бы сохранить (и опубликовать), полная история CVS... - это возможное через репозиторий SVN Кода Google?
Хотя это не соответствует вашему конкретному сценарию, следующее может быть разумным альтернативным способом удовлетворения ваших потребностей:
Код Google поддерживает Mercurial (можно включить на вкладке управления проектом) и Mercurial имеет механизм преобразования (который вы можете включить) для импорта из других систем, включая CVS . Так что я думаю, что это можно сделать в коде Google, если вас устраивает Mercurial .
Я недавно проходил преобразование SVN в Mercurial и теперь считаю, что стоит посмотреть, размещается ли он в коде Google. Я думаю, что это перевоспитание подрывной деятельности дает достойный обзор того, почему вам следует заботиться.
Вам придется сделать это в два этапа: сначала преобразовать репозиторий из CVS в Subversion, а затем импортировать существующий репозиторий subversion. Из FAQ:
Как импортировать CVS-репозиторий в мой проект?
Инструмент cvs2svn - это хорошо зарекомендовавший себя инструмент для преобразования CVS в историю Subversion. Используйте его для создания репозитория Subversion, а затем используйте svnsync для переноса историю Subversion в ваш репозиторий Google Code репозиторий. (См. "Как импортировать существующую историю Subversion?")
Затем проверьте запись чуть выше:
Как импортировать существующий репозиторий Subversion?
Чтобы загрузить историю существующего репозитория Subversion, используйте svnsync. репозитория Subversion, используйте svnsync который поставляется вместе с Subversion 1.4 или более поздней версии. Выполните команду svnsync help, чтобы узнать больше об этом инструменте.
Обратите внимание, что ваш репозиторий Google Code должен быть сброшен на ревизию 0, чтобы это чтобы это сработало. На вкладке Source вашего проекта появятся инструкции о том, как сбросить репозиторий самостоятельно. (Примечание: вы должны быть владельцем проекта, чтобы сбросить свой собственный репозиторий, а также для того, чтобы продвигать код с помощью svnsync.)
Вот пример транскрипта, который демонстрирует, как вы можете продвигать историю из существующего репозитория (расположенного по адресу file:///my/repos) в ваш репозиторий в Google Code:
$ svnsync init --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn file:///path/to/localrepos Скопированы свойства для ревизии 0. $ svnsync sync --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn Зафиксирована ревизия 1. Скопированы свойства для ревизии 1. Зафиксирована ревизия 2. Скопированы свойства для ревизии 2. [...]
Когда появится запрос на ввод пароля, используйте свой пароль googlecode.com, который можно найти на вкладке настройки на на странице вашего профиля.
Запуск svnsync на большом хранилище займет значительное количество времени. Если вы будете отключены от сети во время во время процесса, вы можете увидеть сообщение об ошибке сообщение "svnsync: Couldn't get lock on destination repos after 10 attempts". Если это произошло, вы можете снять блокировку самостоятельно; см. раздел "Блокировки" of svnsync.txt.