Автоматическое управление заголовком лицензии / автора / версии в исходных файлах - PullRequest
7 голосов
/ 03 апреля 2012

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

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year>  <name of author>

This program is free software: you can redistribute it and/or modify
it under the terms [SNIP]

Я считаю утомительным добавлять его вручную в каждый файл, и мне приходится обновлять их все время от времени, когда часть этой информации изменяется (новые авторы, годы авторского права, изменения версии).

Есть ли способ управлять этим автоматически, так что мне нужно редактировать этот материал только в одном месте, и он автоматически копируется?

При необходимости вы можете предположить, что я использую любую современную систему контроля версий.

Ответы [ 3 ]

4 голосов
/ 07 апреля 2012

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

Это зависит.Прежде всего, есть два (и более) способа сделать это:

  • управление информацией о лицензировании для файла
  • управление информацией о лицензировании в центральном местоположении

Если вы начинаете проект с нуля, метод для каждого файла часто прост при сохранении ясности.Как вы пишете, со временем становится все труднее отслеживать вещи.Поэтому все больше и больше проектов переключаются на вариант центрального местоположения.

Преимущество метода «файл за файлом» заключается в том, что объем работы ясен.Зачастую вы пишете название приложения в файле комментария.Если по какой-либо причине вынимается один файл, информация все еще там и цепочка документации не нарушена.

При использовании метода центрального расположения преимущество состоит в том, что это обычно поддерживается вашим программным обеспечением для контроля версий.например ГИТ.Комитеты могут быть подписаны коммитирующим лицом, и автор может быть предоставлен.Документально подтверждено, кто написал, какой код автоматически, и эта информация хранится в центральном месте: VCS.

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

/**
 * Flux Deluxe v3.2.0 - Vector Drawing Redefined
 *
 * Copyright 2010, 2012 by its authors. 
 * Some rights reserved. See COPYING, AUTHORS.
 */

Если вы выпускаете новую версию в новом году, это не составляет трудаобновить все файлы.

3 голосов
/ 03 декабря 2015
0 голосов
/ 03 апреля 2012

При работе с Visual Studio вы можете использовать макросы и прикрепить к ним ярлык. Затем при создании нового файла используйте ярлык, чтобы добавить заголовок. Если вы хотите быть уверены, что заголовок включен в каждый файл, вы можете использовать StyleCop.

Следующие ссылки могут быть полезны:
http://abhijitjana.net/2010/12/05/add-document-header-for-files-automatically-in-visual-studio/
http://stylecop.codeplex.com/

В Eclipse также есть поддержка макросов, поэтому вы должны иметь возможность сделать то же самое, что и для VS. Однако у меня нет никакого опыта с этим.

Для Java есть альтернатива StyleCop:
http://stylecop.codeplex.com/

Я не слышал ни о каких SVN-инструментах, которые бы сами адаптировали файлы. Использование макросов в вашем редакторе - самое близкое к тому, что вы хотите.

...