Commit d6bb0fc
committed
revision: introduce --toplevel-branches
In large repositories which are served at central hubs (such as at
hosting forges), there tend to be huge numbers of refs, and even huge
numbers of branches. These branches are often of forms like
refs/heads/${username}/${topic}
refs/heads/${bot}/${unique_name}
Sometimes, the sheer number of branches is itself a scaling challenge.
There are cases where we'd like a cheap approximation of "the union of
the main integration branches" (e.g. "main develop next maint"), and
it's okay to also take other branches along for the ride but it's nice
to limit how many extra refs we include.
Introduce a new pseudo-revision `--toplevel-branches` for this
purpose. It is similar to the existing `--branches` pseudo-revision
and its `--branches=<pattern>` sibling, but there's been no ergonomic
way to exclude the large maze of branches in sub-hierarchies (`*` as
a pattern matches across `/`).
The next commit will use this to speed up push time reachability checks.
Add tests to `t6018-rev-list-glob.sh`, which already constructs a
fixture with a mix of top-level branches (`main`, `someref`,
`subspace-x`) and sub-directory branches (`other/three`, `subspace/one`,
`subspace/two`), making it a natural home for the new coverage.
Signed-off-by: Elijah Newren <newren@gmail.com>1 parent 1666c12 commit d6bb0fc
7 files changed
Lines changed: 103 additions & 0 deletions
File tree
- Documentation
- builtin
- t
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
202 | 206 | | |
203 | 207 | | |
204 | 208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
173 | 179 | | |
174 | 180 | | |
175 | 181 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
| |||
960 | 961 | | |
961 | 962 | | |
962 | 963 | | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
963 | 973 | | |
964 | 974 | | |
965 | 975 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
552 | 552 | | |
553 | 553 | | |
554 | 554 | | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
555 | 590 | | |
556 | 591 | | |
557 | 592 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
506 | 506 | | |
507 | 507 | | |
508 | 508 | | |
| 509 | + | |
| 510 | + | |
509 | 511 | | |
510 | 512 | | |
511 | 513 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2328 | 2328 | | |
2329 | 2329 | | |
2330 | 2330 | | |
| 2331 | + | |
2331 | 2332 | | |
2332 | 2333 | | |
2333 | 2334 | | |
| |||
2807 | 2808 | | |
2808 | 2809 | | |
2809 | 2810 | | |
| 2811 | + | |
| 2812 | + | |
| 2813 | + | |
| 2814 | + | |
| 2815 | + | |
| 2816 | + | |
2810 | 2817 | | |
2811 | 2818 | | |
2812 | 2819 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
426 | 465 | | |
0 commit comments