Альтернатива VSS для шоу одного человека (army of one?)

StackOverflow https://stackoverflow.com/questions/31627

  •  09-06-2019
  •  | 
  •  

Вопрос

Я программирую уже более 10 лет для одного и того же работодателя, и единственный элемент управления исходным кодом, который мы когда-либо использовали, - это VSS.(Извините - это то, что у них было, когда я начинал).Нас всегда было всего несколько человек;сейчас их двое, и мы обычно работаем в одиночку, так что VSS сработал для нас нормально.Итак, у меня есть два вопроса:1) Должны ли мы переключиться на что-то другое, например subversion, git, TFS и т.д., что именно и почему (пожалуйста)?2) Неужели я потерял всякую надежду и обречен на вечное проклятие из-за того, что VSS развратил меня (как говорит Джефф)?

Вау - спасибо за все замечательные ответы!

Похоже, мне следует прояснить несколько вещей.Мы являемся МС магазина (золота parntner) и мы в основном делаем ВБ ASP.NET в SQL сервер, сервер SharePoint & BizTalk с работы.У меня степень CS, поэтому я выполнил сборку x86 на C, C ++ в DEC Unix и Slackware Linux в "незапамятные времена"...

Мое беспокойство по поводу VSS заключается в том, что теперь я намного больше работаю через VPN, а производительность VSS достаточна, и я боюсь, что наша база данных VSS 10+ y / o версии 5 будет взломана...Есть служба локальной сети, которая должна ускорить процесс, но я никогда ею не пользовался и не уверен, что она помогает при повреждении - кто-нибудь пользовался службой локальной сети VSS?(новинка с VSS 2005)

Это было полезно?

Решение

На вашем месте я бы, наверное, выбрал Subversion.На данный момент я абсолютный фанатик Git, но Subversion, безусловно, имеет некоторые преимущества:

  • простота
  • множество совместимых инструментов
  • активное и поддерживающее сообщество
  • портативный
  • Имеет действительно хорошую интеграцию с оболочкой Windows
  • интегрируется с Visual Studio (я думаю, но, конечно, через стороннюю организацию)

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

Редактировать:компания, в которой я сейчас работаю, использует VisualSVN server, который является бесплатным.Это упрощает настройку репозитория Subversion на сервере Windows, а на клиенте мы используем TortoiseSVN (для интеграции с оболочкой) и AnkhSVN для поддержки Visual Studio.Это довольно хорошо, и должно быть довольно легко освоить даже пользователям VSS.

Новейшая правка:Итак .... почти восемь лет спустя я бы никогда никому не рекомендовал Subversion ни по какой причине.На самом деле я не отрекаюсь, как таковой, потому что я думаю, что мой совет был действителен в то время.Однако в 2016 году Subversion не сохранила почти ни одного из преимуществ, которые у нее были раньше по сравнению с Git.Инструментарий для Git превосходит (и гораздо разнообразнее) то, что было когда-то, и, в частности, есть GitHub и другие хорошие хостинг-провайдеры Git (BitBucket, Beanstalk, Visual Studio Online, просто навскидку).В Visual Studio теперь есть готовая поддержка Git, и она на самом деле довольно хороша.Существуют даже модули PowerShell, позволяющие пользователям консоли работать с Windows более интуитивно.Git еще проще в настройке и использовании, чем Subversion, и для него не требуется серверный компонент.Git стал настолько вездесущим, насколько это возможно для любого отдельного инструмента, и вы действительно только обманывали бы себя, если бы не использовали его (если только вы просто действительно не хотите использовать что-то не-Git).Не поймите меня неправильно - это не моя ненависть к Subversion, а скорее признание того, что это инструмент из другого времени, скорее похожий на опасную бритву для бритья.

Другие советы

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

Если вы привыкли к тому, как работает VSS, ознакомьтесь (без каламбура) Хранилище исходного кода.Это отличный способ отказаться от VSS, поскольку он поставляется с интеграцией в IDE и поддерживает извлечение / check in, но когда вы будете готовы и почувствуете себя комфортно, вы также можете перейти к стилю программирования edit update commit, который можно найти в SVN.

Это бесплатно для одиночных разработчиков, работает в IIS и построено на .net, так что это должен быть довольно знакомый стек, на который вы можете переключиться.

Что бы вы ни делали, не меняйтесь ради самих изменений.

Если у вас это работает и у вас с этим не возникает проблем, я не вижу никаких причин переключаться.

Как бы то ни было, волей-неволей это потенциальный вариант, если вы действительно придерживаетесь 1 или 2 пользователей.В текущих документах perforce говорится, что у вас есть 2 пользователя и 5 клиентов без необходимости начинать покупку лицензий.

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

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

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

Подводя итог, мой взгляд на Волей-неволей таков:

  • Это быстро и довольно надежно
  • Множество кроссплатформенных клиентских инструментов (Windows, unix, Mac и т.д.)
  • это бесплатно для 2 пользователей и 5 клиентов
  • Интегрируется в developer studio (и другие инструменты)
  • Имеет мощную систему ветвления (которая может подойти вам, а может и не подойти).
  • Имеет несколько скриптовых интерфейсов (python, perl, ruby, C ++).

Конечно, YMMV - я предлагаю эту альтернативу только как нечто, над чем, возможно, стоит задуматься.

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

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

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

Я думаю, что Mercurial имеет много других преимуществ перед Subversion, но у него есть большой недостаток, который уже упоминался как плюс Subversion:там есть Лоты о сторонних инструментах и интеграциях для Subversion.Поскольку Mercurial не существует почти столько же, сколько ong, выбор гораздо меньше.В Windows кажется, что вам нужно либо использовать командную строку (по моему выбору), либо Черепаха Интеграция с проводником Windows.

