I was curious to know more about how different version control systems track renaming files in a repository, especially in the case of a merge. On this question, comparing Git, SVN and Mercurial's strategies for file renaming, someone posted this blog post from an author claiming that Bazaar's file rename strategy is much more robust than any other VCS. The author states that Bazaar "treats renames as a first class operation".
What the author didn't explain was how this works, what it means to treat renames as a first class operation, and why its strategy is better than, e.g. Git's "best guess" rename detection algorithm.
I have no experience of Bazaar, but I'd like to know:
- How does it handle file renaming?
- What makes its algorithm more reliable than other popular VCS (if anything)?
I couldn't find this information easily from Bazaar's own docs.