sversion的git等价物

sversion的git等价物,git,svn,version-control,Git,Svn,Version Control,可能重复: 我一直在使用subversion,现在想切换到git。在阅读了手册之后,我只有一个保留,我使用svreversion获得了一个参考号,即:唯一、简短、时间单调(总是增加) 它必须是唯一的,所以我可以用它来复制文章 它必须短,所以它是可读的,可以在文件名,页脚,版本号显示中使用 它只能增加(与时间单调相关),因此任何人都可以比较两篇文章的年龄,而不知道年龄(日期) 约束条件:如果我们可以获得一个分支ID,那么只有在同一分支上的文章才能满足上述要求。(分支ID可以是任何可以比较身份

可能重复:

我一直在使用subversion,现在想切换到git。在阅读了手册之后,我只有一个保留,我使用svreversion获得了一个参考号,即:唯一、简短、时间单调(总是增加)

  • 它必须是唯一的,所以我可以用它来复制文章
  • 它必须短,所以它是可读的,可以在文件名,页脚,版本号显示中使用
  • 它只能增加(与时间单调相关),因此任何人都可以比较两篇文章的年龄,而不知道年龄(日期)
约束条件:如果我们可以获得一个分支ID,那么只有在同一分支上的文章才能满足上述要求。(分支ID可以是任何可以比较身份的东西,“这是发布分支吗?”


[此处使用冠词表示计算机程序、文件或由修订控制系统内容生成的其他内容。]

不,非线性历史记录不存在这样的情况。但是您可以查看
git descripe
,它的输出将至少满足前两个标准。

正如fork0所述,非线性历史记录没有这样的等价物,您无论如何都可以执行此命令来获取当前分支的提交数量:

git log --oneline | wc -l

这就是我的一位团队成员用来生成构建脚本中使用的构建编号的方法。

构建编号的目的是简化获取给定构建的源代码的过程。您可以使用
git show-s--pretty=格式:%h
来获取唯一标识版本的sha1编号,以便任何开发人员都可以在他的存储库中签出它

但是,sha1不是递增数,在大多数情况下,即使使用其他VCS也不可能实现。如果您希望实现sha1,则最好引入连续集成系统(例如Jenkins)它将以增量方式对构建进行编号,并为这些编号创建标记。在这种情况下,它的增长将更为温和,因为CI通常不会构建每个提交


此外,所提到的git descripe在生成好的版本名方面做得非常好。

将允许您构建任何ID,YYYYMMDD-N(其中N是此日期的提交计数器)可能是一个不错的选择

您刚刚用“非线性历史”引起了我的注意,我刚刚意识到这3个标准是[我认为]遇到了非线性历史的svnversion。但我从来没有依赖过这一点,因为比较一篇文章和两个独立的分支是没有用的。如果我对所有文章都在同一分支上的问题添加了一个约束,那么这个答案现在正确吗?是的,是的。我没有完全理解你所说的文章的意思,但在我们使用它的方式中,通过保持我们的构建只从一个特定的分支开始,它为我们做了这项工作。我添加了一条关于我所说的文章的注释,有时是这个,有时是那个。如果它在修订控制下,那么它就是一篇修订控制的文章。我刚刚使用
git svn
尝试过它,它得到的数字比svn报告的数字要低,所以我可能没问题f仅使用git。但使用svn会产生不一致的结果。如果它给出相同的数字就好了。
git log--oneline | wc-l'给出了
689
svversion`相同存储库给出了
699
(git使用svn repo的本地克隆:使用了
git svn clone-s$url
)来进行本地克隆。)