2022-07-14, 05:04
I am at the point where I want to submit a pull request. I have done this for several addons, but I was the only one doing development and the process was a bit different. I can do git basics, but there is still seems like a lot of voodoo. (I have used SCM systems for many years, but even though I have used git for well over a year, I don't use it daily and I do baby things with it. I can reset Head, use multiple remote branches (origin & upstream) (to some degree). But there are soooo many different ways to do the same thing that I get quite lost trying to grasp how it really works.
I've tried following Kodi git-Fu reference. I'm still needing very explicit instructions and find myself having to guess what to do a lot. Anyway, where things go to hell is when I try rebasing and fetch from upstream. Each time I do I I get conflicts. Fine. But I find that I get the same conflicts and same mountain of merges to do even though I have done it before, committed and pushed my changes up. It is EXTREEMLY tedious. I have started over with a new branch. No help.
I was all excited today because I thought I got all of the way through and pushed my changes to origin. Now I tried to merge the last 6 commits:
bacher@biten$ git status
On branch UnicodeUtils
Your branch is up to date with 'origin/UnicodeUtils'.
nothing to commit, working tree clean
fbacher@biten$ pwd
/scratch/git/xbmc
fbacher@biten$ git fetch upstream
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 19 (delta 6), reused 9 (delta 2), pack-reused 0
Unpacking objects: 100% (19/19), 22.89 KiB | 1019.00 KiB/s, done.
From https://github.com/xbmc/xbmc
55cb6dfcf0..3868401d00 master -> upstream/master
fbacher@biten$ git rebase upstream/master
Auto-merging xbmc/windows/GUIMediaWindow.cpp
Auto-merging xbmc/video/VideoInfoScanner.cpp
Auto-merging xbmc/video/VideoDatabase.cpp
Auto-merging xbmc/utils/URIUtils.cpp
Auto-merging xbmc/utils/StringUtils.h
CONFLICT (content): Merge conflict in xbmc/utils/StringUtils.h
Auto-merging xbmc/utils/StringUtils.cpp
CONFLICT (content): Merge conflict in xbmc/utils/StringUtils.cpp
Auto-merging xbmc/settings/SettingsComponent.cpp
Auto-merging xbmc/settings/AdvancedSettings.cpp
Auto-merging xbmc/platform/android/media/decoderfilter/MediaCodecDecoderFilterManager.cpp
Auto-merging xbmc/platform/android/activity/XBMCApp.cpp
Auto-merging xbmc/network/upnp/UPnPInternal.cpp
Auto-merging xbmc/interfaces/legacy/Window.cpp
Auto-merging xbmc/interfaces/builtins/SkinBuiltins.cpp
Auto-merging xbmc/guilib/GUIWindow.cpp
Auto-merging xbmc/guilib/GUIControlFactory.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDSubtitles/webvtt/WebVTTHandler.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp
Auto-merging xbmc/addons/Skin.cpp
Auto-merging xbmc/GUIInfoManager.cpp
Auto-merging xbmc/FileItem.cpp
Auto-merging xbmc/Application.cpp
Auto-merging CMakeLists.txt
error: could not apply f61a31b769... Merge with V20-alpha1
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply f61a31b769... Merge with V20-alpha1
fbacher@biten$ git rebase --abort
The first CONFLICT was in StringUtils, which I have indeed made lots of changes (working on Unicode Turkic-I problem, etc.). But I have applied the same blasted changes over and over and over and over in git and somehow it still has a conflict. I don't know what I am doing wrong. I know that once I get past these conflicts that I have 19 or so more iterations of rebase --continues to do and I'll have some very familiar conflicts on each one. Tedious conflicts.
To speed things up I have gotten desperate enough when using my merge tool (Beyond Compare) I simply select every line and choose merge left, remove all conflicts and save. Once I am all done I can compare with my stable copy that I have been very careful maintaining.
I realize this is an insufficient description. Tomorrow I'll record my every step and decision point. I just don't have the energy or 3 hours to do it now. I'm hoping somebody will have some sage advice that will put me on the right track.
I've tried following Kodi git-Fu reference. I'm still needing very explicit instructions and find myself having to guess what to do a lot. Anyway, where things go to hell is when I try rebasing and fetch from upstream. Each time I do I I get conflicts. Fine. But I find that I get the same conflicts and same mountain of merges to do even though I have done it before, committed and pushed my changes up. It is EXTREEMLY tedious. I have started over with a new branch. No help.
I was all excited today because I thought I got all of the way through and pushed my changes to origin. Now I tried to merge the last 6 commits:
bacher@biten$ git status
On branch UnicodeUtils
Your branch is up to date with 'origin/UnicodeUtils'.
nothing to commit, working tree clean
fbacher@biten$ pwd
/scratch/git/xbmc
fbacher@biten$ git fetch upstream
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 19 (delta 6), reused 9 (delta 2), pack-reused 0
Unpacking objects: 100% (19/19), 22.89 KiB | 1019.00 KiB/s, done.
From https://github.com/xbmc/xbmc
55cb6dfcf0..3868401d00 master -> upstream/master
fbacher@biten$ git rebase upstream/master
Auto-merging xbmc/windows/GUIMediaWindow.cpp
Auto-merging xbmc/video/VideoInfoScanner.cpp
Auto-merging xbmc/video/VideoDatabase.cpp
Auto-merging xbmc/utils/URIUtils.cpp
Auto-merging xbmc/utils/StringUtils.h
CONFLICT (content): Merge conflict in xbmc/utils/StringUtils.h
Auto-merging xbmc/utils/StringUtils.cpp
CONFLICT (content): Merge conflict in xbmc/utils/StringUtils.cpp
Auto-merging xbmc/settings/SettingsComponent.cpp
Auto-merging xbmc/settings/AdvancedSettings.cpp
Auto-merging xbmc/platform/android/media/decoderfilter/MediaCodecDecoderFilterManager.cpp
Auto-merging xbmc/platform/android/activity/XBMCApp.cpp
Auto-merging xbmc/network/upnp/UPnPInternal.cpp
Auto-merging xbmc/interfaces/legacy/Window.cpp
Auto-merging xbmc/interfaces/builtins/SkinBuiltins.cpp
Auto-merging xbmc/guilib/GUIWindow.cpp
Auto-merging xbmc/guilib/GUIControlFactory.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDSubtitles/webvtt/WebVTTHandler.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
Auto-merging xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp
Auto-merging xbmc/addons/Skin.cpp
Auto-merging xbmc/GUIInfoManager.cpp
Auto-merging xbmc/FileItem.cpp
Auto-merging xbmc/Application.cpp
Auto-merging CMakeLists.txt
error: could not apply f61a31b769... Merge with V20-alpha1
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply f61a31b769... Merge with V20-alpha1
fbacher@biten$ git rebase --abort
The first CONFLICT was in StringUtils, which I have indeed made lots of changes (working on Unicode Turkic-I problem, etc.). But I have applied the same blasted changes over and over and over and over in git and somehow it still has a conflict. I don't know what I am doing wrong. I know that once I get past these conflicts that I have 19 or so more iterations of rebase --continues to do and I'll have some very familiar conflicts on each one. Tedious conflicts.
To speed things up I have gotten desperate enough when using my merge tool (Beyond Compare) I simply select every line and choose merge left, remove all conflicts and save. Once I am all done I can compare with my stable copy that I have been very careful maintaining.
I realize this is an insufficient description. Tomorrow I'll record my every step and decision point. I just don't have the energy or 3 hours to do it now. I'm hoping somebody will have some sage advice that will put me on the right track.