Работа с переименованиями SVN для инструмента синхронизации файлов (например, Dropbox)

#windows #svn #tortoisesvn

#Windows #svn #tortoisesvn

Вопрос:

Я работаю над простым инструментом синхронизации файлов для Windows, который работает как Dropbox, но использует SVN. (Я мог бы открыть исходный код, это просто игрушка, не так ли, но работает действительно хорошо.)

ПРОБЛЕМА: переименование файла… Я могу перехватить событие из ОС Windows со старым именем и новым именем. Но как я могу зарегистрировать переименование в SVN, фактически не делая этого в файловой системе? Я знаю, что SVN этого не поддерживает, но я хочу подумать о каком-то другом способе. Например, переименование — это просто копирование и удаление.

Например, я мог бы сделать копию на стороне сервера, но тогда локальная копия будет неверсированной. Должен быть способ! Есть идеи!?

[И удаление всех старых файлов и повторная загрузка их с новыми именами файлов не учитываются 😉 ]

Комментарии:

1. Хм…. Что насчет: если пользователь переименовывает oldname.txt для newname.txt затем: (1) скопируйте папку .svn в новую временную папку, (2) создайте пустой файл oldname.txt (3) запустите svn move, (4) скопируйте обратно папку .svn и зафиксируйте… Сработает ли это?

Ответ №1:

Посмотрите, как с этим справляется EasySVN. Это инструмент синхронизации файлов с открытым исходным кодом для Windows и Mac OS X с автоматической фиксацией, основанный на Subversion.