2013-01-29 1 views
1

Я работаю над инструментом, который переносится из SVN в TFS с использованием TFS API.Использование API TFS, типы файлов с расширениями, такими как .svnExe, игнорируются

workspace.CheckIn(
    pendingChanges, 
    currentUser.TfsUser, 
    set.LogMessage + " on " + String.Format("{0:d/M/yyyy HH:mm:ss}", set.TimeStamp) + " by " + currentUser.SvnUser, 
    (CheckinNote)null, 
    (WorkItemCheckinInfo[])null, 
    (PolicyOverrideInfo)null 
); 

Это путь я проверить мою ревизию в, но иногда игнорирует файлы, такие как .svnExe, или других «неизвестных» типов файлов.

Есть ли способ проверить ВСЕ типы файлов в TFS?

+1

Поддерживает ли pendingChanges файлы, которые вы хотите проверить? Какую версию TFS вы используете? Если вы добавляете файлы в SourceControl в Visual Studio, он фильтрует определенные типы файлов, такие как EXE и DLL, потому что они ** обычно ** выводятся и не нужны для разработки. Half-OffTopic: Планируете ли вы где-нибудь публиковать свой инструмент? На данный момент я просто знаю один инструмент миграции SVN-> TFS, который стоит 2000 евро в год, но, возможно, мне нужно перенести SVN в будущем;) – MikeR

ответ

1

Есть два варианта, которые я могу думать:

Возможность 1: Что является причиной PendAdd() на провал.

Например, если путь уже существует в системе управления версиями, вместо этого вы должны использовать PendEdit().

Чтобы диагностировать эту возможность, вы должны подписаться на VersionControlServer.NonFatalError event.

Возможность 2: Вы могли бы иметь коррумпированный кэш рабочей области

Вы можете обновить кэш, вызвав Workstation.Current.EnsureUpdateWorkspaceInfoCache() или выполнив действия, описанные в this answer (запустить tf workspaces /collection:http://yourserver:8080/tfs/DefaultCollection или удалить каталоги вручную).