Problem
When working with multiple branches (e.g. “release” / master and “latest”), there’s no way to filter strings based on which branches they belong to. This makes it difficult to identify strings that exist in only one branch versus strings that are shared across branches.
Use case
I maintain a project with a “release” (master) branch and a “latest” branch. Strings fall into three categories:
- Strings that belong to “release” only
- Strings that belong to both “release” and “latest” (shared source string with shared translation)
- Strings that belong to “latest” only
I need to identify strings in category 2 — those present in both branches — to manage the translation workflow for volunteer translators. Currently, there’s no way to do this, either in the Editor’s advanced filter or via CroQL. CroQL’s source string context only exposes a single branch object per string, and there’s no aggregate like count of branches or cross-referencing capability.
Proposed solutions (either would work)
Option A — Cross-branch filter in “All Strings” view: When viewing “All Strings”, allow filtering by branch combination, e.g. “show only strings that belong to both release and latest” or “show only strings that belong to release but not latest.”
Option B — “Also exists in branch” filter when viewing a single branch: When viewing strings of a specific branch (e.g. master), add a filter option like “also belongs to branch: latest” (or inversely, “does not belong to any other branch”). This would let me narrow down a branch’s strings to those that are shared with another branch.
Option C — CroQL enhancement: Expose branch membership as a collection on the source string context, enabling queries like:
count of branches = 1
count of branches where (name = "master") > 0 and count of branches where (name = "latest") > 0
Impact
This would significantly improve branch management workflows for projects using version branches, especially for coordinating translation efforts across release and development branches.