У меня есть настройка репозитория git (с использованием gitblit), Jenkins и Team Foundation Server (TFS). Я пытаюсь сделать следующее:Удаление файлов в TFS автоматически (интеграция Git и Jenkins)
1) Попросите инженеров отправить код в репозиторий git.
2) Дженкинс скомпилирует код.
3) Дженкинс добавит изменения кода в TFS.
Довольно простой правый? Ну, я столкнулся с проблемой отражения удаленных файлов в TFS. То, что я работал следующим образом:
1) Дженкинс запускает скрипт, который удаляет все файлы и папки в Дженкинс рабочей
2) Дженкинс затем клоны файлов из мерзавца репозитория в рабочее пространство Дженкинс.
git clone git://devfilesrepo.company.com/DevFiles.git %WORKSPACE%
3) Дженкинс выполняет командный файл, который имеет следующие команды TFS:
set checkinComment=%1
tf workfold /collection:http://faketfs:8080/faketfs/DefaultCollection /workspace:DevFiles /map $/Dev/DevFiles "C:\Jenkins\jobs\DevFiles\workspace" /login:Company\admin,fakePass
tf checkout "C:\Jenkins\jobs\DevFiles\workspace" /noprompt /recursive /login:Company\admin,fakePass
tf add "C:\Jenkins\jobs\DevFiles\workspace" /noprompt /recursive /login:Company\admin,fakePass
tf resolve /auto:KeepYours /noprompt /recursive /login:Company\admin,fakePass
tf checkin /comment:%checkinComment% /noprompt /recursive /login:Company\admin,fakePass
Теперь эти команды работают замечательно, если файл добавляется или отредактированы, когда он переходит в Git. Однако, если файл когда-либо удален из Git, он не отображается в TFS.
Чтобы сделать ситуацию еще более сложной. Мне также нужно добавить пару файлов в TFS, которые не должны существовать в репозитории Git.
Есть ли команда TFS, которую я мог бы запустить, которая будет отражать удаленные изменения?
Я думал об удалении папки TFS перед добавлением файлов из Git, но затем я также удалял файлы, которые я добавил в TFS напрямую. Я слышал о Git-TF и Git-TFS, смогут ли эти утилиты выполнять то, что я ищу? Если да, то какие команды я мог запустить, чтобы получить код от Git до TFS?
Благодаря
Я бы предложил создать командный проект в TFS, который использует git для управления исходным кодом и использования этого репозитория git в качестве центрального репо. Есть ли причина, по которой вы не можете/не будете этого делать? Мне действительно не нравится видеть два «источника истины» для кода. Является ли git repo правдой или репо TFVC? –
Да, это потому, что у сторонних разработчиков есть код в Git. Репозиторий TFS находится в интрасети, и мы не хотим, чтобы сторонние разработчики имели доступ к интрасети. – JustAnotherDev
Какая версия TFS вы используете, между прочим? И является ли ваше рабочее пространство DevFiles сервером или локальной рабочей областью? –