Repository navigation
Commit b3f36ba
committed
Avoid stashing changes when all changes are staged
It was suggested in #135 that a potential way to avoid unnecessary file
change detection and general stashing woes would be to stash changes
only when there were unstaged changes that needed to be excluded from
the run.
This presents a nice optimization that I wish we had considered long
ago. We can simplify the logic now that we see the purpose of this
feature a little more clearly: stash only when you need to.
Issue #669 raised an interesting point about the difficulty to detect if
a stash entry was created, so we modified the tests to check if a method
call was made. This isn't great as it's peeking deep into the
implementation, so we added some additional tests that ensured the
methods in question actually existed. Not perfect, but gives us some
confidence in the implementation.
While here, we were able to:
* Extract the stashing logic into a separate `stash_changes` helper
method.
* Simplify the `cleanup_environment` logic to just use whether changes
were stashed in order to decide whether to restore.
Closes #669.1 parent 985873e commit b3f36ba
2 files changed
Lines changed: 74 additions & 35 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
69 | 57 | | |
70 | | - | |
| 58 | + | |
| 59 | + | |
71 | 60 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | 61 | | |
76 | 62 | | |
77 | 63 | | |
| |||
82 | 68 | | |
83 | 69 | | |
84 | 70 | | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | 71 | | |
| 72 | + | |
91 | 73 | | |
92 | 74 | | |
93 | 75 | | |
94 | 76 | | |
95 | 77 | | |
96 | 78 | | |
97 | | - | |
98 | 79 | | |
99 | 80 | | |
100 | 81 | | |
| |||
140 | 121 | | |
141 | 122 | | |
142 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
143 | 145 | | |
144 | 146 | | |
145 | 147 | | |
| |||
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
183 | 182 | | |
184 | 183 | | |
185 | 184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
161 | 180 | | |
162 | 181 | | |
163 | 182 | | |
| |||
319 | 338 | | |
320 | 339 | | |
321 | 340 | | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
322 | 362 | | |
323 | 363 | | |
324 | 364 | | |
| |||
0 commit comments