Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Bisecting Was: Referencing bug reports in git
Date: Wed, 12 Aug 2015 07:21:35
Message-Id: pan$d171d$72b93fda$75b7484$bdadafa9@cox.net
In Reply to: Re: [gentoo-dev] Re: Referencing bug reports in git by hasufell
1 hasufell posted on Tue, 11 Aug 2015 13:58:20 +0200 as excerpted:
2
3 > In addition, we just took the freedom to add the clause "all commits
4 > must be repoman-valid":
5 > https://wiki.gentoo.org/index.php?
6 title=Gentoo_git_workflow&diff=352978&oldid=352858
7 >
8 > That will be necessary too for the CI work mgorny is doing and will also
9 > make bisecting and cherry-picking easier.
10
11 The mention of bisect got me thinking... I'm not exactly sure I'm wording
12 this right, but hopefully the question is clear enough...
13
14 What are the practical implications of and reasons for doing a bisect, on
15 a package-tree repo, where it's typically the out-of-tree package sources
16 where most functionality-bisection would happen, and in-tree commits tend
17 to result in atomic package updates, or at least atomic USE flag, etc,
18 changes on a package?
19
20 The typical reason for a bisect is to find the commit where a bug
21 originated, but that's upstream package/project bisects. I don't quite
22 see how that maps to distro package tree repo bisects, as it seems to me
23 there's nothing really to bisect -- problems should be with specific
24 package versions or with USE flag or similar changes within an ebuild/
25 eclass, and it seems to me that's known along with awareness of the
26 problem in the first place, leaving no reason to bisect to find the
27 problem.
28
29 Tho arguably eclass change issues are an exception, and bisectable in the
30 usual sense for the usual purpose. Actually, that could make
31 troubleshooting eclass updates MUCH simpler than it was before. Luckily,
32 at least I as a user didn't end up with too many direct eclass issues to
33 troubleshoot.
34
35 Tho I can definitely think of a non-traditional use for bisect. While I
36 update my workstation more or less weekly, I updated my 32-bit
37 netbook[1] far less frequently, every year or two. It occurs to me that
38 using git bisect to automate working out the resulting update issues
39 might be far easier than some of the manual tricks and workaround I used
40 to end up doing, to finally get an updated to current, working system
41 once again. Bisect start, immediately declare bisect bad, inner looping
42 until I got to about a three-month update, update to it, bisect reset,
43 outer-looping on the bisect to another 3-4 month update... until I was
44 caught up. Of course one can't go back past our current switch to git,
45 but in five years, one could in theory pull the old laptop out that was
46 last updated yesterday, and roll back gentoo's now five-years-future tree
47 four years and nine months, and start the update process, ultimately
48 bringing it upto date without starting with a new stage tarball install,
49 as would have been the only really feasible pre-git alternative for a
50 five-year-outdated system. Not that a new stage tarball wouldn't be
51 faster after five years in any case, but at least the incremental update-
52 in-place should now be possible.
53
54 ---
55 [1] 32-bit netbook: Now gone and not yet replaced, but I intend to get
56 another, tho amd64 this time so I can mostly build once for both, one for
57 three if I setup an amd64-based router as I intend to as well, and
58 hopefully avoid the year-plus update period issue as I can just binpkg-
59 update after the first one.
60
61 --
62 Duncan - List replies preferred. No HTML msgs.
63 "Every nonfree program has a lord, a master --
64 and if you use the program, he is your master." Richard Stallman

Replies

Subject Author
Re: [gentoo-dev] Bisecting Was: Referencing bug reports in git Jason Zaman <perfinion@g.o>