ASP.NET - SVN веб-загрузка фронт энт? - PullRequest
0 голосов
/ 14 апреля 2011

Я хотел бы добавить область / страницу, которая позволяет пользователям загружать файлы в SVN. Я видел SharpSVN , который выглядит многообещающе, но мне интересно, насколько хорошо он обрабатывает конфликты и т. Д.

Один из подходов состоит в том, чтобы использовать SharpSVN для обновления локальной копии репозитория сайта, сохранения загруженного файла, полученного из браузера, и затем фиксации, однако мне интересно, насколько стабильной будет эта ситуация, когда несколько пользователей пытаются получить доступ к тот же файл (примерно) в то же время. Что является хорошим способом решения этой проблемы, кроме ручной реализации какого-либо механизма блокировки?

О, и если у кого-то есть уже существующее решение или хороший учебник, я бы хотел его увидеть.

Примечание: я не ищу плагин для Visual Studio; он должен быть полностью веб-ориентированным, так как мы используем svn для обмена документами, и я предпочитаю не требовать от каждого пользователя установки Tortoise или клиента svn командной строки.

Ответы [ 3 ]

0 голосов
/ 14 апреля 2011

Чтобы ответить напрямую, вы не получите веб-интерфейс для загрузки.

SVN действует на части файловых систем (деревья каталогов), а не на файлы. HTTP-загрузка действует на файлы, а не на деревья каталогов.

Если бы существовал веб-интерфейс SVN, он был бы ограничен подмножеством функциональных возможностей SVN. К сожалению, это подмножество настолько мало, что лишает SVN большей части его мощности. Как вы собираетесь фиксировать изменения разрешений? Как вы собираетесь связать изменения в этом файле с набором изменений, необходимых для интеграции этого файла в проект? Я уверен, что решение может быть найдено с достаточным временем веб-разработки; однако, лучшие решения, чем те, которые могут быть построены, уже существуют. Используйте их.

TortiseSVN свяжет иерархию папок Windows с проектом SVN. WebDav свяжет клиента WebDav с проектом SVN. Инструменты командной строки svn (клиента) свяжут дерево каталогов с проектом SVN. Существуют плагины для почти всех основных IDE.

Выберите решение, которое наилучшим образом соответствует вашей рабочей среде; поскольку они все объединяются с SVN, поскольку это должно было использоваться. HTTP был разработан задолго до SVN, и он ограничен в своей способности передавать информацию на веб-сервер. Попытка «передать» diff дерева каталогов и всего его содержимого - это один элемент, в котором HTTP просто не хватает достаточной структуры, чтобы выполнить работу без большого количества обходных путей (что означает нестабильность и странность, поскольку он не действует как HTTP).

0 голосов
/ 04 мая 2011

Мне удалось заставить это работать, используя довольно стандартную страницу загрузки файлов и резидентный семафор db.

0 голосов
/ 14 апреля 2011

Лучше всего создать конфигурацию WebDav для Subversion, которая поддерживает автоматическую фиксацию документов, которые хранятся на соответствующих дисках. В Windows это означает наличие дополнительного диска, который является хранилищем WebDav, а во внутреннем каталоге - Subversion. Каждый раз, когда кто-то сохраняет что-то на этом диске, он автоматически выполняет коммит. Но вы не устанавливаете TortoiseSVN на машинах ... это лучшее решение, на мой взгляд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...