I’ve been working with SVN successfully for a few weeks however I recently received an updated version of the code I’m working on from our vendor. I overwrote my local installation with the updated files and was expecting to be able to commit the updates files and everyone else would then get the updated version. However, when I overwrite my local files, SVN does not detect that the files have been updated. I’m using Tortoise SVN if that matters.
Update: I’m not copying over a working copy of the updated code (there are no .svn folders in the source.) However, I have noticed that the last modified dates on the files are older than the ones they replaced – Would that prevent SVN from detecting a change? Also the majority of the files are encrypted using ioncube.
The local svn data is inside every directory of you working copy (in the .svn directory under every directory). So if you have copied a directory from the new code over a directory of your code, including subdirectories, you may have copied their .svn directories as well. That means svn can’t know that it is changed.
If you want to do a recursive replace of code in a directory, you should make sure that the code you paste onto your existing code isnt itself a working copy, or that it has been stripped from .svn directories. To get a non-wc copy of a repository you can use svn export.
The latest version of subversion solves this problem by storing metadata only in the wc root, rather than in all subdirectories.