Как сохранить временные метки изменения сервера для файлов, получаемых с помощью GET в TFS? - PullRequest
0 голосов
/ 30 июня 2018

Я использую workspace.get () в среде TFS 2013. Это работает отлично, однако, метки времени на загруженных файлах установлены на текущую метку времени.

Есть ли способ получить файлы и установить временные метки файла на время регистрации или фактическое время редактирования файла на сервере?

Я пытался искать ответы в Google, а также в Stackoverflow. Самая близкая вещь, которую я нашел, была веткой на MSDN, у которой не было окончательного ответа.

Надеюсь, кто-нибудь может дать быстрый ответ на это.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Наконец, после поиска в Интернете и документе Microsoft я смог создать рабочую область с указанным выше свойством со следующим кодом:

$tfsServer = Get-TfsServer -Name $props.tfsURI -Credential $tfsRepoCredentials
$structureService = $tfsServer.GetService("Microsoft.TeamFoundation.Server.ICommonStructureService")
$versionControlService = $tfsServer.GetService("Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer")

$workSpaceName = $env:USERNAME "-"+ $patchNumber

$wsParams = New-Object Microsoft.TeamFoundation.VersionCotrol.Client.CreateWorkspaceParameters -ArgumentList $workSpaceName
$wsParams.WorkspaceOptions = [Microsoft.TeamFoundation.VersionControl.Common.WorkspaceOptions]::SetFileTimeToCheckin

$versionControlService.CreateWorkspace($wsParams)

Ответы на вопрос Автоматическое создание рабочего пространства в Team Foundation Server предоставили полезную информацию о том, как установить параметры рабочего пространства.

Спасибо @Andy за помощь.

0 голосов
/ 02 июля 2018

По умолчанию TFS записывает время файла во время « current », когда вы извлекаете файлы из удаленного хранилища. Это поведение по умолчанию большинства инструментов контроля версий и обычно считается безопасным.

Установка времени на удаленное время может иметь негативные последствия во многих сценарии. Например, make будет сканировать файлы новее, чем последний время сборки. Установка времени файла на время сервера может повлиять на возможность определить, какие файлы были изменены с момента последней сборки.

Однако, если вы хотите получить файлы и установить временные метки для файлов на время регистрации , вы можете отредактировать определенное Рабочее пространство , установив " Время файла"to" Checkin":

Manage Workspaces... -> Select the specific workspace -> Edit -> Advanced -> File Time - Checkin  

Обратите внимание на следующие вещи (см. Как выбрать дополнительные параметры рабочего пространства? для получения подробной информации. ):

Время файла:

  • Выберите Checkin , если вы хотите, чтобы отметка даты и времени каждого файла в целом соответствовала отметке набора изменений версии в вашем файле. рабочая среда. Несколько проблем и исключений:

    • При изменении локального файла отметка даты и времени будет соответствовать дате и времени, когда вы изменили файл.

    • Эта функция доступна, только если вы используете Visual Studio 2012 или более поздней версии и Visual Studio Team Foundation Server 2012 или более поздней версии.

    • Этот параметр не применяется к папкам, если в файле, находящемся в папке, не выполняется ожидающая операция добавления или удаления.

    • Возможно, вам не удастся построить свой проект кода постепенно. Вместо этого вам придется восстановить).

  • Выберите Текущий , если вы хотите, чтобы отметка даты и времени соответствовала дате и времени, когда вы в последний раз изменяли локальный файл. Например, член команды проверил последние изменения в файле в понедельник. На Во вторник вы выполняете операцию get для обновления файла. Дата и отметка времени установлена ​​на вторник.

enter image description here

...