Большая часть устойчивого способа преобразовать репозиторий CVS, содержащий проекты Eclipse мерзавцу?

У меня есть ситуация, где у меня есть пожилой репозиторий CVS, который мы хотели бы преобразовать в мерзавца раз и навсегда при хранении полной истории и т.д.

Все папки в корне репозитория содержат проекты Eclipse (или простые или динамические веб-проекты) включая .classpath и .project. Мы используем Команду ProjectSets для проверки проектов, в которых мы нуждаемся для данной задачи (где набор проекта расположен в проекте, содержащем основное, и остальные - проекты библиотеки).

Когда Команда, ProjectSet проверяется, рабочая область, полностью заполняется.

Этот подход работал вполне прилично много лет (кроме части набора проекта, которая шла 3.5), и мы хотели бы работать похожим способом с мерзавцем, если это возможно, но мы не уверены как.

Я играл несколько с git cvs import но это перестало работать - вероятно, из-за нас не использование модулей.

Как Вы предложили бы, чтобы мы сделали это, и как мы должны работать с мерзавцем для разрешения нашего текущего использования общих проектов библиотеки? Мы должны были бы представить знатока и создать модули знатока для наших проектов библиотеки? Или просто плющ муравья?


Править: Я теперь сумел преобразовать наш репозиторий CVS в Подверсию с подходящим cvs2svn вызовом и нашел, что Eclipse распознает получающийся репозиторий Подверсии приятно. К сожалению, после клонирования http://github.com/iteman/svn2git` и попытки выполнить bin/svn2git я добираюсь

tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
        from bin/svn2git:35:in `new'
        from bin/svn2git:35

Это - с Ubuntu 10.04.1 Сервер LTS, и я попробовал различные sudo вещи Ruby и его драгоценными камнями, полностью не понимая то, что я сделал, поскольку я не Ruby программист, таким образом, я, возможно, испортил вещи немного. Я ценил бы совет - если самое легкое должно установить другой вариант Linux, чтобы сделать преобразование, которое прекрасно.


Править:

https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning


Править: Моя первая попытка со значением по умолчанию svn2git завершенный успешно (через некоторое время), и я получаю хороший репозиторий где git branch -a отчеты примерно

tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more

Мы интересуемся способностью проверить ответвление SV46 и работу с ним (мы в основном не заботимся о тегах, просто фактические ответвления). Я настроил gitosis и продвинул этот репозиторий к gitosis и клонировал его к другому компьютеру, чтобы узнать, как сделать, "работа с SV46" укусила с Eclipse. ТОТ репозиторий не знает обо всех ответвлениях:

tra@TRA ~/git/git00 (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

Я должен массажировать исходный результат svn2git для получения информации в gitosis репозиторий? Я должен клонироваться с аргументом? Я должен восстановить шаг svn2git с предложенной версией вместо той, поставлющейся с Ubuntu?

Править: Оказалось, что публикация svn2git генерировала репозиторий с "нажатием мерзавца - зеркальные" сделанные вещи, разоблаченные в gitosis репозитории. Я теперь вижу следующую внутреннюю часть gitosis (обрезанный):

tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Basic_Beta1
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch
* master
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git tag -l
tra@Sandbox:/srv/gitosis/repositories/git01.git$

Попытка клонировать этот репозиторий с git clone gitosis@sandbox:git01 -b remotes/SV46 или git clone gitosis@sandbox:git01 -b SV46 оба говорят мне, что удаленное ответвление не найдено восходящий источник, с помощью ГОЛОВЫ вместо этого.

Я рявкаю неправильное дерево?

9
задан Thorbjørn Ravn Andersen 21 September 2010 в 09:11
поделиться

1 ответ

Прежде всего, всегда полезно использовать подмодули для независимых частей вашего центрального репозитория VCS (т.е. репозитория CVS) (см. « Каковы ограничения Git? »).
Это означает, что у вас будет много независимых репозиториев Git, то есть «набор файлов, развивающихся независимо друг от друга», поэтому существуют подмодули.

Таким образом, требуется несколько операций импорта Git (в нескольких репозиториях).

Но поскольку git cvs import не всегда подходит для этой задачи, я бы порекомендовал:

  • cvs2svn, чтобы сначала получить репо SVN (всего одно репо)
  • svn2git чтобы правильно преобразовать репозиторий SVN в репозиторий git (т.е. преобразовать ветки SVN в теги Git branch и SVN в теги Git)
6
ответ дан 4 December 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: