SVN без сервера для нашей разработки Visual Studio - PullRequest
5 голосов
/ 30 сентября 2011

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

Я хочу использовать SVN для контроля версий.Я думаю, что мне не нужен"сервер".Все члены команды могут указать своим клиентам SVN на сетевое местоположение.

Это достаточно хорошо?

Или мне нужен"сервер"?

Ответы [ 10 ]

3 голосов
/ 12 октября 2011

Агент SVN - это подключаемый модуль Subversion для Visual Studio, и его можно настроить на использование местоположения файла для хранилища, поэтому сервер не требуется.

2 голосов
/ 02 октября 2011

Да, вы можете создать репозиторий в какой-то папке и указать туда своих клиентов, процесс svnserve или apache2 + mod_svn действительно не нужны.

Однако есть несколько причин, по которым вы должны рассмотреть сервер:

  • Синхронность: репозиторий на основе файлов изменяется клиентами, которые обращаются к нему. Если часы одного из ваших клиентов не синхронизированы с остальной частью команды, он может в редких случаях испортить данные хранилища. Однако на сервере всегда будет уникальное время.
  • Масштабируемость: при увеличении количества коммитов в день последовательность блокирования / фиксации / разблокировки на основе файлов может вызвать неожиданную загрузку на файловом сервере и расстроить вашу команду длительным временем отклика.
  • Расширяемость: лучше, чем позже, вы или ваша команда обнаружите необходимость в системе заявок (для поддержки QA / QC или 3-го уровня, например, Trac, Redmine, Bugzilla), а затем возникнут проблемы и их исправления, связанные с контролем версий действительно стать обязательным. Эти билетные системы всегда принимают URL-адрес svn: //, но, скорее всего, будут отклонять файловый репозиторий.

Я не знаю, являются ли эти причины достаточно убедительными для вас, но вы действительно можете отложить решение перейти на сервер до тех пор, пока оно не станет неизбежным - даже до бесконечности, если ваша команда никогда не будет расти.

1 голос
/ 02 октября 2011

Subversion использует три основных протокола:

  • svn:
  • http:
  • file:

Естьнесколько других (svn + ssh и https), но они связаны с вышеупомянутым.

Если вы используете протокол file:, вам не нужен сервер Subversion.Все, что вам нужно сделать, это указать файловый протокол на каталог, в котором находится ваш репозиторий Subversion:

C> svnadmin create C:\svnrepos\myrepos

C> cd C:\workspace
C> svn co file://C:/svnrepos/myrepos repos

В приведенном выше примере я создал репозиторий Subversion в C:\svnrepos\myrepos, а затем перешел в другой каталог (очень важный!) и сделал проверку.Сервер не запущен.

С этим связано несколько проблем:

  • Каталог хранилища Subversion должен быть доступен для чтения и записи каждому, что означает, что любой может напрямую изменять хранилище без необходимостичерез Subversion.
  • Я не уверен на 100%, как работают хуки или как обрабатываются коллизии, если более одного пользователя пытаются одновременно зафиксировать.
  • Даже если вы не планируетечтобы иметь какую-либо безопасность, вы, вероятно, хотите знать имя человека, который внес изменения.Протокол file:// не отслеживает это.Все, что вы видите, это то, что изменения были сделаны, но не кем.

И, наконец:

  • Запуск сервера не так уж и сложен.

Итак, хотя вы можете разместить репозиторий Subversion в общем сетевом ресурсе, и каждый может использовать протокол file://, на самом деле не очень хорошая причина для этого.Фактически, я использую Subversion в качестве своего личного репозитория, где я единственный, кто использует его, и я не использую протокол file://.

Вы можете легко запустить svnserve в качестве службы Windows, так что он автоматически запускается при каждом запуске вашей машины.И это очень просто настроить.Нет просто никаких причин не использовать его.

Так что, в любом случае, можно пойти и сделать это в любом случае правильно .

