我浏览了一堆有关简单源代码控制工具的问题,Git似乎是一个合理的选择。我已经安装并运行好了它,并且到目前为止它运行良好。我喜欢CVS的一个方面就是自动递增版本号。
我知道在分布式仓库中这不太合适,但作为开发人员,我需要类似这样的东西。让我解释一下原因:
我使用Emacs。定期地,我会查找第三方软件包的Lisp源文件的新版本。假设我有一个文件foo.el,根据头部,它的版本为1.3;如果我查看最新版本,看到它是1.143或2.6或其他什么的,我就知道我已经相当滞后了。
如果我看到的是一对40个字符的哈希值,我就不知道哪个更晚,也无法知道它比现在更晚多少。如果我必须手动检查ChangeLogs以了解我有多么过时,那绝对会让我非常讨厌。
作为开发人员,我希望将这种礼貌(正如我所见,)扩展给使用我的输出的人(也许我在自己开玩笑,但暂且不论)。我不想每次都自己记得递增版本号或时间戳之类的东西。我知道这是一件真正的麻烦事,从经验上来讲。
那么我有什么其他选择呢?如果不能获得$Id:$等价物,我该如何提供我要找的东西?
需要注意的是,我的期望是最终用户将没有安装Git,即使他们安装了,也不会有本地仓库(实际上,我预计不会以这种方式提供)。
filter-branch
或其他工具重新构建整个项目。 - LeMikegit describe
命令,将输出保存在头文件中或以其他方式将该值嵌入到代码中。 - Jesse Chisholm