svn 用于多个文件

svn 用于多个文件

有人可以解释如何使用svn-multi来排版当前修订版(即不是当前文件版本)吗?

我必须将文档拆分成几个.tex文件。一个文件是主文件,其余文件都通过 调用\input{}。我希望标题包含当前版本的文档。如果我只是排版,\svnrev我会得到 的当前版本main.tex,而不是任何子文件的最高版本。

另一个问题:我知道svn-multi有一个 Perl 脚本。有没有办法在没有任何此类外部脚本的情况下获得所需的结果?

答案1

根据svn-multi 文档

文档全局宏,例如\svnrev,返回整个多文件文档的最新版本控制信息(关键字数据),即文档最新更改的文件的信息。

另外(第 2.2 节)

\svnidSubversion 关键字使用或 来包含\svnidlong。这些宏应该在每个文件的开头写好,即在主文档的序言中,紧接着 和\documentclass\usepackage{svn-multi}并作为每一个或类似宏之前的子文件\chapter。[原文重点]

您确定在每个子文件中都发布一个\svnid(long)宏吗?


关于 perl 脚本,它仅用于包含不直接由 latex 处理的文件中的版本信息。例如,它可用于从 C 源代码中提取修订号(如果您正在为 latex 中的 C 程序编写文档)。对于 latex 文档,如果您只需要文档本身各个部分的修订信息,则不需要外部脚本。

答案2

你可能想看看VC 包。vc bundle 的目的正是避免弄乱文件修订版本,这在不同方面都会带来问题,而是使用存储库修订版本。vc bundle 目前支持的版本控制系统是 Subversion、Git 和 Bazaar。

vc 包是一个脚本驱动的解决方案,需要安装 AWK 解释器(对于 Windows,您可以在GnuWin32 实用程序;简单地gawk.exe二进制文件包中的某个路径)。我计划将脚本移植到 Lua,因为最近的 TeX 发行版包含texluaLua 解释器,它应该可以在大多数平台上开箱即用。但我还没有时间来实现这一改变。

相关内容