我阅读了一堆关于简单源代码控制工具的问题,而Git似乎是一个合理的选择.我已经启动并运行,到目前为止它运行良好.我喜欢CVS的一个方面是自动增加版本号.
我理解这在分布式存储库中没有多大意义,但作为开发人员,我希望/需要这样的东西.让我解释一下原因:
我用Emacs.我会定期查找第三方软件包的新版Lisp源文件.假设我有一个文件foo.el,根据标题,它是版本1.3; 如果我查看最新版本并看到它是1.143或2.6或其他什么,我知道我已经远远落后了.
如果相反我看到了几个40个字符的哈希值,我不知道哪个是后来的,或者不知道它有多晚.如果我不得不手动检查ChangeLogs以了解我是如何过时的,我会非常讨厌它.
作为一名开发人员,我希望将这种礼貌扩展到使用我的输出的人(也许我在开玩笑说,任何人都是,但让我们暂时搁置一下).我不想记得每次都自己增加该死的号码,或者时间戳或类似的东西.那是一个真正的PITA,我从经验中知道.
那么我有什么替代品?如果我不能得到$ Id:$等价物,我还能提供我想要的东西吗?
我应该提一下,我的期望是最终用户不会安装Git,即使他们这样做,也不会有本地存储库(事实上,我希望不会以这种方式提供它).
我想将当前的git修订版号添加到构建的二进制文件中,go build以便我可以做一些类似于./mybinary --revision查看它的构建版本的内容(通常用于稍后部署后的故障排除).显然,我不能将修订号放入源中,因为这将使用新修订更改源.我想知道是否有其他方法可以做到这一点?或者你认为这只是一个坏主意?如果是这样,建立二进制文件与其源版本之间关系的推荐方法是什么?对于分布式版本控制系统,版本号似乎不是一个好主意.