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

发布于:2025-06-11 ⋅ 阅读:(35) ⋅ 点赞:(0)

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

上一篇我们讲了

        这一篇我们开始讲 

目录

一、背景

二、:差异提交对比

    2.1:Camera相关仓库

    2.2 :单个仓库差异提交

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

      2.2.2  指定文件的详细差异

      2.2.3 显示所有文件差异

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

      2.2.5 查看release和master所有差异点

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

      2.2.7 显示提交在哪个分支

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

    2.3 :多个仓库差异提交

    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 查看两个版本差异代码文件细节

:~/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  指定文件的详细差异

~/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中多提交了哪些内容,反着写显示效果完全不一样。

:~/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,不显示内容。

~/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等等方面评估。

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

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

下一篇讲解