在TFS登记期间将版权声明附加到文件顶部

时间:2013-11-01 18:45:59

标签: tfs

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

我想要这样的流程:

  1. 在办理登机手续时,获取要签入的文件列表。
  2. 对于每个文件,请检查文件扩展名以确定文件类型。
  3. 使用文件扩展名将注释附加为每个文件的第一行,以确定注释格式。
  4. 最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

@Mike我列出了以复杂程度递增的方式实现这一目标的方法

  1. 将版权声明添加到默认文件模板。这样,默认情况下,所有新文件都将具有此标头。
  2. 使用VS宏添加版权 - 可在线查找
  3. 在预构建活动期间添加版权 - 下面的示例脚本
  4. 如果你有一个门禁签到,那么修改构建模板以在shelveset排队等待签入后添加版权 - 你可以再次使用该脚本或将其转换为c#code
  5. 您可以通过验证是否需要操作来避免构建时间开销

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

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

    $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]
    }