如何在MATLAB函数中包含作者和版本信息

如何在MATLAB函数中包含作者和版本信息,matlab,function,documentation,version,Matlab,Function,Documentation,Version,这个问题与我的上一个问题有关: 你通常写什么来描述你自己函数的作者身份?您是将其放在函数体的末尾,还是放在任何代码之前的帮助文本之后 如何包含版本信息?功能修改后是否可以自动更新版本 这是我通常包括的内容: % My Name <my@email> % My company % Created: September 2010 % Modified: October 2010 %我的名字 %我的公司 %创建日期:2010年9月 %修改日期:2010年10月 请分享您的想法和想法?我

这个问题与我的上一个问题有关:

你通常写什么来描述你自己函数的作者身份?您是将其放在函数体的末尾,还是放在任何代码之前的帮助文本之后

如何包含版本信息?功能修改后是否可以自动更新版本

这是我通常包括的内容:

% My Name <my@email>
% My company
% Created: September 2010
% Modified: October 2010
%我的名字
%我的公司
%创建日期:2010年9月
%修改日期:2010年10月

请分享您的想法和想法?

我们将我们的代码保存在Subversion存储库中,并使用关键字功能将此类信息写入m文件提交到repo时的标题注释中。我们在(大多数)m文件中的初始功能行后面放了一块注释

如果您未使用源代码控制系统,则:

  • 你真的应该现在就开始使用它
  • 您可以编写一个脚本(在Matlab中,为什么不可以)来维护所需的注释信息,并实现一些过程以确保在必要时运行该脚本
  • 我们通常不会将修改日期或历史记录放在源文件中,存储库会为我们跟踪更改。这也是你应该使用它的另一个原因

    而且,当您考虑所有这些问题时,如果您还没有这样做:请查看Matlab的
    publish
    功能

    编辑:@yuk:从你提到的乌龟,我猜你正在Windows上工作。我在Windows PC上安装Subversion已经有两年了。我想不起安装过程中有什么问题,我也没有资格帮助您调试自己的系统——但是还有很多问题,所以谁是呢

    至于保持版本(etc)信息最新,不需要编写脚本。您只需包含特殊字符串,例如
    $Rev$
    ,Subversion将其识别为文件中需要版本信息(等)的位置(可能在注释中)中的关键字。这在本文中得到了很好的解释

    至于Matlab文档,我认为发布(和相关)功能在Mathworks网站的桌面工具和开发环境手册中有很好的解释。

    正如所指出的,某种形式的源代码控制非常适合处理这种情况。但是,如果您要手动添加信息,请注意以下几点:

    • 我肯定会包括一行文字,说明您的代码是用MATLAB版本编写的,或者您知道它适用于哪些版本

    • 添加信息时,如果不想在用户查看时显示信息,则必须在信息和帮助注释块之间留出空间,如:

      function myFunction
      %# Help text for function
      
      %# Your information
      
      除非您确实希望它与帮助一起显示。然后做一个大的评论块

    我在MATLAB中心文件交换中有一个文件交换,它可以帮助您以标准方式记录函数,并与版本控制软件(CVS和Subversion;不是git)一起自动更新作者字段和修改时间

    您只需在命令提示符下键入
    new
    ,然后输入函数名,它就会对其余的进行排序

    我使用的文档的基本模板是

    function [outputArgs] = TestFunction(inputArgs)
    %TESTFUNCTION Summary of this function goes here
    % 
    % [OUTPUTARGS] = TESTFUNCTION(INPUTARGS) Explain usage here
    % 
    % Examples: 
    % 
    % Provide sample usage code here
    % 
    % See also: List related files here
    
    % $Author: rcotton $    $Date: 2010/10/01 18:23:52 $    $Revision: 0.1 $
    % Copyright: Health and Safety Laboratory 2010
    
    (很明显,在版权声明中,您需要一家不同的公司。)

    帮助文档的第一行称为H1行,由函数
    lookfor
    等使用。重要的是,它直接位于函数定义行之后

    如果您有不同的用例(可能有可选参数,也可能没有可选参数),那么您应该描述每个用例

    示例:
    另请参见:
    行的格式与帮助报告生成器的工作方式相同。(我刚刚发现了一个bug——这一年应该在版权行中公司名称之前。修复它的方式。)


    $Author:
    等格式可与CSV/SVN一起使用。由于git使用文件散列,如果git不认为文件已经更新,就无法更改文件内容。

    +1同意源代码管理和使用关键字。我们试图在类级别定义所有权,并将“作者”信息仅放在构造函数文件的帮助文本中。我们将其放在帮助文本中,而不是放在末尾,这样联系人信息就会显示在“帮助”输出中。因为M-code创建了很多文件——每个函数1个,而不是像Java或C那样每个类或模块1个——每个文件中的头信息看起来都很混乱。我们不希望每次“帮助”电话都占用屏幕空间。谢谢,马克。我知道我必须使用版本控制。实际上,我试着设置TortoiseSVN,但在安装服务器时遇到了一些问题。不记得细节了,那是很久以前的事了。你有一些教程的链接吗?您是否可以添加更多关于如何在MATLAB中编写和设置脚本以更新版本信息的详细信息?至于发布,我当然看过了,但找不到相关信息。+1对于使用源代码管理,它实际上是必须的!最新的一代是HG(Mercurial)和Git,请看:哦,SVN集成方面的出色工作(+1酷)!只要我能看一看
    svn日志
    ,我就不完全确定这些信息会有什么用处,但我应该将其包含在我的函数模板中,以获得绝对的酷感。$author字段由上次修改函数的人更新,对吗?嗯,我是否需要更改SVN中的设置以便更新author字段等?@Jonas:SVN字段在您提交更改时更新,但您需要执行
    SVN propset SVN:keywords“Date author Revision”filename.m
    来配置它。看见作者字段是当前用户的操作系统登录名。