代码之家  ›  专栏  ›  技术社区  ›  Lucas B

从允许链接到源代码的生产代码中查找修订信息

  •  0
  • Lucas B  · 技术社区  · 15 年前

    在Java中,我们可以声明一个静态字符串,其值为$URURL:$,该值是由每个子版本提交更新的。然后可以从生成的类文件中将其提取到 查找与类文件对应的源文件 (和修订信息)。

    在C中,我们可以声明一个静态字符[]来执行相同的操作。

    在C中,完成这一目标的建议方法是什么?

    基本上,我在寻找使用$headURL:$information的最佳实践,它已经被Subversion更新,以使生产代码与源代码匹配。

    我熟悉程序集版本等,但这并不能提供我们正在寻找的粒度。

    3 回复  |  直到 15 年前
        1
  •  1
  •   anton.burger    15 年前

    如果我正确理解你,你就是想这么做。 每个源文件 ,这对您自己来说很难。)如果您在构建之前标记,那么与标记关联的修订号是对可执行文件中使用的每个源文件的明确引用,并为您提供所需的精确粒度。

    您可以使用SVN包含修订号 Revision 关键字而不是 HeadURL . 您只需要在 每个exe/dll的源文件(通常以字符串值的形式传递给 AssemblyInfo.cs ,这就是@serg10所指的。

    在C中对每个文件执行此操作(不必要)是很痛苦的,因为语言没有“模块”级数据的概念。并且在每个文件中至少添加一个类型的属性是繁琐的,并且容易被遗忘或错误输入。

        2
  •  1
  •   serg10    15 年前

    使用Subversion可以使用 svn info 获取当前存储库的最新版本号、存储库URL、上次更改日期等。然后,您可以使用创建它所使用的任何构建工具将该信息标记到程序集中。

    这个 asminfo 例如,nant中的task创建了一个assemblyinfo,可以用任意版本信息(attribute元素)进行标记。

        3
  •  0
  •   stephbu    15 年前

    一些想法:

    当一个类在多个源文件(如分部类)中声明时会有点混乱?:)

    自定义属性的好处是不干扰常规编程模型、智能感知等,同时仍然可以通过type.getCustomAttributes中的类型反射以编程方式发现这些属性。( http://msdn.microsoft.com/en-us/library/kff8s254.aspx )