- 主题:如何在git仓库中找到一份代码的commit ID?
比如有一份代码,没有了版本信息,删掉了.git目录。知道它来自于某个巨大的git仓库,如何确定这份代码在git仓库中的commit ID?如果仓库是线性历史的话,二分法很容易找到,然而仓库经过很多人长时间分支提交合并早都不是线性历史了。
#发自zSMTH@Note 8 Pro暖手宝
--
FROM 111.18.134.*
这份代码是没有版本信息的,也不知道它的commit id是什么,所以列出仓库中所有com
mit id以后并不知道要grep什么。
【 在 lvsoft 的大作中提到: 】
: git rev-list --all | xargs git grep <expression>
--
FROM 222.90.31.*
这个区分度真不好找,因为代码是个相当庞大的目录树。
主要还是多次分支合并造成的历史不线性,否则二分法很容易找到。
【 在 lvsoft 的大作中提到: 】
: git grep是在提交的版本的内容中grep。
: 你在代码里找一段比较有区分度的贴进去。
--
FROM 222.90.31.*
某厂家fork的OpenOCD代码,实现了他们芯片的驱动,还没有开源。我偶然得到了一份,
当然是没有log信息的。我想知道他们是从OpenOCD哪个版本fork的,当然最简单的方法
是直接问问他们。
国内厂家开源一般都是丢一份没有log信息的代码压缩包出来。
【 在 lvsoft 的大作中提到: 】
: 什么意思?
: 就是说你有个文件,要找到哪个历史版本中跟它完全一样是么?
: 那岂不是穷举下就行了。
: ...................
--
FROM 222.90.31.*
心理活动过于多了,看上贴。
【 在 DoorWay 的大作中提到: 】
: 把开源抄成闭源了吧,这是,
: 又没维护好日志信息。抄的人估计还是“架构师”、CTO?
: 他给大老板一演示现在换你擦屁股,有bug了改不掉了?哈哈哈
: ...................
--
FROM 222.90.31.*
差不多就是这样,因为用RISC-V芯片的时候遇到一个问题要用OpenOCD来定位,平时我是
不用这玩意的。结果他们开发工具链里那个OpenOCD有bug,怎么搞都不行,跟原厂反馈
,他们搞了好久没搞定,后来把OpenOCD源代码给我了,看了下很快就找到原因了。
现在RISC-V的问题解决了,暂时也不需要OpenOCD了,不过以后可能要用OpenOCD来做一
些自动化的工作,还是得有一个可靠的版本,就研究了下他们改过的代码。他们改过的
部分整体来说还是相当乱的,达不到上游的代码水平,好处是他们对自己的硬件熟悉。
这部分代码如果能修改以后接近上游代码水平,我会和他们沟通并且开源出来,甚至提
交到OpenOCD上游让官方来维护。
【 在 lvsoft 的大作中提到: 】
: spadger你可能不熟,他就是资深爱好者,而且他本人也是经常贡献代码反哺上游的。
: 我估计他大概率就是自己用了某款国产芯片,遇到问题然后想修bug。
: 硬件行业跟软件区别很大的,开源共享的精神和实践都比较匮乏。
: ...................
--
FROM 222.90.31.*
svn强制线性历史,确实查log更方便啊。
【 在 lvsoft 的大作中提到: 】
: 没事,一回生二回熟。
: spadger他发的这个帖子我也能嗅到一丝丝恶意的味道。
: 他心里肯定是想说svn更好~
: ...................
--
FROM 222.90.31.*
昨天还有个比较搞笑的事情。
之前我会把使用某些芯片遇到的芯片硬件bug和解决方法写成文章放到B乎上(国内厂家
绝大部分是没有勘误表的),昨天代理商的朋友打电话给我说原厂的人看到了,说希望
修改措辞,不能说是“bug”,要说是“问题”,好吧,其实也没啥,问题就问题吧。好
比“衰退”不让说要说“负增长”,“裁员”不让说要说“毕业”。真实搞笑。
【 在 lvsoft 的大作中提到: 】
: 没事,一回生二回熟。
: spadger他发的这个帖子我也能嗅到一丝丝恶意的味道。
: 他心里肯定是想说svn更好~
: ...................
--
FROM 222.90.31.*
mt76xx开源驱动已经吊打闭源驱动了?我当时玩MT7620和MT7621的时候开源驱动还是一
言难尽,现在还是用闭源驱动。
【 在 adoal 的大作中提到: 】
: 想起MTK的Linux WiFi驱动问题……MTK原厂懂自己的芯片,但对Linux内核不够熟悉,
: 社区开发者熟悉内核但摸起芯片来不得要领,于是很长时间内开源的mt76驱动很烂,
: 厂家闭源驱动好一些但也烂……直到有一天发哥不知怎么想通了,让自己的工程师
: ...................
--
FROM 222.90.31.*
svn是个带历史的文件系统,它的trunk,branches,tags都只是个目录而已,你这样理
解就豁然开朗了。
【 在 eematlab 的大作中提到: 】
: 我们做硬件开发是用svn的, 基本上从华为或者大疆出来的人都是用这个, 但svn的问题是过于简单了,很多功能没法满足,比如我要在原环境中加上对后仿的支持, 开发完后要给另外几个人先测试一下再发布, svn没有像git一样的分支, 只能硬拷贝给其他同事。
: 发自「今日水木 on PCT-AL10」
--
FROM 222.90.31.*