Почему Visual SourceSafe так плохо просматривается?

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

Одна вещь, которую я собираюсь поднять, - это склонность переместить существующий исходный код из SourceSafe (где он в настоящее время находится) в более совершенный продукт управления версиями, такой как Perforce.

У меня был ряд неудачных опытов с SourceSafe, вызывающих серьезные проблемы, такие как постоянная блокировка файлов и повреждение кода. В одиночестве я боюсь, что эти анекдоты звучат так, будто я хочу это изменить, потому что мне это не нравится. Если я собираюсь поднять эту тему, я хочу иметь дело с замком.

Итак, каковы эмпирические причины того, что SourceSafe рассматривается как продукт худшего качества?


Смотрите также:


person Yes - that Jake.    schedule 03.08.2009    source источник


Ответы (12)


Эмпирически нет смысла доверять свой драгоценный исходный код программе, которая даже не дотягивает до уровня надежности Microsoft Access. Продукт нужно было выбросить много лет назад. Это просто не соответствует современным стандартам.

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

person John Saunders    schedule 03.08.2009
comment
Но почему он считается ненадежным и не соответствующим современным стандартам? Чего не хватает? - person Yes - that Jake.; 04.08.2009
comment
Надежное хранилище данных. Он просто хранит файлы в общей папке. Никаких транзакций. Ничего такого. Microsoft Access более надежен. - person John Saunders; 04.08.2009
comment
Это, вероятно, единственный лучший ответ, но его труднее всего доказать тому, кто не знаком с SS (и, к сожалению, даже тем, кто знаком с ним). Дело в том, что многим командам просто повезло - SS годами у них прекрасно работала - и они восприняли это как доказательство того, что все не так уж плохо. Как и программа с серьезными проблемами параллелизма, которая работала нормально. в течение десяти лет на однопроцессорных машинах ... пока кто-то не попытался запустить его на их новом двойном Pentium Pro, и начался ад. - person Shog9; 04.08.2009
comment
@ Shog9: К сожалению, этих людей не беспокоит тот факт, что последняя версия VSS - 6.0d. То же 6.0, что и в VB6 и VC ++ 6 и Visual Interdev 6. - person John Saunders; 04.08.2009
comment
@ Джон Сондерс. У меня установлен VSS версии 8.0.blah (VSS 2005) dl.getdropbox.com/ u / 1388427 / screenshots / sourcesafeabout.PNG - person Matthew Lock; 26.08.2009
comment
Управление версиями (6.x, 8.x) не было бы проблемой, если бы не было проблем с продуктом. - person Alfred Myers; 26.11.2009

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

На вашем месте я бы рекомендовал перейти хотя бы на TFS. Интеграция с VisualStudio столь же тесна, она намного быстрее, и идиома почти такая же. У меня не было проблем с ним за 4 года, которые я им использую. Perforce - это дорогое удовольствие, и, вероятно, это не то, что нужно обсуждать на собеседовании.

person bbrown    schedule 03.08.2009
comment
Раньше я использовал VSS в команде из примерно 30 программистов с 2 миллионами строк кода, и повреждение базы данных было образом жизни. То, чего мы просто ожидали и убедились, что сможем с этим справиться. Так приятно работать с Perforce сегодня. - person justinhj; 27.08.2009

Еще в 2002/2003 году на прежней работе я оказался тем парнем, которому пришлось присматривать за нашей установкой VSS.

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

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

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

Учитывая, что есть лучшие инструменты - с лучшей интеграцией - которые теперь доступны по нулевой цене, переход с VSS (для меня) не составляет труда.

person Bevan    schedule 03.08.2009

Я согласен с тем, что VSS - ужасная программа, но, помимо возможной проблемы с повреждением базы данных, похоже, что ваша ситуация будет сложной для людей. Например, вы не можете сказать, что VSS имеет ужасную поддержку слияния, потому что вы единственный разработчик. По той же причине нельзя жаловаться на блокировку кассовых аппаратов. Если ваше приложение не имеет достаточно хорошего размера, вы не можете спорить с предлагаемым максимальным размером базы данных 1 ГБ, который предлагает VSS.

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

person Brett Bim    schedule 03.08.2009
comment
Ага. Если вы единственный, кто им пользуется, это не так уж и плохо. Это вероятно не будет слишком часто мусорить ваши файлы. Вам вероятно не потребуется слишком часто приличная функциональность ветвления и слияния. Я действительно нашел интерфейс приличным. Он не исходил от MS, так что интерфейс командной строки тоже был не так уж плох. - person Marsh Ray; 04.08.2009
comment
Да, но диалоговые окна были созданы для мониторов 640x480, и размер большинства из них нельзя было изменить! Хотя у меня смутное воспоминание, что в финальной версии некоторые из них разрешили изменять размер? - person John Saunders; 04.08.2009

