Merge pull request #1798 from vbjay/Portable

Fix key already exists bug.
Fix for #1790.
Merge branch 'Portable'
Merge branch 'pr/n1799_vbjay'
Fixed submodule status on diff tab
Check for later version updates only.
We already know it matched so no need to check the string.
Fix compare.
Lock ByNameMap to make it thread safe.