AnkhSVN “No uncommitted changes” but nothing is shown in the log and update does not solve the warning

When doing a merge using AnkhSVN and doing “pre-merge best practices check” the error message “No uncommitted changes” is shown this means that the working copy is not updated or has changes that are not commited.

However sometimes this error can be shown even when the pending changes window in Visual Studio is empty and you have done update to Latest version. (Most likely there are files that Subversion see as missing or Deleted but that are not shown in the pending changes window)

The solution I use when this happens is to open the working copy folder and use TortoiseSVN to see what is going on and then solve things so that TortoiseSVN shows nothing in the pending changes.

Also from the console “svn status -q” can be used to see what files have changes. (-q means that we only would like status on files that are under version control.

svn switch

To change the branch you have checked out you use “svn switch url [PATH]” (the path is optional).
example:

svn switch https://example.com/svn/root/branches/thebranch .

Also svn switch can be used to “relocate” the repository url – i.e. if the server has moved/changed address/ip or similar. “svn switch –relocate FROM TO [PATH]”
example:

svn switch --relocate https://old.example.com/svn/root/oldbranch https://new.example.com/svn/root/newbranch .

warning: Only if the working copy still reflects the same repository directory, but the location of the repository itself has changed, then svn switch –relocate is safe to use.

svnadmin dump vs hotcopy

  • hotcopy makes a direct copy of the repository. It is fast, but it keeps information about the underlying file system etc. The server where the copy is imported needs to be the same version, have the same config etc.
  • dump is version independent. This means that the exported copy can be used by any version of svn.

IMHO: dump is better for backups and long term archiving (outside a repository) [like a tape in a vault].
hotcopy is better suited to make a quick copy to another server when the other server is up and running.

The base information for this post was found in the svn maillist

svn: Checksum mismatch for file expected: md5, actual: othermd5

What has (most likely) happened is that the .svn/entries file has gotten corrupt somehow; this can happen if a svn client dies halfway in a commit, or for other reasons, but that is not what this post is about.

Recently got the error message “svn: Checksum mismatch for ‘/var/www/magento/app/locale/sv_SE/template/email/sales/.svn/text-base/testfile.svn-base’; expected: ‘2b991059e896f837f33875df8070e1ab’, actual: ’71d7d03cf41d65b6c28471dd2e96c2e1′”

A quick fix this issue is to

  • Remove the .svn directory from the sales folder.
  • Move the folder sales to sales_real
  • Update the email folder (this will recreate the sales folder)
  • Move all the files from sales_real to sales
  • Commit sales
  • Delete sales_real

Obligatory disclaimer: This worked for me, it keeps the file history and all should be well.
If the sales folder would have been larger (and or my connection to the svn server slower) perhaps some other solution is preferred; but this was quick and worked.

Credit to dr. chuck for the original post