SourceSafe - устаревшая технология, основанная на общих ресурсах Windows. Механизм хранения (нетранзакционные «плоские файлы») - это рецепт низкой производительности и ошибок. Его принятие не имеет ничего общего с тем, что у него есть по сравнению с другими SCM, а все связано с тем фактом, что он «уже был там».

Я не могу комментировать Perforce, но могу сказать, что VSS по сравнению, скажем, с Team Foundation Server - очень слабое предложение, и его следует использовать только в тех случаях, когда в него уже вложены большие средства и НИКАКИХ денег нельзя потратить.

person Adam Robinson    schedule 03.08.2009
comment
Существует множество отличных систем VCS. Миграция может потребовать немного времени, но исходный код - это жемчужина вашей короны. Его следует хранить в безопасном месте. - person Kristof Provost; 04.08.2009

Microsoft не использует его для внутренних целей. Вместо этого они получили лицензию на исходный код Perforce и взломали ее под свои нужды. Это красноречиво, поскольку Microsoft с гордостью тестирует другие свои продукты, такие как Windows и Office.

person Michael Donohue    schedule 03.08.2009
comment
Интересный. У вас есть цитата? - person Bevan; 04.08.2009
comment
У вас есть доказательства этого? См. blogs.msdn.com/bharry/archive / 2009/07/17 / для контрапункта. - person John Saunders; 04.08.2009
comment
Хотя когда-то это могло быть правдой, я считаю, что теперь они перешли на Team Foundation Server. - person Gregory Higley; 04.08.2009
comment
Грегори прав, и когда была выпущена TFS, у них были варианты импорта для ClearCase (рыночный лидер) и Perforce. - person Henk Holterman; 04.08.2009
comment
Моя информация немного устарела, но ни SourceDepot (внутренне взломанный Perforce SCM), ни TFS не являются Visual Source Safe, поэтому дело в том, что Visual Source Safe не используется для внутренних целей. TFS кажется огромным улучшением, которое Microsoft действительно использует для внутренних целей. - person Michael Donohue; 04.08.2009
comment
Microsoft по-прежнему использует SourceDepot (также известный как Perforce) для исходного кода Windows. У меня нет никаких ссылок на это, кроме личного опыта. Не знаю, что используется за пределами команды Windows, но готов поспорить, что в Microsoft практически никто не использует VSS. - person Michael Burr; 12.08.2009

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

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

person Chase Seibert    schedule 03.08.2009
comment
О, вы МОЖЕТЕ. Можно включить одновременные проверки. Затем следует много молиться богам VSS, чтобы слияние не взорвалось. - person Adam Robinson; 04.08.2009

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

person User    schedule 04.08.2009

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что Visual Source Safe настаивает на том, что структура папок моего проекта не может быть представлена ​​в целевом рабочем каталоге. Он всегда думает, что проект установки службы пытается вторгнуться в проект службы, и отказывается регистрировать его. Когда вы добавляете проект в систему управления версиями, он неизменно добавляет другую папку к своему пути в системе управления версиями. Контроль версий должен просто представлять файловую структуру, которая УЖЕ РАБОТАЕТ на машине разработчика, без претензий.

person CZahrobsky    schedule 21.03.2011

См. Также Лучшая инициатива SCM: версия Системы управления, которых следует избегать.

Одна из проблем, о которых я читал там и не встречал упомянутых до сих пор в ответах, заключается в том, что VSS не поддерживает удаленные, а затем воссозданные файлы: либо вы очищаете историю файла (и никогда не сможете восстановить старую версию), или вы можете создать файл с тем же именем, что и у какого-то удаленного файла. Даже CVS (которая также является файловой) попыталась сделать это правильно, используя область «Чердак».

person Jakub Narębski    schedule 04.08.2009

  1. Повреждение кода (включая всю вашу историю)
  2. Повреждение двоичного файла (у нас эта проблема была особенно с шаблонами PDF)
  3. Плохая интеграция в Visual Studio IDE (очень глючит)
  4. Постоянные блокировки файлов
  5. Я забыл упомянуть о повреждении репозитория ... eeek
  6. Нет ветвления

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

person Community    schedule 27.08.2009
comment
Согласно msdn.microsoft.com/en-us/library/aa302175.aspx поддерживает ветвление. - person Alfred Myers; 26.11.2009
comment
Лучшая ссылка: msdn.microsoft.com/en-us/ библиотека / aw4a9dsx (VS.80) .aspx. Он показывает, как разделять, объединять и выполнять другие задачи. - person Alfred Myers; 26.11.2009
comment
Исправлена ​​проблема с повреждением PDF-файлов. support.microsoft.com/kb/923434 - person Catherine; 06.08.2010
comment
Я считаю, что мы пробовали этот патч для PDF-файлов, который, похоже, ничего не исправлял. - person ; 07.08.2010

person    schedule
comment
Честно говоря, обновление 2005 года было немного более существенным. Но до этого он стоял на месте. Еще +1 за ссылку. Хорошие патроны. - person Henk Holterman; 04.08.2009