[FF] list_commits_follow -- follow file renames on the commits page
Summary
Roll out the feature currently behind the list_commits_follow feature flag.
The flag gates rename-following on the commits page (the GraphQL file-history view). When enabled for a single-path history query, it threads Gitaly's ListCommits.follow field (added in gitaly!9086, Gitaly 19.4) so the page follows file renames again — fixing #628900 (closed), where the refactored page dead-ends at the commit that renamed a file.
- DRI: @hustewart
- Team Slack channel:
#g_source_code
Note
Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle
What could go wrong?
follow: true makes Gitaly fall back from git rev-list to git log --follow, which performs rename detection and is materially more expensive than the default walk. Blast radius is limited: it only activates for single-path file-history requests, and the remove_file_commit_history_following ops kill-switch still suppresses it. Requires a Gitaly server >= 19.4; on older servers the field is ignored and the page behaves as today. Watch commits-page latency on https://dashboards.gitlab.net.
Events
- Exceptions with list_commits_follow:1
- Events with list_commits_follow:1
- Error rate and other graphs by modifying the examples in the Visualization Library
Feature Flag events are only logged by default for feature flags marked for the current or future milestones. To enable while the feature flag is active, see https://docs.gitlab.com/development/feature_flags/#logging
Rollout
Run all production /chatops in #production and cross-post the results to #g_source_code. Background: incremental rollout process, feature actors.
Non-production
/chatops gitlab run feature set list_commits_follow 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set list_commits_follow true --dev --pre --staging --staging-refProduction — percentage rollout (wait >= 15 min between steps, watch dashboards):
/chatops gitlab run feature set list_commits_follow <percentage> --actorsOr target specific actors instead:
/chatops gitlab run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss list_commits_follow true
/chatops gitlab run feature set --group=gitlab-org,gitlab-com list_commits_follow true
/chatops gitlab run feature set --user=hustewart list_commits_follow trueBefore global rollout
Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:
- Docs + version history updated
- Breaking changes announced, if any
- Change management issue opened, if required
- External API consumers handled with a fail-open mechanism, if applicable
Cleanup
Remove the flag once deemed stable — see cleaning up. Track it here, or open a follow-up Feature Flag Cleanup issue. Remove the flag and its YAML definition from the codebase, then:
/chatops gitlab run release check <merge-request-url> <milestone>
/chatops gitlab run feature delete list_commits_follow --dev --pre --staging --staging-ref --productionRollback
/chatops gitlab run feature set list_commits_follow false # production
/chatops gitlab run feature set list_commits_follow false --dev --pre --staging --staging-ref # non-production
/chatops gitlab run feature delete list_commits_follow --dev --pre --staging --staging-ref --production # remove entirely