Кстати, как вы используетеSubversion через Visual-Studio?Я предлагаю вам взглянуть на ankhsvn , который позволяет вам получить доступ к Subversion напрямую в Visual-Studio.

1 голос
/ 30 сентября 2011

Основное назначение svn - контроль версий. Использование файлов нелегко сохранить версионность. И, кстати, вы можете настроить локальный сервер "svn" на вашем собственном компьютере

0 голосов
/ 30 сентября 2011

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

Мы используем VisualSVN .Установка почти не требует усилий.

0 голосов
/ 30 сентября 2011

В команде, состоящей всего из двух человек, какой-то контроль версий является огромным преимуществом по сравнению с отсутствием контроля версий. Возможность использовать SVN для отслеживания изменений, кода ветвления, если вам нужно несколько версий для демонстрационных целей, и использование блокировок / разблокировок + слияний, чтобы разработчики не убивали код друг друга. Также пригодится при работе в одиночку над проектом.

Вы можете легко разместить SVN в Linux, Mac, Windows - вам просто нужно, чтобы этот компьютер был подключен к сети с машин разработки.

0 голосов
/ 30 сентября 2011

Настройка сервера почти тривиальна, поэтому я хотел бы спросить, почему вы НЕ хотите сервер.Но вот еще несколько причин:

  1. Надежность.Сетевые файловые системы, такие как общий ресурс SMB, не столь надежны, особенно когда речь идет о том, что несколько пользователей одновременно записывают одни и те же файлы.SVN специально не претендует на поддержку этого.
  2. Производительность.Предоставление доступа к файлам через сервер будет значительно быстрее, чем через сетевой ресурс.
  3. Аудит.Вы хотите, чтобы ваши изменения были связаны с пользователем, даже если вы не заботитесь о безопасности.Пройдя через сервер, вы получаете логин, и сервер может использовать это имя пользователя, чтобы записать, кто внес изменение.
  4. Безопасность.Если вы используете сетевой ресурс, то все пользователи имеют прямой доступ на чтение / запись к файлам репозитория.Я знаю, что вы не заботитесь о безопасности, но как насчет простых ошибок?Например, кто-то случайно удаляет файлы из хранилища.

Загрузите и установите что-то вроде Subversion Edge .Это тривиально для установки в Windows и дает вам веб-интерфейс для управления сервером.Вы также получаете веб-интерфейс для просмотра репозиториев, который может быть полезен при исследовании ошибки.

0 голосов
/ 30 сентября 2011

ммм, subversion - не тот инструмент, если вам нужна безопасность, это правильный инструмент:

  • если вы хотите, чтобы команда работала над одними и теми же источниками в одно и то же время (и иметь возможность отменить неудачный коммит)
  • , если вы хотите избежать того, чтобы последний, кто сохранил файл, удалил все изменения, сделанные другим (в случае файлов в одной сетевой папке)
  • если вам нужно сделать параллельную разработку (и создать для этого ветки)
  • если вам нужно иметь возможность повторно извлечь отмеченную версию (полезно при доставке приложения)
0 голосов
/ 30 сентября 2011

Представьте себе, что вы работаете над одним проектом с несколькими людьми. И оба изменяют один и тот же файл в один и тот же момент. Если вы оба работаете над одним и тем же файловым ресурсом, это будет плохо. Другая причина использования какого-либо контроля версий - возможность отслеживать изменения. Таким образом, вы можете сообщить своему коллеге, где он облажался. : -)

0 голосов
/ 30 сентября 2011

SVN не о безопасности; речь идет о ведении истории вашего исходного кода.

Я не могу придумать вескую причину, по которой вы не захотите настроить сервер SVN. Я использую один дома на моем личном рабочем столе для моей собственной разработки. Это не о безопасности; речь идет о сохранении моей истории исходного кода на случай, если я облажусь и захочу вернуться.

Это также касается привычек: «Сначала мы создаем свои привычки, затем наши привычки делают нас». Научитесь все время делать правильно, даже в простых ситуациях.

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