1

我们所有代码文件的要求是在每个文件的顶部包含版权声明。既然我不会记得这样做,有没有办法可以利用 TFS 为我做这件事?

我想要这样的流程:

  1. 签入时,获取要签入的文件列表。
  2. 对于每个文件,检查文件扩展名以确定文件类型。
  3. 使用文件扩展名附加注释作为每个文件的第一行以确定注释格式。

最简单的方法是什么?

4

1 回答 1

1

@Mike我列出了以复杂性递增的顺序实现这一目标的方法

  1. 将版权声明添加到默认文件模板。这样,默认情况下所有新文件都将具有此标头。
  2. 使用 VS 宏添加版权 - 可以在网上找到这些
  3. 在预构建事件期间添加版权 - 下面的示例脚本
  4. 如果您有门控签入,则在搁置集排队签入后修改构建模板以添加版权 - 您可以再次使用脚本或将其转换为 c# 代码

您可以通过验证是否需要该操作来避免构建时间开销

  • 检查是否正在使用“tf status”添加任何文件
  • 如果有'添加'检查是否存在版权,如果没有,则在标题中添加

我用于在新的 .cs 源代码文件中一揽子添加的示例 .ps1 脚本。

$header = "// Copyright (c) My Corp. All rights reserved.`r`n"

function Write-Header ($file)
{
    $content = Get-Content $file

    $containsWord = $content | %{$_ -match "Copyright"}

    if($containsWord -match $true)
    {
        return
    }

    tf edit $file 

    $filename = Split-Path -Leaf $file

    Set-Content $file $header

    Add-Content $file $content
}

// you can modify this condition to apply this logic to new files only
Get-ChildItem "E:\src" -Recurse | ? { $_.Extension -match "[a-zA-Z]*\.cs$" } | % `
{
    Write-Header $_.PSPath.Split(":", 3)[2]
}
于 2013-11-04T16:09:36.367 回答