I made some changes to a local, up-to-date repo, on CentOS 7, svn 1.7.14.

Running svn diff shows the changes.

Not sure if this has much to do with it, but a while later, I did an svn copy over to a new branch.

Then I made a change.

Now running svn status shows the change as a file with an M beside it, but svn diff shows nothing, even if I specify the exact file with the M.

Is this correct behaviour? I expected it to show the diff...


I also re-installed subversion via yum reinstall, and the result is no different.

Update 2

I made a second change (the first change was with sed, this was with vim) and now the diff shows just that change, as if the first change were the starting point. But I never committed the first change--if I go to the online repo viewer I can see that the latest revision shows before both changes. This new diff output says rev 609 vs working copy, but 609 is the latest one in the viewer. How do I have a different 609 than the online one?

Update 3

Even though svn up shows At revision 609, svn log --limit 2 shows revs 607 and 605. Do I have local repo corruption? If so it happened very soon after a successful checkout...or does it have to do with the svn copy? svn info shows the original trunk, not the branch I copied to...

1 Answer 1


I had piped grep results into sed but the grep syntax had been incorrect, with --exclude-dir='*/.svn' instead of --exclude-dir='.svn'. Thus the changes were made in the .svn directories too, corrupting the repo.

  • 1
    Thanks, this helped me. Just started using sed for refactoring, exact same anomaly seen, sure enough I have allowed sed to change files in .svn. Oops!
    – Sean
    Aug 2, 2021 at 13:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .