Самый надежный способ преобразовать репозиторий CVS, содержащий проекты Eclipse, в git?
У меня есть ситуация, когда у меня есть пожилое хранилище CVS, которое мы хотели бы преобразовать в git раз и навсегда, сохраняя всю историю и т. Д.
Все папки в корне репозитория содержат проекты Eclipse (простые или динамические веб-проекты), включая .classpath и .project. Мы используем Team ProjectSets для проверки проектов, которые нам нужны для выполнения определенной задачи (где набор проектов находится в проекте, содержащем основной, а остальные - библиотечные проекты).
Когда Team ProjectSet извлечен, рабочее пространство полностью заполнено.
Этот подход работал довольно хорошо в течение многих лет (за исключением части проекта, поставляемой с 3.5), и мы хотели бы работать аналогичным образом с git, если это возможно, но мы не уверены, как.
Я немного поиграл сgit cvs import
но это не удалось - вероятно, из-за того, что мы не использовали модули.
Как бы вы предложили нам это сделать, и как мы должны работать с git, чтобы разрешить текущее использование проектов с общей библиотекой? Будем ли мыИМЕТЬ представить maven и создать модули maven для наших библиотечных проектов? Или просто плющ муравья?
РЕДАКТИРОВАТЬ: Теперь мне удалось преобразовать наш CVS-репозиторий в Subversion с подходящим вызовом cvs2svn и обнаружил, что Eclipse хорошо распознает полученный репозиторий Subversion. К сожалению после клонирования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 Server, и я пробовал разные вещи 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 репозитория с "git push --mirror" привела к тому, что вещи появились в репозитории 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
оба говорят мне, что удаленная ветвь не найдена в восходящем направлении, вместо этого используется HEAD.
Я лаю не на том дереве?