Commit f55de74
Copilot CI
Replay a winning fix through a three-way merge when the tree moved
Build 15098930 proved two independent fixes for #27332 on Windows, selected
one, and published neither. Between candidates the panel restores the tree;
by the time the winner was replayed, ItemsViewStyles.xaml no longer matched
its diff at line 82, strict `git apply` refused, and the phase reported "No
fix arms were run" and threw away ninety minutes of validated work.
This was not rare. Across the cached logs, 26 of the 94 runs that produced a
*passing* fix candidate died at exactly this line -- and every run that
failed to apply had a passing candidate to lose. It was the largest single
source of discarded work in the fix phase, and 20 distinct issues are
sitting on a reproduction and a fix that were both proven.
The old comment refused a merge because "guessing at a merge would measure
something else". That is true of fuzzy context matching; it is not true of
--3way, which reconstructs the preimage from the blob ids the diff already
carries and merges against that, and which reports failure instead of
inventing a resolution. The stronger argument is that the result is not
trusted either way: both arms still run, so a merge that landed the wrong
change cannot become a published fix -- it can only fail to reproduce.
Strict apply is still tried first and is still the normal path, so a clean
replay is byte-identical to before. Two consequences of --3way are handled
rather than inherited: a conflicted merge is not all-or-nothing, so the tree
is restored before returning (the reproduction is published from it), and a
successful merge lands staged because --3way implies --index, so the scope
is unstaged back to a plain working-tree edit.
Four mutants, all killed: removing the fallback, removing the restore,
leaving the merge staged, and reaching for the merge when apply succeeded.
Suite by explicit file list: 4037 passed / 35 failed, the same 35
pre-existing failures.1 parent 0663054 commit f55de74
2 files changed
Lines changed: 98 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10171 | 10171 | | |
10172 | 10172 | | |
10173 | 10173 | | |
| 10174 | + | |
| 10175 | + | |
| 10176 | + | |
| 10177 | + | |
| 10178 | + | |
| 10179 | + | |
10174 | 10180 | | |
10175 | 10181 | | |
10176 | 10182 | | |
| |||
10210 | 10216 | | |
10211 | 10217 | | |
10212 | 10218 | | |
10213 | | - | |
10214 | | - | |
| 10219 | + | |
| 10220 | + | |
| 10221 | + | |
| 10222 | + | |
| 10223 | + | |
| 10224 | + | |
| 10225 | + | |
| 10226 | + | |
| 10227 | + | |
| 10228 | + | |
| 10229 | + | |
10215 | 10230 | | |
10216 | 10231 | | |
10217 | 10232 | | |
| |||
10264 | 10279 | | |
10265 | 10280 | | |
10266 | 10281 | | |
| 10282 | + | |
| 10283 | + | |
10267 | 10284 | | |
| 10285 | + | |
10268 | 10286 | | |
10269 | 10287 | | |
10270 | 10288 | | |
10271 | 10289 | | |
| 10290 | + | |
| 10291 | + | |
| 10292 | + | |
| 10293 | + | |
| 10294 | + | |
| 10295 | + | |
| 10296 | + | |
| 10297 | + | |
| 10298 | + | |
| 10299 | + | |
| 10300 | + | |
| 10301 | + | |
| 10302 | + | |
| 10303 | + | |
| 10304 | + | |
| 10305 | + | |
| 10306 | + | |
| 10307 | + | |
| 10308 | + | |
| 10309 | + | |
| 10310 | + | |
| 10311 | + | |
| 10312 | + | |
| 10313 | + | |
| 10314 | + | |
| 10315 | + | |
| 10316 | + | |
| 10317 | + | |
| 10318 | + | |
| 10319 | + | |
| 10320 | + | |
| 10321 | + | |
| 10322 | + | |
| 10323 | + | |
| 10324 | + | |
| 10325 | + | |
| 10326 | + | |
| 10327 | + | |
| 10328 | + | |
| 10329 | + | |
| 10330 | + | |
| 10331 | + | |
| 10332 | + | |
10272 | 10333 | | |
10273 | 10334 | | |
10274 | 10335 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5044 | 5044 | | |
5045 | 5045 | | |
5046 | 5046 | | |
5047 | | - | |
5048 | | - | |
5049 | | - | |
5050 | | - | |
5051 | | - | |
| 5047 | + | |
| 5048 | + | |
| 5049 | + | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + | |
| 5053 | + | |
| 5054 | + | |
| 5055 | + | |
| 5056 | + | |
| 5057 | + | |
| 5058 | + | |
| 5059 | + | |
| 5060 | + | |
| 5061 | + | |
| 5062 | + | |
| 5063 | + | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
| 5067 | + | |
| 5068 | + | |
| 5069 | + | |
| 5070 | + | |
| 5071 | + | |
| 5072 | + | |
| 5073 | + | |
| 5074 | + | |
| 5075 | + | |
| 5076 | + | |
| 5077 | + | |
| 5078 | + | |
| 5079 | + | |
| 5080 | + | |
| 5081 | + | |
5052 | 5082 | | |
5053 | 5083 | | |
5054 | 5084 | | |
| |||
0 commit comments