Do approvals ever get lost when you merge or rename branches in file-based projects?

I’m trying to understand how common one specific problem is, before deciding whether a small tool for it is worth building.The situation: a file-based project with paid proofreading, using version branches that come from Git (GitHub/GitLab integration, CLI, or the Crowdin GitHub Action). When the feature branch is merged in Git and the Crowdin branch is synced or deleted, do the approvals carry over to the main branch? Or do you sometimes have to re-check or re-approve strings that were already reviewed?I’ve read the Version Management docs, and I know branch merging inside Crowdin only works for string-based projects. I’ve also seen these two threads:https://community.crowdin.com/t/merge-crowdin-branch-in-file-based-project/10171https://community.crowdin.com/t/renaming-connected-branch/9975What would help most:- “Never happens to us,” plus your setup (duplicate-strings option, update_option, sync method). That’s just as useful as a problem report.- If it has happened: roughly when, what was lost (translations, approval status, or just string IDs), and about how long it took to fix.I’m not selling anything. If the answer is that the right settings prevent this, I’d like to know which settings, and I’ll post a summary here for others.

Hi @korfalor

“When the feature branch is merged in Git and the Crowdin branch is synced or deleted, do the approvals carry over to the main branch?” - yes. In file-based projects the merge happens in your version control system, not in Crowdin. When the merged content reaches the main branch, the duplicate strings option in the project settings moves the existing translations and approvals to the matching strings there.

“Do you sometimes have to re-check or re-approve strings that were already reviewed?” - you don’t need to re-approve anything with the correct duplicate strings option in the project.

“Renaming connected branch” - to do this, you should pause the sync in the integration, rename the branch in the repository, rename the same branch in Crowdin, and then resume the sync (the integration finds branches by name, so it keeps using the existing Crowdin branch)
But if the branch is renamed only in the repository, the next sync creates a new Crowdin branch.