Согласно решению Atmocreation, за исключением того, что вам не нужно повторно оформлять весь проект, что полезно, если у вас уже есть работа.
Допустим, у вас есть рабочая копия:
/foo/
, который содержит каталоги:
/foo/bar/baz
и вы получаете сообщение об ошибке при коммите:
svn: File already exists: filesystem '/foo/bar'
Резервное копирование содержимого бара где-нибудь:
mkdir -p ~/tmp/code_backup
cp -r /foo/bar ~/tmp/code_backup
Удалите управляющие каталоги .svn из резервной копии. Убедитесь, что вы правильно выполнили эту команду, или вы можете нанести довольно серьезный урон !! Удалите их вручную, если вы не уверены.
find ~/tmp/code_backup/bar -name .svn -type d -exec rm -rf {} \;
Проверьте, что копия идентична:
diff -r -x .svn dist ~/tmp/code_backup/dist
Удалите поврежденную директорию из рабочей копии:
CD / Foo
rm -rf bar
А затем восстановить его из хранилища:
cd /foo
svn update bar
Скопируйте обратно измененные файлы из резервной копии:
cp -r ~/tmp/code_backup/bar /foo/
Теперь вы должны иметь возможность коммитить без ошибки.