相机camera开发之差异对比核查二:测试机和对比机的差异提交对比

【关注我,后续持续新增专题博文,谢谢!!!】

上一篇我们讲了:

这一篇我们开始讲:

目录

一、背景

二、:差异提交对比

2.1:Camera相关仓库

[2.2 :单个仓库差异提交](#2.2 :单个仓库差异提交)

[2.2.1 查看两个版本差异代码文件细节](#2.2.1 查看两个版本差异代码文件细节)

[2.2.2 指定文件的详细差异](#2.2.2 指定文件的详细差异)

[2.2.3 显示所有文件差异](#2.2.3 显示所有文件差异)

[2.2.4 查看release中比master中多提交了哪些内容](#2.2.4 查看release中比master中多提交了哪些内容)

[2.2.5 查看release和master所有差异点](#2.2.5 查看release和master所有差异点)

[2.2.6 查看以git log的方式展示差异](#2.2.6 查看以git log的方式展示差异)

[2.2.7 显示提交在哪个分支](#2.2.7 显示提交在哪个分支)

[2.2.8 查看release中比master中多的提交,只显示commitid,不显示内容](#2.2.8 查看release中比master中多的提交,只显示commitid,不显示内容)

[2.3 :多个仓库差异提交](#2.3 :多个仓库差异提交)

[2.4 :对差异提交进行评估](#2.4 :对差异提交进行评估)


一、背景

当一个项目启动后,最小系统跑起来不久,会进入正式开发阶段,这时开发策略和测试策略都会进行筹备,一个重要的参考对象,即参考机。测试机各种测试都会与参考机进行对比。那么对于开发者而言,我们需要核查参考机和开发测试机之间的哪些差异性呢?

二、:差异提交对比

2.1:Camera相关仓库

Camera仓库一般涉及: APP,HAL,kernel,framework四层。如下类似仓库

#Camera APP(对应项目仓库)

development/samples/browseable/Camera2Basic Camera2Basic
#Camera HAL

vendor/qcom/proprietary/camx camx

vendor/qcom/proprietary/chi-cdk chi-cdk

vendor/qcom/proprietary/camx-lib-stats camx-lib-stats

vendor/qcom/proprietary/camx-api camx-api

vendor/qcom/proprietary/camx-common camx-common

hardware/interfaces interfaces

hardware/libhardware libhardware
# kernel

vendor/qcom/opensource/camera-kernel camera-kernel
# frameworks

vendor/oplus/frameworks/cameraservice cameraservice

frameworks/av/services/camera/libcameraservice libcameraservice

frameworks/av/camera cameraserver

frameworks/base/core/java/android/hardware/camera2 camera2

2.2 :单个仓库差异提交

一般如果Android 13升级到Android 14的话,可能有些仓库并没有差异提交,如kernel仓库。其他仓库的差异提交,可以参考单个仓库的差异提交核查方式:

2.2.1 查看两个版本差异代码文件细节

diff 复制代码
:~/qcom/hal/mm-camerasdk$ git diff r2s/sm8250/master  r2s/sm8250/release --stat
 api/common/chituningmodeparam.h                             |      3 +-
 api/stats/chistatspropertydefines.h                         |      1 -
 core/chifeature2/chifeature2base.cpp                        |      9 +-
 core/chifeature2/chifeature2base.h                          |      1 -
 core/chifeature2/chifeature2requestobject.cpp               |      5 +-
 core/chiframework/chxextensionmodule.h                      |      6 +-
 core/chiofflinepostproclib/chiofflinepostprocencode.cpp     |      9 +-
 core/chiusecase/chxadvancedcamerausecase.cpp                |     11 +-
 api/stats/chistatspropertydefines.h                |     2 -
 core/chifeature2/chifeature2base.cpp               |     7 -
 core/chifeature2/chifeature2base.h                 |     1 -
 core/chifeature2/chifeature2requestobject.cpp      |     2 +-
 core/chiusecase/chxadvancedcamerausecase.cpp       |    11 +-
 core/chiusecase/chxadvancedcamerausecase.h         |     2 +-
 core/chiusecase/chxusecasemc.cpp                   |    38 +-
 core/chiusecase/chxusecasemc.h                     |     1 -
 .../chifeature2graphselector.cpp                   |     2 -
 .../kona/chifeature2graphselectoroem.cpp           |    12 +
 .../feature2/chifeature2rt/chifeature2realtime.cpp |     2 -
 .../segments/common/RealTimeFeature.xml            |    42 -
 core/chifeature2/chifeature2base.cpp    |    64 -
 .../chifeature2/chifeature2baseDeclaration.h  |     5 -
 core/chifeature2/chifeature2wrapper.cpp |    37 +-
 .../chifeature2wrapperDeclaration.h           |     5 +-
 .../core/chiframework/chxextensionmodule.cpp  |    16 +-
 core/chiframework/chxextensionmodule.h  |     2 -
 core/chiusecase/BackseatDriver.cpp           |     7 +
 core/chiusecase/OPMetaManager.cpp            |     1 -
 core/chiusecase/chxusecasemc.cpp        |     9 +
 core/chiusecase/chxusecasemc.h          |     8 +
 .../chifeature2graphselector.cpp              |    32 +-
 .../chifeature2graphselector.h                |     2 -
 .../chifeature2rt/chifeature2realtime.cpp     |    34 +-
 .../chifeature2realtimeDeclaration.h          |     7 +-
 oem/qcom/node/arceis/eiscustom.cpp      |     3 -
 oem/qcom/node/satcustom/satcustom.cpp   |   135 +-

2.2.2 指定文件的详细差异

diff 复制代码
~/qcom/hal/mm-camerasdk$ git diff r2s/sm8250/master  r2s/sm8250/release api/common/chituningmodeparam.h  
diff --git a/api/common/chituningmodeparam.h b/api/common/chituningmodeparam.h
index 1b8476be283..fdb3c6cddda 100755
--- a/api/common/chituningmodeparam.h
+++ b/api/common/chituningmodeparam.h
@@ -43,7 +43,8 @@ enum class ChiModeUsecaseSubModeType
     Video    = 2,
     ZSL      = 3,
     Liveshot = 4,
-    IDEALRAW = 5
+    SnapshotReprocess = 5,
+    IDEALRAW = 6

2.2.3 显示所有文件差异

git diff r2s/sm8250/master r2s/sm8250/release

2.2.4 查看release中比master中多提交了哪些内容

git diff r2s/sm8250/master...r2s/sm8250/release 查看release中比master中多提交了哪些内容,反着写显示效果完全不一样。

diff 复制代码
:~/qcom/hal/mm-camerasdk$ git diff r2s/sm8250/master..r2s/sm8250/release   
diff --git a/api/common/chituningmodeparam.h b/api/common/chituningmodeparam.h
index 1b8476be283..fdb3c6cddda 100755
--- a/api/common/chituningmodeparam.h
+++ b/api/common/chituningmodeparam.h
@@ -43,7 +43,8 @@ enum class ChiModeUsecaseSubModeType
     Video    = 2,
     ZSL      = 3,
     Liveshot = 4,
-    IDEALRAW = 5
+    SnapshotReprocess = 5,
+    IDEALRAW = 6
 };

:~/qcom/hal/mm-camerasdk$ git diff r2s/sm8250/release..r2s/sm8250/master                    
diff --git a/api/common/chituningmodeparam.h b/api/common/chituningmodeparam.h
index fdb3c6cddda..1b8476be283 100755
--- a/api/common/chituningmodeparam.h
+++ b/api/common/chituningmodeparam.h
@@ -43,8 +43,7 @@ enum class ChiModeUsecaseSubModeType
     Video    = 2,
     ZSL      = 3,
     Liveshot = 4,
-    SnapshotReprocess = 5,
-    IDEALRAW = 6
+    IDEALRAW = 5
 };

2.2.5 查看release和master所有差异点

git diff r2s/sm8250/master...r2s/sm8250/release 查看release和master所有差异点

2.2.6 查看以git log的方式展示差异

git log r2s/sm8250/master...r2s/sm8250/release 查看以git log的方式展示差异

2.2.7 显示提交在哪个分支

git log -lefg-right r2s/sm8250/release...r2s/sm8250/master 显示提交在哪个分支上。

2.2.8 查看release中比master中多的提交,只显示commitid,不显示内容

git rev-list r2s/sm8250/master...r2s/sm8250/release 查看release中比master中多的提交,只显示commitid,不显示内容。

diff 复制代码
~/qcom/hal/mm-camerasdk$ git rev-list r2s/sm8250/master...r2s/sm8250/release
e81c1b889a88c2af87862a913959715948cc90d5
bed8b9a51f31daa64e6f2e8d6fa9cc86b86e2469
33165247a867b5368bac80ca16da3d38035c8395
b00f6fd992845614329c46b3a3b422da17c5d5c4
02c5bb7c5f4c618ef908e0216a1529a47b02f1fb
3b41261706d2e77291d41695c1e773dd6789767c
fe175c4e9beaaca4b447b15f2931a29c3fc39973
e05d6d700511024ea71d75e20077d2d4fe5d3df4
91cdcfa8f293035f88c92d7fd4371c097e1678b6
a2dbcd9f3cf1e60d1bf651acf6eb94ebfd7e2708

除了gerrit有Change-Id,切了分支也不会变化,但Commit id,切了分支后就变化了,所以对比commitid也无法对比差异。可以git log -1000 > master.txt ,再 git log -1000 > release.txt,然后对比工具对比master.txt和 release.txt发现最下面的都一样,最上面存在合入顺序上的差异,以及差异提交。可以把message里的一行描述grep出来进行对比。也可以把这一行message复制到excel里,出现两次就是都存在的提交,出现1次就是独有的提交。

1:共有的

2:master独有的

3:release独有的

2.3 :多个仓库差异提交

通过对单个仓库的差异提交check,自己掌握自己熟练的方式即可。多个仓库将单个仓库的差异汇总即可。

2.4 :对差异提交进行评估

有了两个版本的差异提交后,我们可以对每个差异提交的影响范围进行评估,如功能、性能、内存占用、功耗、XTS等等方面评估。

当测试机出现莫名其妙的问题时,就可以判断是否被差异提交引入,有效快捷的分析问题。

【关注我,后续持续新增专题博文,谢谢!!!】

下一篇讲解: