Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

My goal is to transfer old SVN repositories from a Windows VisualSVN server to a Linux Apache SVN server. The first step was to make a dump of all the repositories with the svnadmin dump command. After that I loaded those dumps into my Linux server. There were no errors when I imported the repositories. However, for some files I get a 500 internal server error when committing changes in them.

To check what is wrong, I opened some of the files that generated the error into my web browser. I found out that several last lines from these files are corrupted. There is no data lost, but there are strange characters at the end of the file. They are displayed by: “???” in my web browser.

I tried to do multiple exports, but all of the exports will cause the same problem. Is it possible to correct the repository or dump? Do you have any idea how I can prevent this from happening?

share|improve this question
    
How did you import the repositories? If you run a checkout from them locally without using the web server (use a file:/// checkout URL), does it work correctly? –  Shane Madden Dec 22 '13 at 8:04

1 Answer 1

  • AFAICR, there was some changes in the repository's structure|data|storage some versions ago: it will be more bullet-proof, if Subversion version under the hood for VisualSVN Server and apache's side will be the same (i.e upgrade VisualSVN Server, if it needed)
  • From FS-view, repository in VisualSVN Server and Linux's Apache are the same - just directories with files and some not-repository files. Thus, in easiest case, you can just copy tree from RepoRoot into new server (fix owner and permissions according to new OS reqirements), add (old) passwd-file (if needed), placed outside repo-tree and (old) authz-file (if needed), migrate svn-related part from httpd.conf of VisualSVN Server to the new environment (with applying all needed changes, mostly path-related) and have repositories at the new location

PS: I performed such lazy "copy-pase" migrations without big headache

500 internal server error when committing

can have two main reasons: not migrated userbase and|or forgotten ACLs in (probably missing or empty) authz file - dumps of repos doesn't transfer these files

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.