есть svn-хранилище, есть клиенты. vpn и прочее тут никак не связаны. У клиента есть несколько возможность - получить файлы из хранилища, отправить файлы в хранилище, посмотреть измененные файлы и тд. ТЫ себе на комп ставишь svn-клиента, выгружаешь из хранилища файлы и работаешь с ними ЛОКАЛЬНО. Никакой связи с хранилищем нет, поэтому серверу все равно, оборвался у тебя vpn или нет, работает у тебя компьютер или выключили электричество. Вот работаешь ты с файлами в локальной папке ... работаешь так же, будто svn нет никакого и настает момент, когда ты решаешь, что пора бы свои изменения отправить в хранилище. Ты делаешь svn up - обновляешь данные у себя в локальной папке до последней версии. Тоесть свн сама тебе в твою папку закачивает новые файлы, удаляет ненужные, изменяет те, что были изменены в хранилище. Если ты тоже изменял те же файлы, что изменились в хранилище - свн клиент пытается сам тебе объединить твои изменения (смержить) ... если ты изменял файл внизу, а в хранилище изменялся файл вверху - мерж пройдет без проблем и ты этого двже не заметишь, если же менялись близкие места, одни и те же функции в файле и тд (тоесть если свн сам не может понять, какие изменения правильные, а оба оставить не может) - тебе кидается конфликт, который ты у себя в локальной папке разрешаешь (сам выбираешь, какие изменения файла применить). Вот ты исправил все конфликты, обновил свою локальную папку до последней версии свн - теперь ты можешь отправить свои данные в хранилище. Связь с хранилищем нужна только на моменты этих обновлений и отправки своих версий, все остальное время никакая связь не нужна, вся работа идет в твоих локальных папках
|