TFS не синхронизирована между локальным и удаленным сервером — как выполнить повторную синхронизацию?

У меня есть проект на CodePlex, который использует TFS, и я использую плагин TFS для Visual Studio. Теперь я скопировал этот проект и работал на другом ПК без TFS и сделал рефакторинг. По глупости я просто использовал копирование/вставку и ручное редактирование текста, чтобы объединить свои изменения, ожидая, что TFS просто подхватит изменения.

Судя по всему, это не так. Вот скриншот моего локального каталога: http://img259.imageshack.us/img259/2897/tfslocal.jpg

Обратите внимание, что в некоторых файлах отсутствует символ блокировки — их нет. Если вы посмотрите на текущее Дерево TFS в Codeplex, то увидите, что некоторые файлы не локально больше не существует, т.е. WikiPlexExtensions.cs в основной папке.

Есть ли способ легко сказать TFS, чтобы сравнить мой локальный репозиторий с удаленным репозиторием и забрать изменения? Я мог бы повторно добавить локальные файлы, используя «Исключить из локального проекта» и повторно добавив их, и я мог бы создать «удаленные» файлы как пустые файлы только для того, чтобы удалить их, но если я могу избежать ручного возни, это было бы хорошо же :)


person Michael Stum    schedule 03.08.2009    source источник


Ответы (4)


Самый простой способ — использовать функцию «онлайн» VS 2008. По сути, вы хотите настроить свое решение в автономном режиме, а затем подключить его к сети при подключении к соответствующему серверу Codeplex. TFS должен выяснить все остальное.

person Richard Berg    schedule 03.08.2009
comment
Спасибо! И ваш ответ, и ответ Мехмента действительно полезны. Я принял ваше, потому что это было то, что я только что сделал, чтобы решить конфликт :) - person Michael Stum; 03.08.2009

Чтобы сравнить локальные и серверные папки, вы можете проверить Электронный инструмент TFS. После его установки вы можете открыть проводник управления версиями, щелкнуть правой кнопкой мыши папку сервера и выбрать «Сравнить». Окно различий папок отобразит различия. Вы также можете щелкнуть правой кнопкой мыши различия, чтобы увидеть доступные команды, такие как «Получить последнюю версию», например, для обновления вашей локальной папки. Ознакомьтесь с сообщением в блоге Брайана Гарри об этом инструменте.

person Mehmet Aras    schedule 03.08.2009

Я не думаю, что есть простое решение... В прошлом я делал резервную копию тех файлов, которые я редактировал, а затем выполнял "Получить последнюю версию..." для файлов, которые я редактировал. Это должно снова сделать файлы доступными только для чтения и т. д. Теперь извлеките файлы обычным способом и вставьте резервные копии, которые у вас есть, в извлеченные файлы. Очевидно, что это действительно работает только тогда, когда есть пара файлов, которые вы отредактировали.

person Polaris878    schedule 03.08.2009
comment
Get не сделает файлы доступными только для чтения, если вы не выберете опцию /overwrite. Конечно, это также сотрет ваши изменения. Если вы оставите параметр по умолчанию, у вас будет конфликт файлов с возможностью записи, который можно разрешить при извлечении и автоматическом объединении. Это работает, просто медленно... и не подхватывает файлы, которые были добавлены или удалены. (или переименовать, но это невыполнимая задача даже без попыток tfpt) - person Richard Berg; 03.08.2009
comment
Да, я просто перезаписываю большую часть времени (отсюда резервное копирование, о котором я упоминал), но вы правы, есть лучший способ. - person Polaris878; 03.08.2009

Для этого в TFS (в Visual Studio) есть команда Reconcile, см. документация Microsoft или этот ответ со ступеньками.

Кстати: эта команда, возможно, не существовала во время исходного вопроса, но этот вопрос возник первым, когда я искал.

person Yahoo Serious    schedule 18.10.2019