Нужен ли контроль версий для небольшой группы разработчиков (1-2 программиста)? - PullRequest
163 голосов
/ 09 сентября 2008

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

Более конкретно, я работаю в отделе, в котором обычно есть два разработчика PHP, использующих общую среду. Он утверждает, что у нас нет никакой добавленной стоимости, если Subversion установлен в нашей системе разработки, тогда как я утверждаю, что иногда приятно иметь возможность откатиться назад, чтобы увидеть предыдущий код, особенно когда возникают необъяснимые ошибки, которые трудно определить указать в некоторых из классов.

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

Ответы [ 45 ]

244 голосов
/ 09 сентября 2008

Вы всегда, всегда хотите иметь какой-то контроль исходного кода, даже если вы работаете над проектом самостоятельно.

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

Отсутствие какого-либо контроля над исходным кодом - чистое безумие.

132 голосов
/ 13 сентября 2008

Я просто собираюсь здесь и скажу ДА. Как @ 17 из 26 сказал

Отсутствие какого-либо контроля над исходным кодом - чистое безумие.

Это правда. Я делал небольшие проекты как с контролем исходного кода, так и без него (не мой выбор). Без, это просто отстой. Канонической версии проекта не существует, вы никогда не знаете, кто что имеет, и объединение изменений - это упражнение от боли.

Действительно, все, что касается примерно 5 строк кода, должно быть под контролем версии.

94 голосов
/ 09 сентября 2008

Определенно да.

Даже если вы один программист, вам нужен контроль версий. Простота, с которой вы можете сравнить код с любым моментальным снимком, бесценна.

Мой совет - дерзайте!

[Когда-то я жил без контроля версий. Теперь я не могу больше.]

62 голосов
/ 09 сентября 2008

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

Кроме того, я проверяю документы у пользователей и тому подобное.

Это отличный способ отследить ваше развитие.

27 голосов
/ 18 сентября 2008

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

Даже если вы одинокий разработчик, это будет

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

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

Это только основы, которые помогут вам выиграть любой спор о том, стоит ли использовать контроль версий.

26 голосов
/ 10 сентября 2008

Я программист «одного человека», и я наконец начал использовать контроль версий, когда обнаружил, что копирую целые приложения и помещаю их в папку с именем «backup», а затем называю их что-то вроде «20080122-backup». Я полагаю, многие люди начинают так. Таким образом, вопрос не в том, следует ли вам использовать контроль версий, а в том, правильно ли вы это делаете или же вам нужно взломать какое-то недоделанное домашнее факсимиле?

26 голосов
/ 10 сентября 2008

Subversion - абсолютно нет. Он централизован и поддержка слияний не так хороша.

Контроль версий - абсолютно ДА! Это нужно даже одиночному разработчику!

И небольшим и быстрым мобильным командам нужен распределенный контроль версий, поэтому выберите один из следующих вариантов:

  • мерзавец
  • ртутный
  • Darcs

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

А где живут эти распределенные репозитории? Вот несколько идей:

  • в вашей личной карте памяти USB (и не ограничивайте себя одной картой USB, распределяйте их также по разным местам, например, в банковской ячейке в вашем банке)
  • другой в безопасном месте (за пределами площадки, в другом месте, на другой стороне сети), где пожары, землетрясения или торнадо не могут нанести вред вашему источнику одновременно) в качестве резервной копии
  • один на централизованном сервере, ваш или что-то вроде github
  • несколько копий на машинах разработчика
  • промежуточное хранилище где-то рядом с промежуточным сервером
  • Хранилище продукции где-то рядом с производственной площадкой
22 голосов
/ 09 сентября 2008

Контроль версий необходим только при количестве программистов> 0.

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

Помимо этого - ищите систему, которая позволяет вам совершать ранние и частые коммиты.

Я почти - странно, хотя это может показаться странным - я склоняюсь к мнению, что каждый проект, даже 1 раз, должен смотреть на непрерывную интеграцию, т.е. построение и тестирование этой системы с нуля, каждый раз, когда происходят изменения или, по крайней мере, на регулярной основе. Зачем? Это а) дает вам уверенность в том, что у вас есть система для сборки в VCS, и б) гарантирует, что у вас действительно есть чистые сборки для тестирования и развертывания.

10 голосов
/ 10 сентября 2008

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

10 голосов
/ 09 сентября 2008

Я не знаю, в частности, о Subversion, но я считаю, что каждый проект, даже один с одним разработчиком, должен использовать контроль версий. Я хотел бы взглянуть на несколько вариантов (CVS, SubVersion, git, Bazaar, Visual SourceSafe) и посмотреть, какие из них наилучшим образом соответствуют желаниям вашей команды.

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