#git #visual-studio #tfs
#git #visual-studio #tfs
Вопрос:
Когда вы используете Git в качестве поставщика исходного кода для проекта TFS, Visual Studio обычно предоставляет в Team Explorer ряд функций, которых нет в проекте Git, не размещенном в TFS. К ним относятся рабочие элементы, сборки, отчеты и ссылки на функции веб-портала.
Я добавил подключение к проекту TFS. Однако я клонировал из созданного мной сетевого локального зеркала Git, чтобы не иметь этих дополнительных функций. Я создал зеркало, потому что сервер TFS находится через Интернет отсюда, и наше соединение медленное. По сути, зеркало должно использовать прокси-сервер Team Foundation Server, который можно использовать при использовании TFVC.
Если я клонирую из TFS, то функции доступны, но я не хочу, чтобы push / pull выполнялся непосредственно на сервере TFS.
Как я могу сохранить эти дополнительные функции TFS доступными, продолжая использовать зеркало?
Ответ №1:
Доступность этих функций, похоже, привязана к origin
удаленному репозиторию Git. origin
должно быть установлено на сервере TFS.
При клонировании из другого местоположения это местоположение будет origin
по умолчанию. Аналогично, если у вас есть репозиторий, клонированный из TFS, но затем переключенный origin
на другой сервер (даже если вы сохраняете сервер TFS как удаленный с другим именем), вы теряете эти функции в Visual Studio.
Вам нужно будет использовать инструменты командной строки git, чтобы исправить это, поскольку в настоящее время нет графического интерфейса Visual Studio для управления удаленными устройствами.
Если вы клонировали из зеркала, восстановление функциональности состоит из следующего:
git remote rename origin mirror
git remote add origin <TFS Clone URL>
При переименовании origin
удаленного устройства отслеживание существующих ветвей было соответствующим образом обновлено, поэтому нажатие / нажатие на эти ветви будет происходить против mirror
Вы можете получить <TFS Clone URL>
его из существующего клона (запущенного git remote -v
в репозитории) или с веб-портала Team Foundation Server. На веб-портале есть кнопка «Клонировать», которая выводит нужный URL-адрес в разделе «Код» / «Исследовать». Обычно он имеет вид http://<server>:<port>/tfs/<collection>/_git/<project>
.
Если вы клонировали из TFS, но хотите, чтобы другой удаленный (зеркальный) был по умолчанию для push / pull:
git remote add mirror <Clone URL for mirror>
git branch --set-upstream-to=mirror/master master
Это добавляет зеркало в качестве нового удаленного вызываемого mirror
. Затем он создает master
ветку mirror/master
, вместо origin/master
которой будет использоваться Visual Studio mirror
, когда вы нажимаете push или pull в Visual Studio.
Вам нужно будет повторить последнюю строку выше для каждой другой существующей локальной ветки, которую вы хотите отправить / отправить на зеркало, а не на сервер TFS.
Примечание: это по-прежнему оставляет ограничение, заключающееся в том, что при публикации с разветвлением через Visual Studio для восходящего потока устанавливается origin
значение, поэтому вам придется перейти в командную строку, чтобы сбросить значение восходящего mirror
потока. Однако вы МОЖЕТЕ нажать mirror
на вкладку «Несинхронизированные коммиты», не публикуя ветку. Это, по крайней мере, делает его работоспособным, но, к сожалению, несовместимо с тем, как обычно публикуются ветки. Надеемся, что более новые версии TFS либо позволяют этим дополнительным функциям работать, если КАКОЙ-либо удаленный сервер является сервером TFS, либо предоставляют возможность указать, на какой удаленный сервер публиковать новую ветку.