VSS - это ужасно.Возможно, я ссылаюсь на Спольски (не уверен, говорил ли он это), но использование VSS на самом деле хуже, чем вообще не использовать систему управления версиями.Несмотря на свое название, это это не так в безопасности.Это создает иллюзию безопасности, не обеспечивая ее.

Без VSS вы, вероятно, регулярно создавали бы резервные копии своего кода.С VSS вы подумаете: "М-м-м, он уже находится под управлением исходного кода.Зачем беспокоиться о резервном копировании?" Отлично, пока это повреждает всю вашу кодовую базу и ты теряешь все.(Это, кстати, произошло в компании, в которой я работал.)

Избавьтесь от VSS как можно скорее и переключитесь на реальное решение для управления версиями.

Не беспокойтесь о том, что VSS испортит вас, беспокойтесь о том, что VSS испортит ваши данные.У него нет хорошего послужного списка в этом отделе.

Часто создавайте резервные копии, если вы не переключаетесь на другую систему контроля версий.Резервное копирование должно выполняться ежедневно даже с другими SCM, но с VSS это вдвойне важно.

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

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

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

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

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

Очевидно, что сначала оцените и протестируйте альтернативы в непроизводственной среде.

На работе мы используем subversion с TortoiseSVN - работает очень хорошо, но философски отличается от VSS (на самом деле это не проблема, если есть только вы, но о ней стоит знать).Мне очень нравится тот факт, что весь репозиторий имеет номер редакции.

Будь у меня свободный выбор, я бы, вероятно, выбрал vault, но в то время у меня был нулевой бюджет.

Я рассматриваю вещи для личного пользования.Есть причины использовать subversion и причины использовать что-то совершенно другое.Альтернативы, которые я рассматриваю, - Vault (как и раньше, бесплатный для одноразового использования) и Bazaar.GIT мне пришлось уволить, поскольку я, беззастенчиво, сторонник Windows, а прямо сейчас GIT им просто не является.

Распределенный характер GIT и возможность частных / временных проверок (при условии, что я понял то, что прочитал) является привлекательный - отсюда мой взгляд на Bazaar.

Обновить: Я еще немного покопался и поиграл, и на самом деле выбрал Mercurial для личного использования, интегрированная установка с TortoiseHg делает все очень простым, и, похоже, она хорошо зарекомендовала себя.Я все еще пытаюсь понять, как принудительно создать автоматическое зеркальное отображение коммитов на сервер, и, похоже, у функции ignore есть некоторые незначительные ограничения, но пока она отлично справляется со своей работой...

Мерф

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

я использовал vss в течение многих лет, пока не перешел на svn около двух лет назад.моими самыми большими жалобами на vss были низкая производительность сети (теперь эта проблема может быть решена) и пессимистичная блокировка файлов.svn решает обе эти проблемы, его легко настроить (я использую сервер collabnet и клиент tortoisesvn, хотя есть два хороших плагина Visual Studio:visualsvn - коммерческий и ankhsvn - с открытым исходным кодом), прост в использовании и администрировании и хорошо документирован.

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

Если у вас всего 2 человека, и вы в основном работаете независимо, git предоставит вам гораздо больше гибкости, мощности и будет намного быстрее в работе.

Однако использовать его - сплошная боль в заднице.Используя VSS, вы, очевидно, программируете для Windows - если вы используете Win32 API на C, то git будет кривой обучения, но будет довольно интересным.

Однако, если глубина ваших знаний распространяется только на ASP и Visual Basic, просто используйте subversion.Иди, прежде чем сможешь побежать.

** Я не пытаюсь сказать, что если вы знаете только VB, то вы тупой или что-то в этом роде, но git может быть очень привередливым в использовании (если вы использовали WinAPI в C, вы знаете все о придирчивости), и вам может понадобиться более постепенное знакомство с SCM, чем предоставляет git

Если вы представляете собой шоу для одного человека и, строго говоря, магазин Microsoft, то Хранилище Исходного кода определенно, это тоже главный кандидат на переключение.

Характеристики:

  • Бесплатно для одного пользователя, отлично подходит для вас
  • Он использует SQL Server в качестве своего бэкэнда, поэтому надежность данных огромна
  • Он имеет атомарные проверки, все файлы, зарегистрированные одновременно, объединены в группу и называются набором изменений.
  • Интеграция с VisualStudio.
  • Имеет инструмент для импорта из SourceSafe, поэтому вы можете сохранить свою историю
  • Клиент взаимодействует с сервером по протоколу HTTP, поэтому удаленный доступ к источнику за пределами офиса может быть настроен очень легко и работает хорошо, поскольку они передают только дельты отправляемых и полученных изменений.Вы можете использовать SSL для защиты соединения.

Я бы определенно рассматривал это как вариант.

Если вам нужен полный жизненный цикл в одном пакете, то вы, вероятно, захотите взглянуть на Visual Studio Team System.Для этого требуется сервер, но вы можете получить "Пакет действий" от MS, который включает в себя все лицензии, необходимые для "Team Foundation Server Workgroup Edition", в Партнерском центре.

С этим вы получите отслеживание ошибок, рисков и Проблем, а также множество других функций :)

  • Управление версиями
  • Отслеживание рабочих элементов (Требования, Ошибки, Проблемы, Риски и Задачи)
  • Отчетность по данным вашего проекта (отслеживание рабочих элементов, сборка, проверки и многое другое в одном qube)
  • Анализ кода
  • Модульное тестирование
  • Нагрузочное тестирование
  • Анализ эффективности
  • Автоматизированная сборка
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top