Контроль версий для независимых разработчиков?


60

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


54
Я хотел бы, чтобы фармацевт спросил: «Должен ли я хранить лекарства организованным способом или просто бросить их в ящик? Стоит ли усилий?»
— Эрик

23
Только представьте, что вы работаете действительно усердно целую неделю, создавая этот потрясающий программный продукт. Затем удалите его. Как бы вы себя чувствовали? Это не просто хранение. Когда что-то сломалось, что сработало на прошлой неделе, вы можете посмотреть, что изменилось, и, как правило, увидеть, что вы сломали. Я до сих пор вижу «профессиональных» разработчиков с папками backup001 и backup_backup001, смешанными с их источником. Формируйте хорошие привычки, пока вы еще молоды.
— Эрик

@ Эрик Як, папки с резервными копиями звучат противно. Я использую управление исходным кодом для своих проектов, хотя я не очень хорош в фиксации часто.
— 2010 года

Ответы:


61

Если вы используете децентрализованное управление исходным кодом (Mercurial, Git, Bazaar и т. Д.), Вы получаете преимущества по сравнению с SVN / CVS, что делает его легким, полезным и мощным для использования в случае, если вы - инди:

  1. Вы фиксируете локально : каталог вашего проекта - это ваш репозиторий с полной историей. Таким образом, вам не нужно иметь сервер, вы делаете коммит прямо в своем репо, и вы можете иметь несколько репо на одном компьютере. Используя ноутбук, который вы открываете иногда, чтобы продолжить работу над своими вещами? Большой! Вам не нужно настраивать сервер, и если он вам понадобится позже, это легко, и вы просто «проталкиваете» и «вытягиваете» изменения между репозиториями.
  2. Это сделано для облегчения экспериментов : часто вам нужно иметь представление о функции без загрязнения кода. С SVN и CVS вы уже можете использовать систему ветвления и отбрасывать ветку, если функция не так хороша, как вы хотели. Но если вы хотите объединить эту функцию с внешней версией, у вас будет много неприятных сюрпризов. Git, Mercurial и Bazaar (по крайней мере) делают слияния и ветки действительно легкими. Вы можете даже просто скопировать репо, поработать над ним некоторое время, по-прежнему фиксировать и убивать его или помещать свои изменения в основной репо, если хотите.
  3. Гибкость организации : как указывалось ранее, поскольку у вас есть репозитории, которые вы организуете по своему усмотрению, легко начать в одиночку и позволить другим людям работать с вами, изменив вашу организацию. Ни одна организация не навязывается, поэтому вам просто нужно ее настроить и вуаля. Я часто просто проталкиваю изменения между моими собственными компьютерами (ноутбук / рабочий стол / сервер), и я все еще один на своих разработчиках. Я использую Mercurial, и это помогает мне дублировать мою работу, но я также работаю над функциями, о которых я думал снаружи, на моем ноутбуке, затем продолжаю работать над другими функциями на моем рабочем столе, затем помещаю изменения в моем ноутбуке на мой рабочий стол или сервер и объединяю весь рабочий стол + Ноутбук и поставить его (в качестве резервного и будущего командного репо) на моем сервере.
  4. Это помогает настроить резервное копирование : если вы настраиваете центральное хранилище (в GitHub, если оно общедоступное, или в частном хранилище в BitBucket), вы можете легко написать сценарий, который будет выполняться при каждой загрузке компьютера, а затем передать указанный сценарий на своим друзьям, чтобы он регулярно делал автоматические резервные копии вашей работы. Это то, чем я занимаюсь, теперь я уверен, что потерять работу будет нелегко.

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


6
Там всегда GitHub .
— HedgeMage

8
Или bitbucket.org, если вы используете Mercurial.
— Теренс Понсе

7
Mercurial с локальным репозиторием файловой системы на Dropbox работает очень хорошо для одного разработчика.
— Питер Порода

1
@Guillaume: один разработчик может использовать «распределенный» аспект DVCS. Я делаю. Например, я могу работать на компьютере A, нажать мою работу на моем USB-ключе, а затем вытащить с этого USB-ключа на компьютере B.
— Barjak

1
@Guillaume «Распределенный» - это технический, а не организационный аспект. Вы можете использовать централизованную исходную систему constrol с организацией, в которой интеграторам разрешено только проверять принятый код. Это возможно, но сложно настроить из-за централизованного характера инструмента. Но это все еще ортогональная проблема.
— Klaim

34

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

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

Назовите меня «зависимым разработчиком»: репозитории Mercurial легко клонируются между моим рабочим столом, ноутбуками, USB-накопителями и bitbucket.org. Я стал зависимым, и мне это нравится!


6
Этот ответ саркастичен?

4
@kurtnelle: очень!
— Стивен А. Лоу

1
Кьюлио, просто проверяю.

21

Почему нет?

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


8
+1 для BitBucket - они предлагают неограниченное количество частных репозиториев бесплатно.
— Джон Сагара

2
Бесплатные частные репозитории являются причиной, по которой я использую BitBucket вместо GitHub.
— Теренс Понсе

4
бесплатный приватный репо Вы могли бы превратить меня из мерзавца в рт
— Готье

@ Gauthier, да, у BitBucket есть бесплатные частные репозитории. Я не уверен, что они безграничны.
— Теренс Понсе

1
Вы все еще можете использовать git с bitbucket. На самом деле импорт прямо из github, включая ключи ssh. Просто сделал ход, но все еще использую git (мне это нравится больше!)
— Даниэль Кассерли

1

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


1

Да. Это очень очень полезно. Мой друг Мэтт Галлахер опубликовал эту прекрасную статью на эту тему всего несколько дней назад в своем блоге для разработчиков iOS / MacOS «Какао с любовью».

Эта статья ориентирована на Mac & Git, но охватывает основы.

Вас также могут заинтересовать следующие вопросы StackExchange (и ответы на них).


1

Стоит?? Должен! Если вы не используете Source Control, то вы не контролируете свои источники, и это плохо. Вы не можете различить, вы не можете вернуться, вы не можете отслеживать изменения - вы потратите часы, пытаясь выяснить фиктивную ошибку, которую вы только что ввели. Лучше иметь его на каком-либо резервном сервере, но вы также можете использовать свой компьютер и использовать любой способ резервного копирования, который сочтете нужным.


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

1

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


0

Да.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.