2010-03-13 6 views
8

На работе я только начал использовать Subversion с AnkhSVN вместо Visual Source Safe. Мне удалось достаточно хорошо его интегрировать, но это не похоже на то же. Использование VSS следующее:Работа с Subversion такая же, как с Visual Source Safe в Visual Studio

Пользователь проверяет файл, щелкнув правой кнопкой мыши и выбрав «проверить» или отредактировав его. Если другой пользователь попытался изменить тот же файл, он получит ошибку. Нет 2 пользователя могут редактировать один и тот же файл одновременно. Никакое воображаемое слияние. Нет конфликтов и конфликтов.

Я понимаю, что философия, лежащая в основе Subversion, различна, но существует ли способ, которым описанное выше поведение можно дублировать с помощью Subversion?

В AnkhSVN есть опция «Автоматически блокировать файлы при изменении ...», но даже если я активирую эту опцию при редактировании файла, она никогда не будет автоматически заблокирована. Даже если эта опция работала, другие пользователи не увидели бы блокировку до тех пор, пока они не заработали файл. Они не получили бы ошибку, если бы попытались отредактировать ее, как в Visual Source Safe.

В основном: может ли поведение Visual Source Safe дублироваться с использованием Subversion и AnkhSVN?

+2

Зачем вам это нужно? Subversion не был разработан для такого рода процессов. Если вы предпочитаете работу VSS, почему бы не использовать VSS? – Thomas

+0

Ну, я не могу. Subversion была выбрана, и я не имел в этом никакого права. – Para

+0

@Thomas: Я больше не буду доверять моему исходному коду VSS. Я видел слишком много разбитых баз данных, и слияние изменений между ветвями действительно невозможно.SVN использует способ связывания несовместимых файлов, которые требуют блокировки, и AnkhSVN реализует это, чтобы соответствовать тому, что VSS будет делать очень близко. Я не пытаюсь войти в обсуждение SVN vs VSS здесь: :) –

ответ

7

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

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

Идея заключается в том, что вы исправляете конфликты во время слияния кода.

См. this Вопрос и ответы для обсуждения вопросов (Revision control locking: Is the jury still out?).

+1

+1 для полной правды. –

2

Необходимо установить свойства subversion для файлов, которые вы хотите явно заблокировать. Это действительно рекомендуется только для файлов, которые не могут быть легко объединены, например (большинство) двоичных файлов, а не текстовых/кодовых файлов. Обычно файлы text/code автоматически сливаются, и, когда они не конфликтуют, обычно легко решить.

AnkhSVN попросит вас заблокировать файл (то же, что и в VSS), когда вы пытаетесь отредактировать его, когда установлено свойство svn:needs-lock. Если вы включите функцию «Автоматически заблокировать файлы», диалог блокировки будет подавлен, и вы сделаете блокировку файла без появления диалогового окна.

Svnbook объясняет the differences between a lock-modify-unlock and copy-modify-merge и svn:needs-lock поведение также описано

6

Agent SVN плагин MS-SCCI (так же, как VSS) для Subversion, так она интегрируется с Visual Studio так же, как VSS.

У этого также есть Замок на выезде вариант и с этой особенностью на нем очень похож на VSS.