Yes, weave detects renames via structural_hash (AST-normalized hash that ignores identifier names). If both sides rename the same function, it matches by structure and merges cleanly.
This will not work for refactors. In fact, any other change will break the hash. I know because I used this approach for quite some time.
This will not work for refactors. In fact, any other change will break the hash. I know because I used this approach for quite some time.