On Thu, Dec 18, 2025 at 12:42:01PM -0500, Bruce Ashfield via 
lists.yoctoproject.org wrote:
> It was a struggle, but it is exactly why I mentioned above that I won't do the
> merge using -Xtheirs.
> 
> The history was riddled with merges, etc, and what we want in a scenario
> like this is just the new patches, cleanly on top. So after fighting with git
> for
> a while, I did isolate the 480-ish patches and performed a cherry-pick on
> them to a clean branch on top of the latest rt merged into the existing ti-soc
> branch.
> 
> There were about 10 or 15 empty changes which I skipped, and one
> conflict. Which was an include in a .dtsi file which I kept.
> 
> I've pulled that branch into the rt ti-soc branch and pushed it. I could very
> easily have missed something, so check that branch and send me patches
> on top for what I got wrong, or missed.

Thank you for handling this, Bruce.

While `-Xtheirs` may appear inelegant in typical merge scenarios, it should not
introduce any issues in this specific case. I will provide a more detailed
explanation below.

We also have an alternative approach to avoid this type of conflict: instead of
applying individual patches separately to the BSP standard and RT branches,
we could merge the BSP standard branch directly into the BSP RT branch. 
Personally,
I prefer this method.

Let me explain why we encounter these false merge conflicts, which should not 
exist
in the first place. Using the `ti-soc` branch as an example: when these BSP 
branches
were initially created, the BSP changes (715 patches) were merged separately 
into
the BSP standard and RT branches. This was ideal, as each BSP patch was applied 
to
both branches with a unique commit ID.
- On the standard branch:
  commit 924dc4f8fe11
  Merge: 1cf1ca9467d8 ac12549ec3d7
  Author: Bruce Ashfield <[email protected]>
  Date:   Tue Jun 10 22:13:03 2025 -0400
  
      Merge branch 'v6.12/standard/ti-sdk-6.12/ti-soc-merge' into 
v6.12/standard/ti-soc

- On the RT branch:
  commit a88b69f237ec
  Merge: 7e0aff00ea56 ac12549ec3d7
  Author: Bruce Ashfield <[email protected]>
  Date:   Tue Jun 10 22:15:08 2025 -0400
  
      Merge branch 'v6.12/standard/ti-sdk-6.12/ti-soc-merge' into 
v6.12/standard/preempt-rt/ti-soc


However, during the development of our BSP, we identified several bugs and 
submitted
fixes as individual patches rather than through pull requests. These patches 
were
subsequently applied onto the BSP's standard and RT branches, respectively.
From a git perspective, the same patch applied to both branches appears as 
entirely
distinct and unrelated commits. Below are examples of such patches for this BSP:

- On the standard branch:
  khao@pek-lpggp6:~/linux/lysm/v6.12/ti (lysm/v6.12/ti)$ git log --oneline 
--no-merges ^924dc4f8fe11 ^d8b5572e17e1 d4e26044d179
  5c6282874555 media: wave5: Fix device cleanup order to prevent kernel panic
  d2db27c49077 media: wave5: Fix kthread worker destruction in polling mode
  33a3fdbd3530 media: wave5: Fix PM runtime usage count underflow
  8c3e6d7c52ef Revert "PENDING: arm64: dts: ti: k3-am62a7-sk: Add bootph flag 
for eMMC"
  d9dee4847e7d am65-cpts: Fix "BUG: assuming non migratable context" in 
ptp_classify_raw
  e1e3732057de arch: arm64: dts: ti: k3-j721e-vision-apps.dtso: drop deprecated 
ti-serdes.h include
  ae6c7cd674d6 spi: cadence-quadspi: revert to devm_pm_runtime_enable() and 
remove manual disable
  1cad3d99af11 arm64: dts: ti: Add DTB overlays for vision apps and edgeai apps
  bde03505abec arm64: dts: ti: k3-j721e-common-proc-board: Remove duplicate 
OSPI1 status property

- On the RT branch:
  khao@pek-lpggp6:~/linux/lysm/v6.12/ti-rt (lysm/v6.12/ti-rt)$ git log 
--oneline --no-merges ^a88b69f237ec ^8e83a6359c02 c91ff735f371
  6044d9380d4c media: wave5: Fix device cleanup order to prevent kernel panic
  50a1a1f060f9 media: wave5: Fix kthread worker destruction in polling mode
  398a47cccc77 media: wave5: Fix PM runtime usage count underflow
  4aaaa3778f7b Revert "PENDING: arm64: dts: ti: k3-am62a7-sk: Add bootph flag 
for eMMC"
  8aa1c1df1798 am65-cpts: Fix "BUG: assuming non migratable context" in 
ptp_classify_raw
  bfc342ce3829 arch: arm64: dts: ti: k3-j721e-vision-apps.dtso: drop deprecated 
ti-serdes.h include
  28b4fb87d17b spi: cadence-quadspi: revert to devm_pm_runtime_enable() and 
remove manual disable
  fad73e41e9a1 arm64: dts: ti: Add DTB overlays for vision apps and edgeai apps
  d700524f0914 arm64: dts: ti: k3-j721e-common-proc-board: Remove duplicate 
OSPI1 status property

Later, when introducing another set of changes to this BSP, we encounter false
merge conflicts. This occurs because the earlier patches lack unique commit IDs,
preventing git’s merge strategy from accurately identifying a common base.
As a result, git incorrectly assumes conflicts during a three-way merge.
In reality, the files flagged as conflicting are identical across both the
standard and RT branches. This explains why we can resolve these conflicts
simply by using the '-Xtheirs'.

Thanks,
Kevin

Attachment: signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#16071): 
https://lists.yoctoproject.org/g/linux-yocto/message/16071
Mute This Topic: https://lists.yoctoproject.org/mt/116824924/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to