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

Это старый вопрос, и, возможно, никто больше этого не ищет, но теперь намного легче.

Должно быть все, что вам нужно.