Как я могу перепривязать свой проект в TFS?
Попытка присоединить новую машину ко всем зависимостям моего проекта, моя текущая проблема - привязки TFS. Я вижу это:
... когда я выбираю Файл | Контроль источника | Изменить контроль источника..., но значения в ячейках доступны только для чтения. Когда я нажимаю кнопку "Связать", меня ругают:"Не удалось найти сопоставления для решения". Да, я знаю, поэтому я хочу связать их. Как?
ОБНОВИТЬ
Выбор файла | Контроль источника | Рабочие пространства, я получаю список рабочих областей (но только после того, как я установил флажок "показывать удаленные рабочие области"), и тот, который мне интересен в данный момент, выглядит хорошо для меня:
... так что не так с этим? Я предполагаю, что "$\tlog" подключен к удаленному источнику; и источник на моей локальной машине - это то, где указывает "локальная" ячейка, так что... в чем проблема? Почему это не позволяет мне заново представить пару друг другу?
ОБНОВЛЕНИЕ 2
При перезапуске я получал:"Подключаемый модуль управления исходным кодом не установлен или не может быть инициализирован. Распространенными причинами этой ошибки являются недоступность сервера и / или неправильные сопоставления рабочей области". и основываясь на ответе здесь: Как заставить Visual Studio Team Foundation Server видеть, что я переместил код в другую папку? Я позволил ему "навсегда отменить". Но когда я смотрю в Workspaces, настройки точно такие же, как и были: соединения точно такие же, как и раньше (правда, они не работают, но я бы подумал, что постоянное снятие привязки удалит их из Workspaces).
ОБНОВЛЕНИЕ 3
Еще один перезапуск Visual Studio, и привязки, по-видимому, прерваны - больше нет ошибок msg. Тем не менее, они все еще отображаются как подключенные в рабочих пространствах!?!
ОБНОВЛЕНИЕ 4
Теперь я могу редактировать диалоговое окно "Изменить", но, хотя соединения кажутся точными, это говорит о том, что статус недействителен:
Я знаю, что локальный путь правильный, и я ничего не могу сделать (AFAIK) с путем к серверу (и я уверен, что он не изменился), так почему он недействителен? Должен любить это "программное обеспечение" производительности.
ОБНОВЛЕНИЕ 5
Я попробовал это. Я удалил все из раздела "GlobalSection(TeamFoundationVersionControl)", выбрал Файл | Контроль источника | Измените Source Control..., затем, выделив первый из проектов в решении, нажмите кнопку "Привязать". Это пошло от этого:
... к этому после нажатия кнопки "Привязать":
IOW, все еще нет радости в Mudville (Кейси вычеркнул). Он говорит, что это связано, но это недействительно. Было бы хорошо, если бы это объяснило почему - что в этом недействительного? Дай мне подсказку, TFS!
ОБНОВЛЕНИЕ 6
Ну, я немного продвинулся и связал некоторые проекты:
И все же девять оставались неуравновешенными. Я попытался исправить эти привязки, изменив файл.sln. Как уже упоминалось, девять проектов в решении имели статус "Неверный", а остальные (более чем в два раза больше) были "Действительный"
Итак, я сравнил действительное с in-, и увидел, что у всех "недействительных" были дополнительные описания пути, такие как "../../", "..\" и т. Д. Итак, я удалил все эти заменил.sln этим, и... ничего. Инвалиды остались инвалидами.
Затем я выбрал "ядерную опцию", предложенную DaveShaw: TFS Issue: Нет вариантов управления исходным кодом (получить последнюю версию , выписка, регистрация) для решения
... но все равно нет - нет изменений; действительный остался действительным, недействительный остался недействительным.
Я мог бы переписать весь код за то время, которое занимает эта ерунда TFS!
Не совсем, но это все еще довольно расстраивает.
ОБНОВЛЕНИЕ 7
Для получения дополнительной информации о том, что я пробовал и что происходит, см. Http://social.msdn.microsoft.com/Forums/vstudio/en-US/08d3e956-62a8-4874-8468-f178d12ac67c/why-is- запрашиваемый-URL-и-физико- путь-The-браузер-это-пытаюсь в использовании-разное-от-фактический? проф = требуемое
ОБНОВЛЕНИЕ 8
Мне кажется, что то, что должно сделать TFS, - это предоставить вам локальную структуру папок, или, что еще лучше, без подпапок, а только "начальную точку", а затем TFS должна заполнить структуру папок на основе структуры репозитория. и заполните это последним кодом.
Если это то , как это работает, или может работать...gr8! Но я пока не смог выяснить, как это сделать...
ОБНОВЛЕНИЕ 9
Вот как я думаю, что это должно работать:
1) В проводнике Windows вы создаете локальную папку, называя ее в соответствии с вашим решением
2) Вы открываете Visual Studio и выбираете "Подключиться к TFS" на начальной странице Visual Studio
3) Вы выбираете Файл | Контроль источника | Рабочие места... | Редактировать...
4) В записи / строке в части "Рабочие папки" диалогового окна "Редактировать рабочее пространство" вы щелкаете по записи "Локальная папка", чтобы иметь возможность ее редактировать.
5) Вы нажимаете кнопку с многоточием, чтобы открыть диалоговое окно Папка.
6) Затем вы выбираете папку, созданную на шаге 1, и нажимаете кнопку "ОК".
Теперь у вас есть запись в разделе "Рабочие папки:", которая выглядит следующим образом
Status Source Control Folder Local Folder
===== ================== ==========
Active $/Whatever C:\Whatever
7) Теперь вы нажимаете кнопку "ОК".
Примечание: когда я делаю это, я получаю диалог, который говорит:
"Изменено рабочее пространство Одна или несколько рабочих папок в системе управления версиями изменены. Хотите ли вы получать последние файлы из системы управления версиями для обновления локального рабочего пространства?"
Я пюре "Да" и увидел:
"Получите прогресс C:\Wh независимо \\\..."
... и постоянно обновляемый текст индикатора выполнения, казалось, указывал, что он делал то, что я ожидал (копируя файлы репозитория в локальную папку, создавая подпапки по мере необходимости).
8) Вы нажимаете кнопку "Закрыть" в диалоговом окне "Редактировать рабочее пространство"
9) Затем выберите "Открыть проект..." на стартовой странице Visual Studio и перейдите к C: \ независимо от того, что
10) Солнце заходит, синие птицы начинают петь, а дельфины начинают выпрыгивать из воды на среднем расстоянии в хореографическом представлении восторга.
Однако в моем случае происходит то, что Windows Explorer говорит, что объект моего желания (Whever.sln) находится в двух локальных папках, но при щелчке по этим папкам такой файл не отображается. Существует, но не там, где Windows Explorer говорит, что это... это еще одна папка под этим. И когда я выбираю этот проект для открытия, я получаю:
"Веб-проект в настоящее время настроен на использование URL" http://localhost/<different one>
". этот URL-адрес веб-сервера сопоставлен с другой папкой "C:\Project\ccr\TLog\Development\Development\Externals\CommonLogin". Хотите переназначить этот URL-адрес, чтобы он указывал на папку этого веб-проекта? "
Я говорю да"
Я получаю то же сообщение для другого проекта и снова нажимаю кнопку "Да".
Проект загружается. Кажется, это правильная коллекция проектов в решении.
Возможно, это действительно сработало на этот раз (после моды). Под этой квалификацией я подразумеваю то, что при компиляции решения Visual Studio сообщает мне, что имеется 11251 ошибок... возможно, это вопрос добавления ссылок и еще много чего. Я получил это:"Один или несколько проектов в решении были загружены неправильно. Подробности см. В окне" Вывод "."
Во всяком случае, вместо того, чтобы греться на солнце, слушая синюю птицу счастья, осока высохла из озера, и птицы не поют.
ОБНОВЛЕНИЕ 10
Я наконец заставил это работать, следуя ответу Джейсона Уильямса; однако, у меня все еще есть 11 257 сообщений об ошибках из-за неработающих ссылок. Есть ли способ автоматизировать процесс их исправления, или я должен пройти через них по одной сборке за раз (я знаю, что некоторые исправят более 1 ошибки сообщения, но все же...)
ОБНОВЛЕНИЕ 11
Вот что говорил бывший король Сакраменто:"Получить конкретную версию" (см. Комментарии после его ответа):
1 ответ
Ваше обновление 9 звучит по существу правильно. Вы можете пропустить шаг 1.
Тем не менее, похоже, что на шаге 5 позаботьтесь о том, чтобы вы не создавали двойную папку с вашим отображением (например, если у вас есть TeamProject с именем $/Whither и у него есть корневая папка с именем Whither, то у вас фактически есть путь $ / Независимо от того, что угодно, или вы можете сопоставить $ / с D:\Code\Wh бы то ни было - в любом случае вы можете получить D:\Code\Wh бы то ни было. Это не может быть проблемой, но возможно, что тот, кто создал ваш исходный код, возможно, не задумывался о том, чтобы сделать его перемещаемым, используя относительные ссылки на пути, и в этом случае вам может потребоваться быть уверенным, что он окажется в правильном абсолютном пути или нет правильно скомпилировать.
Как только вы создали рабочую область, она спрашивает (шаг 7), хотите ли вы обновить рабочую область с изменениями. Это правильный план, но я бы не стал ему доверять - TFS помнит, что, по вашему мнению, есть в каждой папке вашего рабочего пространства, поэтому, если он запутается из-за того, что вы когда-либо делали в прошлом, он может решить, что у вас есть какие-то исходного кода уже и не обновлять. Таким образом, чтобы быть пуленепробиваемым на этом этапе, нажмите "Нет", а затем вручную перейдите в проводник управления версиями, щелкните правой кнопкой мыши корневую папку и выполните "Получить определенную версию". Затем установите оба флажка, чтобы он получал все файлы (даже если он считает, что они у вас есть) и принудительно перезаписывал все (даже записываемые файлы), и вы обязательно получите полную копию исходного кода.
В (9) вам нужно открыть решение из вашего сопоставленного рабочего пространства (локальный диск). Перейдите в File > Source Control > Change Source Control и проверьте, что решение связано. Если нет, выберите все и нажмите Bind. Это волшебная кнопка, которая исправляет все, и никто во вселенной не понимает этот пользовательский интерфейс, почему он существует, почему он такой сложный, и почему нет никаких других опций в диалоге, когда они никогда не используются ни для чего. Все, что делает привязка, это записывает, где у вас есть решения на вашем локальном диске, так что у вас останется пустое чувство и намек на мысль, что это должно просто сработать, без того, чтобы вам не пришлось так возиться в диалогах, которые делают нет смысла делать что-то, что должно происходить автоматически, если вы используете что-то из системы контроля версий и находитесь в режиме "онлайн".
Этот процесс связывания должен означать, что любые внесенные вами изменения приведут к автоматическому извлечению затронутых файлов. (Если этого не происходит, проверьте "Инструменты"> "Параметры"> "Контроль исходного кода", чтобы убедиться в правильности настроек.)
Теперь, если вы получите ошибки при компиляции, вероятные подозреваемые будут:
- Код на сервере не строится. например, кто-то забыл проверить все зависимости и т. д.
- Код на сервере в порядке, но вы сопоставили его с другим местоположением на вашем ПК, чем исходный автор (например, вы использовали D: \, а он использовал C:), и он не сделал его перемещаемым. Если это так, самое быстрое решение - выяснить, как работает его сопоставление, и точно скопировать его на вашем компьютере (подсказка: вы можете просматривать сопоставления других людей в редакторе рабочей области, копировать и вставлять их в собственное сопоставление). Конечно, реальное решение состоит в том, чтобы отследить каждую поврежденную (абсолютную) ссылку на файл и сделать ее относительной, чтобы сделать решение перемещаемым.
- Код на сервере в порядке, но ваше сопоставление рабочей области не соответствует тому, как вы настроили свой веб-сервер, и затем, когда Visual Studio замечает, что оба не совпадают, вы нажимаете "да" (не зная, что это означает "да, пожалуйста, все испортите для меня"), а не "нет" ("У меня должна быть ошибка в моем сопоставлении управления исходным кодом, я думаю, что я вернусь и сначала проверю это, спасибо"). В этом случае двойная проверка сопоставления управления исходным кодом приведет к удалению кода в том месте, где веб-сервер считает, что он его найдет, и (после удаления лота, исправления сопоставления и выполнения Get Specific Version, чтобы заставить TFS получить чистая копия в нужном месте), вероятно, многие ваши проблемы исчезнут.
- Код на сервере в порядке, но ужасная система ссылок Visual Studio сломала некоторые ссылки. По сути, если он не может найти ссылочную сборку именно там, где вы говорите ей искать, вместо того, чтобы сказать "ошибка: ее там нет", он вместо этого отправляется в путешествие по поиску через ваш ПК и выбирает что-то еще с похожим именем. и говорит "что должно сделать". Что в небольшом проценте случаев (99%) приводит к полному срыву вещей, а в оставшихся 1% просто полностью их разрушает. Место для поиска в вашем списке ошибок обычно находится внизу - полезно, что последняя ошибка часто является ошибочной ссылкой, а предыдущие 1000 ошибок - просто побочные эффекты. Кроме того, проверьте в ссылках каждого проекта желтые значки с восклицательным знаком - это недостающие ссылки. Наконец, если у вас есть ссылка на проект MyAssembly.dll или "MyAssembly", который вызывает необъяснимые ошибки сборки, найдите на жестком диске "MyAssembly.dll". Когда вы обнаружите 3245 копий этого dll во всех ваших проектах сборки, удалите все из них, кроме "правильного", и посмотрите, улучшится ли ваш успех сборки. Кроме того, вам просто нужно прочитать ошибки и устранить их одну за другой.
Я боюсь, что точный ответ не так прост из этого далеко, но, надеюсь, это, по крайней мере, подтвердит, что вы правильно поняли основные идеи, и, возможно, даст вам некоторые подсказки, которые помогут вам диагностировать ваше недуг. Мои деньги были бы на картографировании рабочего пространства, потому что он был маленьким, немного отличающимся от волшебной обстановки, которая нужна для того, чтобы все просто встало на свои места, оставив вас ошеломленными и удивляющимися, почему вам просто пришлось потратить 3 дня на решение такой кошмарной проблемы только чтобы узнать, что вы никогда не были более 3-х символов и косой чертой от центра лабиринта.
Из подсказок в вашем шаге 9, это может быть что-то вроде
$/TLog -> C:\Project\ccr\TLog
скорее, чем
$/TLog -> C:\TLog
На эту проблему уже есть отличный ответ, но я хочу поделиться своими шагами, поскольку они могут помочь:
Проверьте свой текущий
Workspaces
, В моем случае у меня их было два, и это вызывало мою проблему (изображение для справки, так как я взял его после того, как решил)Поскольку мне не понадобились обе рабочие области, я удалил их с помощью окна, которое появилось на предыдущем шаге, следите за тем, чтобы не удалять другие рабочие области, которые могут вам понадобиться.
Затем вам нужно подключиться к TFS, как в первый раз, и когда это произойдет, VS попросит сопоставить рабочую область (сервер с локальным путем), затем я нажимаю
MAP & GET
После завершения GET всего исходного кода откройте решение, оно спросило, хочу ли я привязать его к серверу, и щелкнул ДА.
Это решило проблему