Michelle
Michelle

Reputation: 2235

SVN not detecting changes when overwriting file

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.

Upvotes: 1

Views: 6896

Answers (4)

ÖMER TAŞCI
ÖMER TAŞCI

Reputation: 566

These steps helped me to commit. To outgo that issue, they may help you too.

  • Check Out your svn repository folder in an empty folder on desktop. C:\Users\ömer\Desktop\SpringWebTest
  • open the folder that you checked out, then select and copy the .svn folder and paste it in your project workspace. C:\Users\ömer\workspaceLuna\SpringWebTest
  • now changes should be detected, finally commit the changes to svn repository.

Upvotes: 0

si618
si618

Reputation: 16848

I have noticed that the last modified dates on the files are older than the ones they replaced

Like most other people, I would suspect that the files haven't changed. However, if they really have, does Subversion detect changes if you touch the file to update the last modified date?

Upvotes: 0

José P. Airosa
José P. Airosa

Reputation: 368

Make sure you're not overwriting the .svn folder as well.

If you delete this folder or replace it with other folder you will be having some synchronization errors and/or svn integrity issues.

What you can do (and what I normally do with problems like this one) is to clear all .svn folders from your project filesystem and re-commit everything.

Please take a look at this article: http://thecrumb.com/2008/09/25/removing-svn-files-with-tortoisesvn/

And this one: http://www.anyexample.com/linux_bsd/bash/recursively_delete__svn_directories.xml

Upvotes: 0

Anders Forsgren
Anders Forsgren

Reputation: 11101

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.

Upvotes: 2

Related Questions