Git для миграции управления потоком TFS
Я хотел бы посмотреть, как TFS будет работать для моей команды. Поэтому я хотел бы переместить наш текущий репозиторий GIT в базу данных TFS. Мы использовали GIT, поскольку он использовал поддержку ветвления, поэтому я хотел бы использовать TFS 2010 для решения этой проблемы.
Теперь вопрос есть. Как экспортировать наш репозиторий GIT в TFS. Очевидно, это какой-то script. Кто-нибудь это сделал? Любые предложения?
Спасибо.
Ответы
Ответ 1
Теперь Microsoft выпустила собственное расширение GIT ↔ TFS для GIT: GIT -TF
Это позволяет вытащить новый репозиторий GIT из TFS или настроить для разрешения GIT на TFS, что вы хотите сделать:
(из документации)
Для команды, работающей с существующим репо GIT, совместное использование разработчика изменения в TFS с использованием Git -TF будут использовать следующий рабочий процесс.
# Configure the existing repo relationship with TFS
git tf configure http://myserver:8080/tfs $/TeamProjectA/Main
# Fetch the latest changes from TFS and merge those
# changes with the local changes.
# Note, merging is important when working in a team configuration.
# See "Rebase vs. Merge" below.
git tf pull
git commit -a -m "merge commit"
# Check in the merge commit as a single TFS changeset
git tf checkin
# Push the merge commit to the origin
git push
Кроме того, можно использовать существующий open-source GIT-TFS (только с Windows, решение Microsoft использует Java и является перекрестным -платформа), описанный в ответе Git на одностороннюю миграцию (с историей) TFS 2008
Ответ 2
Я создал быстрый пакетный файл, но вам нужно иметь Team Foundation Power Tools (tfpt.exe) в вашем пути и For (команда цикла командной строки)
Командная строка Visual Studio в нужную папку git и выполните следующие действия.
git log --pretty="'%%H',%%ci - %%s" --reverse > commits
tf workspace temp /new /s:http://{TfsInstance} /i
tf workfold /map %2 . /workspace:temp
FOR /F "tokens=1* delims=','" %%a IN (commits) DO git checkout %%a && tfpt online /recursive /exclude:.git*,commits,*.obj,*.exe,_ReSharper*,obj,debug,*.user,*.suo,Bin /adds /deletes /i && tf checkin /author:"{AuthorName}" /comment:"%%b" /i
tf workspace temp /delete /i
- Сначала он создает файл коммитов со всей информацией о фиксации в обратном порядке (раньше всего).
- Затем он создает рабочее пространство Team Foundation... (обязательно замените
{TtsInstance}
своим URI TFS.
- Затем он создает временную папку в рабочей области.
- Затем он перебирает каждую строку файла коммитов, выполняет проверку из git, использует TFPT для проверки текущих файлов (опять же, чтобы заменить
{AuthorName}
на ваше имя автора), комментарий будет содержать метку времени от git (к сожалению, вы не можете изменить время проверки, не изменяя время сервера TFS, и я бы рекомендовал против этого) и имя оригинального автора.
Это сработало хорошо, но ветки не будут сохранены. Я не нашел времени, чтобы понять ветвление, поскольку в то время это был не достаточно большой фактор.
Надеюсь, это может сэкономить некоторое время!
Ответ 3
Установите SVNBridge в TFS, а затем используйте git -svn clone.
Ответ 4
Вы можете экспортировать git в svn и использовать CS Converter для перехода от svn к TFVS. Примечание. Конвертер CS был отменен, но похоже, что вы все равно можете его загрузить.
Ответ 5
Это старый вопрос, и, возможно, никто больше этого не ищет, но теперь намного легче.
Должно быть все, что вам нужно.