tree 881757fa5597c872facfbfca0a731b373fcb24b9
parent 5ffc912fd2c8a00e9081ec8703977682033e8c53
author Ian (Hee) Cha <heec@google.com> 1793390047 +0000
committer GitHub <noreply@github.com> 1793390047 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJq5PXwCRC1aQ7uu5UhlAAAuQAQABjBzDVKfEGnpxiUjSeThyM+
 WVUbm4dcV5+TD9y9TwQnIfe7CI4RzpOPn6tw+qu9lqWrLucLgLy8uaG/bLMhuDR/
 0D62zDE2eIhYc/cXbqdykcG4K6wIN5l/gSf9s+99vdgWV/OQ06rp/SuiOmOtyOqE
 W12eZ4IrI0kX5T0ctbTw+M48FZOFgX/hjLyDx2wnMz5nLp9p3cyYFibU2kUN0vwt
 +C0REjLlQt+9ZbJ6aDgnold3k4SUsr4KbyoOTrK8iL8/wbhKgexJOacb8NtkMdQP
 +xSVWOiHM0/iaq7/JrbyJqjgqJn2L3PNAEJiTKTzbRbU9ViFR33Dq8gqzZaTwAjB
 0gUwfmoayXKNFq+cfGoZ//hGiBwbcIMScadpyUahxa9qWSAT4yEjuC5QP+LRCHog
 tAq9Ylc1z7t+tHnZWiMVPT46KhHw2Cv295PEjnfuyL15FUqWC6Om8agqkuWCoZop
 dR0LuiV9aldv5B1IEyVXn+DY6dRNTuH+dn+xtxxp1EitsAUrugVILGWC2NM/KM7O
 +BEM7kNE57YqVC2ObtpvyO8DhROLemfhwsnCXXfas+5OCKRcGY4xdMxQIL4xT4qW
 F5hLVVMhHEqPF/7/eO5ceLLiFbduxkZoPG0FyocMXs/D+g4X2ZO8Mt7r6Hb/pEo7
 vmwGC7LcYWoowI28VFzr
 =rzGd
 -----END PGP SIGNATURE-----
 

[9.4.0] Deduplicate repository mappings before sorting (#32066) (#32269)

RepoMappingManifestAction deduplicates repository names in a HashMap
before sorting the distinct names. It preserves the first mapping for a
duplicate repository and keeps both expanded and compact output order;
identical entry maps are still grouped for compact manifests.

In the original 32,768-package, 256-manifest fixture with 1,024
repositories, manifest generation improved from 1.829 to 1.483 s. The
32-repository control was unchanged. The complete patch matches the
original and git diff --check passes upstream.

@fmeum

Closes #32066


COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/bazel/pull/32066
from dzbarsky:dzbarsky/upstream-bazel-151
a9a0cf8e79ae442f3d96662dcbb967e4160c1bdb PiperOrigin-RevId: 1008281270
Change-Id: I08f73a5516830412c2d81bf327db079c558ca4eb

<!--
Thank you for contributing to Bazel!
Please read the contribution guidelines: https://bazel.build/contribute
and guidelines for AI-assisted contributions:
https://bazel.build/contribute/ai-assisted-contributions
-->

### Description
<!--
Please provide a brief summary of the changes in this PR.
-->

### Motivation
<!--
Why is this change important? Does it fix a specific bug or add a new
feature?
If this PR fixes an existing issue, please link it here (e.g. "Fixes
#1234").
-->

### Build API Changes
<!--
Does this PR affect the Build API? (e.g. Starlark API, providers,
command-line flags, native rules)
If yes, please answer the following:
1. Has this been discussed in a design doc or issue? (Please link it)
2. Is the change backward compatible?
3. If it's a breaking change, what is the migration plan?
-->

No

### Checklist

- [ ] I have added tests for the new use cases (if any).
- [ ] I have updated the documentation (if applicable).

### Release Notes

<!--
If this is a new feature, please add 'RELNOTES[NEW]: <description>'
here.
If this is a breaking change, please add 'RELNOTES[INC]: <reason>' here.
If this change should be mentioned in release notes, please add
'RELNOTES: <reason>' here.
-->

RELNOTES: None

Commit
https://github.com/bazelbuild/bazel/commit/d4b6b2218906c92ef4848fa243ca4ffef923af8a

Co-authored-by: David Zbarsky <dzbarsky@gmail.com>