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 |