gpt4 book ai didi

git - 从 CVS 迁移到 Git : $Id$ equivalent?

转载 作者:IT王子 更新时间:2023-10-29 01:21:35 24 4
gpt4 key购买 nike

我阅读了一堆关于简单源代码控制工具的问题,Git 似乎是一个合理的选择。我已经启动并运行了,到目前为止效果很好。我喜欢 CVS 的一个方面是版本号的自动递增。

我知道这在分布式存储库中意义不大,但作为开发人员,我想要/需要这样的东西。让我解释一下原因:

我使用 Emacs。我会定期检查并查找第三方软件包的新版本 Lisp 源文件。假设我有一个文件 foo.el,根据标题,它是 1.3 版;如果我查找最新版本并看到它是 1.143 或 2.6 或其他版本,我知道我已经远远落后了。

如果相反,我看到几个 40 个字符的散列,我将不知道哪个是晚的,也不知道它晚了多少。如果我不得不手动检查 ChangeLogs 只是为了了解我有多过时,我绝对会讨厌它。

作为一名开发人员,在我看来,我想将这种礼貌扩展到使用我的输出的人(也许我是在自欺欺人,但让我们暂时搁置一下)。我不想每次都自己记住增加该死的数字,或者时间戳或类似的东西。那是真正的 PITA,我从经验中知道这一点。

那么我有什么选择呢?如果我无法获得 $Id:$ 等价物,我还能如何提供我正在寻找的内容?

我应该提一下,我的期望是最终用户不会安装 Git,即使他们安装了,也不会有本地存储库(事实上,我不希望以这种方式提供)。

最佳答案

SHA 只是版本的一种表示形式(尽管是规范的)。 git describe 命令提供了其他命令并且做得很好。

例如,当我在 Java memcached client 的主分支中运行 git describe 时来源,我明白了:

2.2-16-gc0cd61a

这说明了两件重要的事情:

  1. 自 2.2 以来,这棵树中恰好有 16 次提交
  2. 完全源代码树可以显示在任何其他人的克隆上。

比方说,您用源代码打包了一个 version 文件(或者甚至重写了所有内容以供分发)以显示该编号。假设打包版本是 2.2-12-g6c4ae7a(不是发行版,而是有效版本)。

您现在可以准确地看到您落后了多远(4 次提交),并且您可以准确地看到是哪 4 次提交:

# The RHS of the .. can be origin/master or empty, or whatever you want.
% git log --pretty=format:"%h %an %s" 2.2-12-g6c4ae7a..2.2-16-gc0cd61a
c0cd61a Dustin Sallings More tries to get a timeout.
8c489ff Dustin Sallings Made the timeout test run on every protocol on every bui
fb326d5 Dustin Sallings Added a test for bug 35.
fba04e9 Valeri Felberg Support passing an expiration date into CAS operations.

关于git - 从 CVS 迁移到 Git : $Id$ equivalent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com