A Method of Breaking Git
Elliott Mitchell
ehem+openwrt at m5p.com
Sat Oct 28 22:37:53 PDT 2023
On Sun, Oct 29, 2023 at 07:25:38AM +0200, Stijn Tintel wrote:
> On 24/10/2023 15:25, Christian Marangi wrote:
> > On Tue, Oct 24, 2023 at 02:21:35PM +0200, Bjørn Mork wrote:
> >> Christian Marangi <ansuelsmth at gmail.com> writes:
> >>
> >>> Anyway I have also found this [1]... if it does actually works, it might be
> >>> THE solution to our specific problem. Wonder if someone can test it on a
> >>> sample repository.
> >>>
> >>> [1] https://devblogs.microsoft.com/oldnewthing/20190919-00/?p=102904
> >> Nice! Seems to work. Tried this in an almost uptodate OpenWrt main
> >> branch:
> >>
> >> git checkout -b dup
> >> git mv target/linux/ramips/mt7621/config-5.15 target/linux/ramips/mt7621/config-6.1
> >> git commit -s -m 'create config-6.1 based on config-5.15'
> >> git checkout HEAD~ target/linux/ramips/mt7621/config-5.15
> >> git commit -s -m 'restore config-5.15'
> >> git checkout -
> >> git merge --no-ff dup
> >>
> >> and ended up with
> >>
> >> bjorn at canardo:/usr/local/src/openwrt$ git log --oneline --follow -n 5 target/linux/ramips/mt7621/config-5.15
> >> 6e91f43c99a7 (dup) restore config-5.15
> >> 5a742b351365 create config-6.1 based on config-5.15
> >> cd2b74e01e8d ramips: mt7621: disable highmem support and remove highmem offset patch
> >> 39b2251cd972 treewide: remove CONFIG_FRAME_WARN from kernel configs
> >> dc38199b96ee ramips/mt7621: disable the cpufreq driver
> >>
> >> bjorn at canardo:/usr/local/src/openwrt$ git log --oneline --follow -n 5 target/linux/ramips/mt7621/config-6.1
> >> 5a742b351365 create config-6.1 based on config-5.15
> >> cd2b74e01e8d ramips: mt7621: disable highmem support and remove highmem offset patch
> >> 39b2251cd972 treewide: remove CONFIG_FRAME_WARN from kernel configs
> >> dc38199b96ee ramips/mt7621: disable the cpufreq driver
> >> 958fdf36e35c generic: mt7530: backport support for the MT7988 built-in switch
> >>
> >>
> >> Best solution so far
> >>
> > Yep only drawback is the additional commit and the merge commit but this
> > might be the only case where we can accept a merge commit. Might be
> > worth to document this in the wiki if we take a decision on this.
> >
> There's another big drawback: it breaks git bisect. In the example
> above, if you end up on commit 5a742b351365, the target will try
> building kernel 5.15, but there will be no config-5.15.
This can happen even without the use of this technique. `git bisect` was
designed to handle this type of situation. Simply use `git bisect skip`
and everything works.
--
(\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/)
\BS ( | ehem+sigmsg at m5p.com PGP 87145445 | ) /
\_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
More information about the openwrt-devel
mailing list