我正在使用基准测试环境在公司代码存储库的trunk的工作副本上运行性能测试。
我们有一个庞大的ant构建文件,用于管理整个测试过程(使用示例数据构建数据库;构建,部署和运行产品;构建,部署和运行研磨机和监视工具;对各种类型的信息进行采样)。在此过程中,有两个与SVN相关的步骤:
svn info
以获取本地工作副本的当前版本号(来自“当前版本为:输出中的12345行”,稍后将用于命名日志归档文件。svn info
,svn status
,svn diff
,将输出保存到日志文件 现在其他人想要基准测试的ant脚本也可以支持git。因此脚本应该检查它是svn还是git(这一步很简单),然后运行命令来相应地收集版本控制信息(与此步骤混淆)。
所以我的问题是:
git branch -v
吗? git remote -v
,git branch -v
,git log --max-count=1
,git status
,git diff
吗?git diff
生成可在git和svn中使用的diff文件,以及支持应用diff 的其他编辑器?感谢。
答案 0 :(得分:4)
主要区别是什么?
我应该使用什么来获取git中的修订版“number”?
git rev-parse HEAD
这会将HEAD
标记转换为修订版的哈希值。
git remote -v
,git branch -v
,git log --max-count=1
,git status
,git diff
是否足够?
我想这取决于你需要什么信息。这应涵盖svn info
,svn status
和svn diff
的大部分输出。
如何使用git diff生成可以在git和svn中使用的diff文件?
git diff -p > a.diff
将创建一个标准的统一差异。 Svn不以正常方式处理补丁(git通常可以读取svn生成的补丁)。这可能有助于您转换为svn补丁格式:Git format-patch to be svn compatible?
答案 1 :(得分:0)
关于发布部分的修订,git的常见做法是使用git tag -a x.x.x
和git describe
的组合
比如说,当您准备好标记构建时,可以执行git tag -a 1.0.0
,然后在提交另外5次提交后git push --tags
将标记推送到原始仓库,{{1} }将返回类似git describe
的内容,您可以将其用作版本字符串。