使用版本控制系统的在线界面是为最新版本的代码提供发布位置的好方法。例如,我在这里有一个 LaTeX 包(只要验证更改为实际工作,它就会发布到 CTAN):
http://github.com/wspr/pstool/tree/master
包本身源自一个文件(在本例中为 pstool.tex),该文件在处理时会生成文档、自述文件、安装程序文件以及构成 LaTeX 使用的包的实际文件。
为了方便想要下载这些东西的用户,我在存储库本身中包含了上面提到的所有派生文件以及主文件 pstool.tex。这意味着每次提交时我都会进行双倍的更改,因为包文件 pstool.sty 是主文件的生成子集。
这是版本控制的变态吗?
@Jon Limjap提出了一个很好的观点:
您是否有另一种方法可以将生成的文件发布到其他地方以供下载,而不是依靠您的版本控制作为您的下载服务器?
这才是本案真正的症结所在。是的,可以从其他地方获得该软件包的已发布版本。因此,仅对非生成文件进行版本控制确实更有意义。
另一方面,@ Madir的评论是:
真实的、重复的便利超过了幕后承担的成本
这也是相当相关的,如果用户发现错误并且我立即修复它,他们可以前往存储库并获取他们继续工作所必需的文件,而无需运行任何“安装”步骤。
我认为,这对于我的特定项目集来说是更重要的用例。