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