有没有可以自动更新源文件中的元数据的工具?

时间:2018-06-28 16:39:46

标签: git repository

我有一个git存储库,其中包含大约一百个.cpp和.h文件。每个文件都有一个简短的标头,其中包含许可证数据。我想用几行元数据扩展这一部分,以显示上次创建和修改特定文件的日期。

是否存在良好的做法来自动管理此问题而不与git冲突?

2 个答案:

答案 0 :(得分:1)

使用git过滤器。 Git Book有一个例子可以做到这一点。参见https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes,从“另一个有趣的示例以RCS样式获得$ Date $关键字扩展”开始。

有两个过滤器,一个过滤器在将数据添加到提交之前过滤数据(干净过滤器),另一个过滤器将文件从提交中检出到工作树(涂抹过滤器)。获取脚本并配置过滤器:

$ git config filter.dater.clean clean_date
$ git config filter.dater.smudge expand_date

答案 1 :(得分:0)

这可以通过git hook完成。

假设所有文件都遵循模板。例如:

Traceback (most recent call last):
  File "C:/Users/WantedStarling/Desktop/pygame.py", line 1, in <module>
    import pygame
  File "C:/Users/WantedStarling/Desktop\pygame.py", line 5, in <module>
    event = pygame.event.wait()
AttributeError: 'module' object has no attribute 'event'`enter code here`

使用简单的脚本创建可执行文件/** * Some license information * * Last update: Thu, Jun 28, 2018 8:19:47 PM */ // Code comes here... ,以替换“最新更新:”行:

.git/hooks/pre-commit