Автоматическое управление заголовком лицензии / автора / версии в исходных файлах
Как правило, рекомендуется добавлять несколько строк с информацией об авторе, версии и лицензии в начало исходных файлов. Например, 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 ответа
Как правило, рекомендуется добавлять несколько строк с информацией об авторе, версии и лицензии в начало исходных файлов.
Это зависит от. Прежде всего, есть два (и более) способа сделать это:
- управлять лицензионной информацией для каждого файла
- управлять лицензионной информацией в центральном месте.
Если вы начинаете проект с нуля, метод для каждого файла часто легко реализовать, сохраняя при этом ясность. Как вы пишете, со временем становится все труднее отслеживать вещи. Так что все больше и больше проектов переключаются на центральный вариант.
Преимущество метода "файл за файлом" в том, что объем работы ясен. Зачастую вы пишете название приложения в файле комментария. Если по какой-либо причине был удален один файл, информация все еще там и цепочка документации не нарушена.
Преимущество метода центрального местоположения заключается в том, что он обычно поддерживается программным обеспечением для контроля версий, например, GIT. Комитеты могут быть подписаны исполняющим лицом, и автор может быть предоставлен. Документально подтверждено, кто написал какой код автоматически, и эта информация хранится в центральном местоположении: VCS.
Сохраните файл COPYING с вашим пакетом, где вы предоставляете основную информацию централизованно. Вы можете легко создать список авторов через VCS. И для каждого файла вы можете создать один заголовок, который просто указывает, какое программное обеспечение и где искать, просто голый контур:
/**
* Flux Deluxe v3.2.0 - Vector Drawing Redefined
*
* Copyright 2010, 2012 by it's authors.
* Some rights reserved. See COPYING, AUTHORS.
*/
Если вы выпускаете новую версию в новом году, то не составит труда обновить все файлы.
При работе с 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-инструментах, которые бы сами адаптировали файлы. Использование макросов в вашем редакторе - самое близкое к тому, что вы хотите.