Я работаю над проектом, расширяющим функциональность TFS для моего отдела. В основном у нас есть два хранилища (коллективные коллекционные проекты), один для разработки и производственный. Разработка одна используется нашими разработчиками, а производство - это то, где мы хотим сохранить копию нашего кода. Я сделал несколько исследований, и казалось, что это часто спрашивали, никогда не доставляли запросы, поэтому я решил написать приложение на заказ.TFS API - проверка всех файлов независимо от состояния
В моем приложении код не делает (среди прочего) следующие
- Проверки там нет извлечений в репозитории разработки для элемента в вопросе
- Имеет ли попасть в каталог на клиентском компьютере , не создавая или не полагаясь на существующие сопоставления Workspace
- Создает временное сопоставление рабочей области в репозитории Production, связанном с созданным ранее локальным каталогом
- Ищет ожидающие изменения между локальным каталогом и проверяется в коде в производстве
- Проверки в изменениях
Теперь все работает отлично - во всяком случае в первый раз, так как все файлы будут помечены как добавить и, следовательно, проверяется успешно. В последующие моменты, однако, он не работает так, как я хочу, потому что он только находит файлы, которые были изменены. Я понимаю, что это по дизайну, но то, что я хочу сделать, это установить исходные коды кода - каждая базовая линия (changeet), содержащая все файлы в проекте, независимо от того, были ли они изменены или нет. Если, например, в проекте было 52 файла, тогда, когда я нажимаю «Получить эту версию», я ожидаю, что будет загружено 52 файла.
Я понимаю, что TFS работает в соответствии с проектом, но мне интересно, есть ли способ заставить меня делать то, что я хочу. Для справки мой код для проверки в следующим образом:
// create a workspace on my production server
wSpace = vcsProdServer.CreateWorkspace(cWsMapping);
wSpace.Map(pProjectName, combinedPath);
wSpace.Get();
string files = pProjectName + "/*";
int pendingAdd = wSpace.PendAdd(files, true);
int pendingEdit = wSpace.PendEdit(files, RecursionType.Full);
// get the pending changes
PendingChange[] changes = wSpace.GetPendingChanges();
// check in the changes
wSpace.CheckIn(changes, string.Format(checkinMessage, pProjectName, DateTime.Now));
pProjectName относится к проекту в TFS ($/MyProject, например) и combinedPath является локальный путь, где последняя версия кода загружается.