Вопрос

У меня есть проект 20-летней давности что я хотел бы перейти с RCS на git, не теряя историю.Все веб-страницы предполагают, что Единственный Верный Путь лежит через CVS.Но после часа поисков в Google и пробования разных сценариев я так и не нашел ничего, что успешно преобразует дерево моего проекта RCS в CVS.Я надеюсь, что хорошие люди в Stackoverflow будут знать, что на самом деле работает, в отличие от того, что, как утверждается, работает, но на самом деле этого не делает.

(Я искал Stackoverflow, используя как собственный поиск SO, так и поиск Google, но если в базе данных есть полезный ответ, я его пропустил.)

Обновитьrcs-fast-export инструмент в http://git.oblomov.eu/rcs-fast-export был отремонтирован 14 апреля 2009 года, и эта версия, кажется, работает для меня.Этот инструмент преобразует Гетеро для git без промежуточных резюме.Спасибо Джузеппе и Якубу!!!


Вещи, которые не сработали, которые я до сих пор помню:

  • В rcs-to-cvs скрипт, который отправляется в contrib каталог источников резюме

  • В rcs-fast-export инструмент в http://git.oblomov.eu/rcs-fast-export в версиях до 13 апреля 2010 г.

  • В rcs2cvs скрипт, найденный в документе под названием "CVS-RCS- HOW-TO Document для Linux"

Это было полезно?

Решение

Видишь Интерфейсы , интерфейсы и инструменты страница на Git Wiki, в разделах "Инструменты", "Взаимодействие с другими системами контроля версий", "Другое".Там вы найдете описание и ссылку на rcs-быстрый экспорт (gitweb - веб - сайт) Рубиновый сценарий Джузеппе "Обломова" Билотты.

(Поиск в Интернете также приведет к поиску страницы Ohloh и объявления для упомянутого проекта).

Другие советы

Как правило, вы должны быть осторожны с тем, какие скрипты вы запускаете.Для RCS -> GIT, возможно, в ваших интересах следовать методологии RCS-> CVS-> GIT.

Бросил быстрый взгляд на rcs-fast-export.rb по состоянию на 2011-01-12 и наткнулся на эту часть кода.В лучшем случае это пугает.

# steal username/email data from other init files that may contain the
# information
def steal_username
    [
            # the user's .hgrc file for a username field
            ['~/.hgrc',   /^\s*username\s*=\s*(["'])?(.*)\1$/,       2],
            # the user's .(g)vimrc for a changelog_username setting
            ['~/.vimrc',  /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            ['~/.gvimrc', /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            []
    ].each do |fn, rx, idx|
...

Хорошо, после небольшой переделки я обнаружил, что преобразовать RCS в CVS было тривиально.Файлы имеют одинаковый формат, так что это просто вопрос перемещения файлов в существующий корневой каталог CVS.Это предполагает, что у вас есть доступ к файлам RCS.

# Create CVS root dir. You only need to do this once.
mkdir $HOME/cvs/
cd $HOME/cvs/
cvs init

# Import a repository from RCS to CVS
cp -a _projectname_/RCS $HOME/cvs/_projectname_

Только что нашел это, которое отлично сработало для меня:

http://cynic.cc/blog/posts/migrate-from-rcs-to-git/

Просто обратите внимание, что "cvs-source-dir" на этой странице должен быть абсолютным путем.

У меня тоже была эта проблема, и я боролся с cvs2svn, parsecvs и еще много с чем.парсеквс подобрал самый близкий, но Кит, похоже, оставил его позади, и теперь появляются случайные развилки.Проблема, с которой я столкнулся, заключалась в том, что он отлично анализировал файлы RCS, но последнее, что он сделал, было git rm файл, так что мне пришлось бы возиться с git reset чтобы отменить удаление.

Затем я открыл для себя mercurial's convert: https://www.mercurial-scm.org/wiki/ConvertExtension Проблема решена!

Я попытался постепенно добавлять некоторые материалы из отдельных деревьев RCS, кажется, это сработало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top