Visual Studio Team Services с проблемой синхронизации репозитория GitHub (туда и обратно) - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть репозиторий с открытым исходным кодом в GitHub.Я подключил это к Visual Studio Team Services.

Я хочу работать только через Team Services (поэтому подключайтесь к моей учетной записи Team Services и проекту в Visual Studio, а не к GitHub).Репозиторий GitHub всегда должен отражать последнюю версию кода, отправленного в VSTS.

Проблема в том, что он работает только частично.

Мне удалось подключить репозиторий GitHub к VSTS и импортировать код.
I может см. начальные коммиты, сделанные в репо в GitHub.
I может посмотреть состояние сборки длякаждый коммит в GitHub (зеленый, красный, оранжевый).
Я могу вызвать сборку, когда я фиксирую код в GitHub.
I может подключать, фиксировать и запускать сборку через Visual Studio.

Однако

I не может увидеть в VSTS код и зафиксироватькоторые были сделаны в GitHub
I не может увидеть в GitHub код и коммиты, которые были сделаны в VSTS

Так что, похоже, они связаны, но не синхронизированы.

Я посмотрел этот пост здесь.Ему 2 года, поэтому, возможно, все изменилось, потому что он не работает для меня: Как синхронизировать репозитории VSTS и Github, когда совершаются коммиты , а также это Visual Studio Team Services - Синхронизация с /Репозиторий Github

Чего я не понимаю, так это того, что когда запускается сборка, он извлекает последние источники, и я вижу свое последнее описание фиксации, но файл не обновляется в VSTS.enter image description here

В любом случае, я делаю шаги, описанные в ответе, но он продолжает говорить «Уже в курсе».Эта синхронная сборка завершается успешно, но ничего не меняется - ни в VSTS, ни в GitHub.

enter image description here

Что мне нужно сделать, чтобы они оба синхронизировались?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вам просто нужно две сборки CI для синхронизации репозитория GitHub с VSTS git repo .И если ваши GitHub repo и VSTS git repo не синхронизируются, пожалуйста, сначала синхронизируйте, а затем добавьте нижеприведенные настройки для будущей синхронизации автоматически.

Я не могу увидеть в VSTS код и коммиты, которые были сделаны в GitHub

Чтобы решить эту проблему, вам просто нужно определение сборки CI для GitHub repo , кажется, у вас уже есть), которое может автоматически запускаться, когда новые изменения помещаются в GitHub repo.

В определении сборки GitHub CI добавьте задачу PowerShell , чтобы перенести новые изменения из репозитория Github в репозиторий VSTS git.Сценарий PowerShell, как показано ниже:

git checkout $(Build.SourceBranchName)
git remote add vsts https://Personal%20Access%20Token:PAT@account.visualstudio.com/project/_git/repo
git push vsts $(Build.SourceBranchName)

Примечание:

  • Сборка CI должна быть указана с любыми ветвями в репозитории GitHub.Таким образом, вы можете указать * для фильтров филиала.

    enter image description here

  • Для задачи PowerShell вы должны отменить выбор Ошибка при стандартной ошибке.

    enter image description here

Я не вижу в GitHub код и коммиты, которые были сделаныв VSTS

Чтобы решить эту проблему, вам нужно другое определение сборки CI для VSTS git repo , чтобы после новых изменений, передаваемых в VSTS git repo, сборка запускалась автоматически.

И вы можете перенести изменения из VSTS git repo в GitHub repo с помощью задачи PowerShell:

git checkout $(Build.SourceBranchName)
git remote add github https://username:password@github.com/username/repo
git push github $(Build.SourceBranchName)

Примечание: вы также должны указать фильтры филиалов с помощью * соответствовать всем веткам VSTS git repo.Также необходимо отменить выбор параметра «Ошибка при стандартной ошибке» для задачи PowerShell.

0 голосов
/ 25 апреля 2018

Насколько я могу судить по предоставленным вами скриншотам, вы не делаете ничего с вашим хранилищем VSTS.Репозиторий, который вы синхронизируете, взят из GitHub.Репозиторий, из которого вы работаете, также GitHub.

Если вы не клонируете или не взаимодействуете с вашим VSTS-репозиторием, неудивительно, что вы ничего не видите.Вы хотите, чтобы ваша сборка использовала хранилище VSTS в качестве источника.Тогда команды, которые вы запускаете в сборке, будут извлекать последние изменения из GitHub и отправлять последние изменения из VSTS.

...