git Team Foundation Server生成文件的LastWriteTime设置为今天的日期时间,而不是实际的LastWriteTime

nszi6y05  于 2023-01-01  发布在  Git
关注(0)|答案(1)|浏览(118)

我尝试只打包在过去2分钟内使用内置的Team Foundation Server(TFS)构建功能从同一TFS服务器上的git存储库中更改的文件。
我编写了一个PowerShell脚本来删除LastWriteTime超过2分钟的所有旧文件:

# Get the current working directory
$currentDirectory = Get-Location

# Append the target directory to the current working directory
$targetDirectory = Join-Path $currentDirectory "CFM Reporting Project\SSRS\Reports"

# Get all files in the target directory and its subdirectories
Get-ChildItem -Recurse $targetDirectory | 
Where-Object {$_.LastWriteTime -lt (Get-Date).AddMinutes(-2)} | 
Remove-Item -Recurse -Force

# List all in target directory and its subdirectories
Get-ChildItem -Recurse $targetDirectory | Format-List -Property FullName,CreationTime,LastWriteTime,CheckinDate -Force

我已经确保构建定义将Clean选项设置为false。

但是,在生成时,不会删除任何文件,因为它们的LastWriteTimes都是生成开始的日期时间:

下面是显示文件的更多日志,因为上面的屏幕截图只显示文件夹:

我用这些资源来指导和探索思想:

额外信息

  • 部署包由报表存储库组成,而不是Visual Studio解决方案文件
  • Microsoft Visual Studio团队基础服务器版本16.131.28601.4
  • PowerShell版本1.2.3

有谁能给我一些建议,告诉我如何只打包最近2分钟内发生更改的报告,特别是在LastWriteTime无法正常工作的情况下。

tzdcorbm

tzdcorbm1#

由于您将clean选项设置为false,管道将递增地 checkout 存储库的更改。
从您的屏幕截图有关的日期的文件,它显示的变化时间在文件夹的水平,而不是子文件。
当文件夹中的子文件发生变化时,文件夹的日期也会随之更新。
例如:
子文件:

文件夹:

要仅打包最近2分钟内发生更改的报表,可以检查文件夹子文件的日期,然后打包相关文件。

相关问题