Сколько накладных расходов и времени обучения на использование контроля версий? - PullRequest
2 голосов
/ 24 июля 2011

Справочная информация: мы небольшая компания по веб-разработке.У нас есть 5 программистов, которые в 70% случаев создают простые PHP-сайты (с небольшим количеством MySQL для новостей / каталога продуктов и т. Д.), И 30% времени мы работаем над более крупными проектами (часто с индивидуальными ERP-системами).У нас есть центральный сервер, расположенный в офисе, мы используем Linux среди всех пользователей (и сервера) и работаем, просто монтируя сервер и работая в каталогах (проектах веб-сайтов), с которыми нам нужно работать.В настоящее время это работает нормально.Есть две вещи, которые заставляют меня задуматься о контроле версий:

  • A довольно сильный чехол от многочисленных сайтов, людей и т. Д.
  • Потенциальные проблемы, которые могут возникнуть в будущем, когда компания будет расти и несколько человек будут работать над одним проектом одновременно.

Однако, несмотря на то, что люди упоминают, что их забивают при упоминанииПричины не использовать контроль версий, у меня есть определенные колебания из-за этих моментов:

  • Мы делаем много изменений, но они часто очень маленькие изменения.
  • Практически никогда не бывает необходимости отменить изменения.
  • Мы часто создаем резервные копии, которые можно использовать в случае необходимости чего-то «предыдущего» * ​​1022 *
  • Вряд ли когда-нибудь несколько человек работают над одним и тем же кодом одновременно.Проект обычно «перетекает» от человека к человеку, поскольку разные люди отвечают за разные фазы разработки (HTML / CSS / PHP / MySQL)
  • Когда проект более сложный, мы обычно назначаем его одному человеку,
  • Сейчас мы довольно заняты работой

Так что я действительно вижу преимущества контроля версий, но я просто обеспокоен дополнительными затратами, которые требуются при разработке сайта.Я никогда не использовал такую ​​систему раньше.И я чувствую, что сейчас все так просто и быстро, что мы потеряем время при использовании ВК.Регистрация, проверка и т. Д. Складывается, если вы хотите внести 20 небольших изменений в 20 различных сайтов в течение дня.По крайней мере, я так думаю.Поэтому мой вопрос: стоит ли переходить на ВК скорее раньше, чем позже, или мы не должны терять время на этом прямо сейчас?Трудно ли это узнать?И, наконец, является ли GIT значительно более трудоемким (изучение и использование), чем SVN?(Мне нравится нецентрализованный аспект GIT, но это не обязательно).

ПРИМЕЧАНИЕ: мы все кодируем, используя обычные текстовые редакторы, такие как VIM или jEdit.

Ответы [ 4 ]

6 голосов
/ 24 июля 2011

В сценарии, который вы описали, управление версиями должно быть проще для работы - и, следовательно, накладные расходы должны быть очень низкими.Например, с тем, что вы описываете, все, что вам в основном нужно сделать, это (пример Git):

  1. Начало работы: git pull
  2. Работать (обычночто вы уже делаете)
  3. git add . (в каталоге верхнего уровня)
  4. git commit -m "A quick message saying what you did"
  5. git push

И этоэто.

1 голос
/ 26 июля 2011

Использовать контроль версий , вопросов не должно быть.

Вы говорите, что:

Практически никогда не случается, что нам нужно отменить изменение.

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

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


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

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

Во-вторых, как только вы начнете использовать SCM, такой как git, вы обнаружите, что он становится неотъемлемой частью вашей повседневной деятельности. Люди, которые не используют SCM, могут не понимать, какие функции вам не хватает:

  • Мгновенное переключение между ветвями кода
  • Отмена временных изменений в любой точке сохранения и повторное применение позже
  • Автоматическое объединение изменений от нескольких разработчиков
  • Иметь запись о том, кто последним изменил строку, или кто был первоначальным автором
  • Наличие временной записи о том, когда / что меняется в вашем коде
  • Возможность синхронизации ошибок и фиксации кода.
  • и т.д ...

Надеюсь, это убедит вас! Удачи.

1 голос
/ 24 июля 2011

Даже если вы решите использовать для контроля версий что-то иное, чем subversion, вам было бы хорошо прочитать первые три главы книги о подрывной деятельности . Команды для всех популярных систем управления версиями не отличаются радикально от инструмента к инструменту (даже если система распределения), и это укрепит повседневную информацию о том, что означает использование контроля версий как с точки зрения 10000 футов, так и с 1 фута. вид.

Скоро станет очевидным, что использование контроля версий не увеличивает время разработки. Около 20 секунд для большой регистрации и от 2 до 3 секунд для маленькой. Гораздо дешевле, чем 20-минутная попытка исследовать архивы, чтобы выяснить, были ли изменения в модуле (при условии, что у вас есть легко настраиваемые архивы каждой «сборки». Я знаю, вы предполагаете, что такого никогда не должно происходить, но если придется сделать это хоть раз, это может окупиться вовремя.

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

1 голос
/ 24 июля 2011

Используя размещенное решение, такое как github или аналогичный провайдер, вы можете начать работу примерно через 30 минут и иметь возможность проверять и вводить код.Компетентность с более продвинутыми функциями и использованием вашей VCS придет со временем.По мере того, как вы будете чувствовать себя более комфортно и хорошо разбираться в VCS, вы даже начнете использовать контроль версий, чтобы помочь быстрее находить ошибки (git bisect и т. Д., Но не беспокойтесь об этом сейчас)

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