我想得到我的Git存储库的提交数量,有点像SVN版本号.
目标是将其用作唯一的递增构建号.
我目前在Unix/Cygwin/msysGit上喜欢这样:
git log --pretty=format:'' | wc -l
Run Code Online (Sandbox Code Playgroud)
但我觉得这有点像黑客.
有没有更好的方法呢?如果我真的不需要wc甚至是Git 会很酷,所以它可以在裸Windows上工作.只需读取文件或目录结构......
情况:
我有一个python库,由git控制,并与distutils/setuptools捆绑在一起.我想基于git标签自动生成版本号,包括for setup.py sdist和alike命令,以及库本身.
对于我可以使用的第一个任务git describe或类似的解决方案(请参阅 如何在我的包中的setup.py(setuptools)中定义版本?).
例如,当我在标签'0.1'并且要求'setup.py sdist'时,我得到'mylib-0.1.tar.gz'; 或'mylib-0.1-3-abcd.tar.gz'如果我在标记后更改了代码.这可以.
问题是:
当我想让这个版本号可用于库本身时,问题出现了,所以它可以将它作为'mylib/0.1-3-adcd'发送到User-Agent HTTP头中.
如果我添加setup.py version命令,如何在我的包中获得setup.py(setuptools)中定义的版本?,然后在制作标签后生成此version.py,因为它使用标记作为值.但是在这种情况下,我需要在制作版本标记之后再进行一次提交,以使代码保持一致.反过来,这需要一个新标签进行进一步捆绑.
问题是:
如何打破这个依赖圈(generate-commit-tag-generate-commit-tag -...)?
我有一个GCC项目,并希望自动添加构建日期和修订号(从git)的定义到我的源.最好的方法是什么?
我的目标很简单,能够在启动时做这样的事情:
printf("Test app build on %s, revision %d", BUILD_DATE, REVISION)
Run Code Online (Sandbox Code Playgroud)
对于构建我使用make与简单的Makefile.inc,而不是autoconf或类似的东西.
我们如何在每次推送时使用git更改版本(每个+1)?
例如我有一个2 php文件
libs/lib1.php
libs/lib2.php
Run Code Online (Sandbox Code Playgroud)
在每个标题上通常都有一些信息
/**
* LIB1.PHP
* this libs does something like this
* and that this is a doc for you
* @version 145
* @todo something todo
* @author DAMS
*/
/**
* LIB2.PHP
* this libs does something like this
* and that this is a doc for you
* @version 445
* @todo something todo
* @author DAMS
*/
Run Code Online (Sandbox Code Playgroud)
每次推送时我们可以搜索并添加+1版本吗?
我是一个具有UNIX SCCS和Microsoft Visual SourceSafe经验的Git newbee.
在SCCS中,每个文件都有一个版本(I%),它由Release(%R),Level(L%),Branch(%B)和Sequence(S%)组成.%I等于R%.%LB%.%S,好吗?这些被称为ID关键字.
目的是在检查它们之前在源代码中插入这些ID关键字,然后当您将它们签出为只读(不更改)时,它会将它们转换为它们的版本号.例如:
printf("Version s \n","%I");
...会变成,
printf("版本%s \n","1.4.6.2");
哪个会打印,
版本1.4.6.2
SCCS逐个文件地跟踪版本,并在每次签入时递增它们.
Git中有什么接近的吗?
有没有办法在每次提交时在文件中包含git commit哈希?我只能在归档期间找到如何执行此操作,但我无法找到如何为每次提交执行此操作.
我正在使用git作为修订控件进行科学编程,因此这种功能对于重现性原因非常有用(即,git hash会自动包含在所有结果文件和数字中).
我们将把我们的存储库从Subversion转换为Git,但是希望能够保留SVN修订版号,因为bug跟踪器中的注释会定期引用它.
我们将使用John Albin博客git svn clone中描述的流程.
有没有办法在提交消息中包含修订号?我宁愿在克隆期间这样做,但后处理步骤是可以接受的.
是的,我知道git svn find-rev,但这需要SVN存储库,用户可以通过网络访问它.