Изменить CreationDate для TFS Changeset
В настоящее время я создаю инструмент миграции с одной системы контроля версий на TFS и использую Microsoft.TeamFoundation.Client
сборка и столкнулись с проблемой. Я могу имитировать изменения для каждого Changeset
, но CreationDate
свойство автоматически генерируется CheckIn
метод, как показано ниже:
var changeSetId = workspace.CheckIn(pendingChanges, userName, comment, note, null, null);
Затем я могу загрузить Changeset
объект по идентификатору, который был возвращен CheckIn
метод:
var changeSet = workspace.VersionControlServer.GetChangeset(changeSetId);
Я пытаюсь установить CreationDate
(не только для чтения) в Changeset
и я могу сделать это с помощью следующего кода:
changeSet.CreationDate = legacyLog.Date;
changeSet.Update();
Но после вызова Update
метод, изменения не сохраняются на сервере, так как я пытался проверить дату в браузере, и он по-прежнему показывает сегодняшнюю дату как CreationDate
(если я не понимаю, где эта дата отображается / отображается). Кто-нибудь пытался изменить CreationDate
для Changeset
раньше или я об этом все не так?
2 ответа
Я согласен с DaveShaw, вам нужно напрямую изменить время регистрации изменений в базе данных TFS. Оператор SQL: UPDATE tbl_Changeset SET CreationDate='?' ГДЕ ChangeSetId='?'
Пожалуйста, проверьте исходный код ModifyCheckinDate2012 по этой ссылке для деталей: https://tfsprod.codeplex.com/SourceControl/latest
Тем не менее, обратите внимание, что не рекомендуется вносить изменения непосредственно в базу данных TFS, так как это может привести к некоторым потенциальным рискам.
Обновление даты изменения полностью НЕ ПОДДЕРЖИВАЕТСЯ. Объект сервера TFVC гарантирует, что наборы изменений всегда создаются в хронологическом порядке, и делает несколько предположений на основе этого подтверждения.
История, редкое хранение и отчетность также используют это кардинальное правило. Это также одна из причин, по которой все еще невозможно объединить два командных проекта из разных коллекций.
Я проверил с командой продукта, чтобы быть уверенным, их ответ:
Да, мы, безусловно, делаем это предположение в коде TFVC.
Таким образом, при изменении даты существует ряд не публично документированных правил, которые необходимо учитывать. В противном случае ваша база данных может не обновиться в будущем или не сможет быть импортирована в VSTS, когда вы совершите переход.
Если вам необходимо внести эти изменения, лучшим решением будет обратиться в службу поддержки Microsoft, чтобы они предоставили вам сценарий, который выполняет правильные проверки согласованности.