Есть ли преимущества использования DVCS для индивидуального разработчика?

19

Прямо сейчас я использую визуальный svn на моем сервере, и у меня есть ankhsvn / tortoise на моей персональной машине. Он работает достаточно хорошо, и мне не нужно ничего менять, но если я увижу некоторые преимущества использования DVCS, то я могу попробовать.

Однако, если нет никакого смысла или разницы, используя это без других людей, то я не буду беспокоиться.

Итак, еще раз, я спрашиваю, есть ли преимущества использования DVCS, когда вы единственный разработчик?

Стивен Эверс
источник
1
Смотрите аналогичный пост на stackoverflow: stackoverflow.com/questions/179161/… . Все, что вам нужно знать, хорошо подытожено.
ysolik 10.10.10
Так что мой вопрос был закрыт как точный дубликат, как этот. К сожалению, этот вопрос не отвечает на мой. Ребята, вы толкаете и вытаскиваете из мастера, когда вы работаете соло, или вы ветвитесь и сливаетесь? Я просто пытаюсь понять, как правильно использовать DVCS, когда ты один
Чейз Флорелл
1
резервные копии по сути просто еще один клон. Это может быть очень важно когда-нибудь. Также git tooling на несколько лет впереди SVN.
Вы когда-нибудь работали на ноутбуке, вдали от вашего сервера?
JBRWilkinson

Ответы:

19

Да! Я думаю, что наибольшим преимуществом является лучшая поддержка ветвления + слияния, предлагаемая многими DVCS. Разветвление и слияние - это боль в заднице в SVN; Это достаточно раздражает, так как не стоит тратить время на создание небольших короткоживущих веток для быстрого добавления функций, исправления ошибок или экспериментов, но слияние также достаточно раздражает, так как создание долгоживущих ветвей также затруднительно. С другой стороны, ветвление и слияние в Git очень просты, настолько, что я создаю (локальную) ветвь почти для каждого исправления ошибки или функции, над которой я работаю.

Я думаю, что инструменты, предлагаемые Git для визуализации репозиториев, записи журналов и т. Д., Также намного лучше, чем в SVN (хотя это скорее вещь Git, чем специфичная для DVCS).

DVCS также не требует центрального сервера; при использовании SVN в качестве разработчика вы должны создать локальное репо, в которое вы хотите войти, что не является обязательным для Git, поскольку каждое репо содержит полную историю. Как следствие, архивирование репо - это всего лишь вопрос архивации вашего проекта - нет «центральной базы данных» для резервного копирования.

Я начал использовать Git почти четыре года назад, после некоторого использования SVN, и я не оглядывался назад.

mipadi
источник
Мнение мнения: programmers.stackexchange.com/questions/940/…
TheLQ 10.10.10
4
Существует мнение, что DVCS не облегчают слияние, но пользователи DVCS более опытны в выполнении слияний. Это дает субъективный вид слияния, будучи легче. Конечно, субъективное мнение имеет значение.
Ричард
3
DVCS не только равняется мерзавцу
Мерф
6
@Richard Но это неправильно, централизованные инструменты, как правило, имеют линейную историю, которая не поддерживает сложные слияния.
альтернатива
2
@Murph: Это правда, но я использую Git, поэтому я использовал его в своем примере.
Мипади
7

Я часто использую DVCS для своих личных вещей. (Я один из тех парней, которые на $ HOME в git .) Есть несколько преимуществ:

  • Это делает репликацию между моим ноутбуком и настольными и лабораторными компьютерами очень простой. Хотя это было верно и для SVN ...
  • Я могу зафиксировать на ноутбуке, даже когда у меня нет доступа к интернету.
  • Резервное копирование так же просто, как git pull.
  • Я могу использовать, git citoolчтобы разбить множество изменений на коммиты логического размера, даже если я принял множество несвязанных изменений, прежде чем принять решение о фиксации. Я не знаю инструмента для этого в Subversion.
  • Когда мне нужно пропатчить проект с открытым исходным кодом, проще организовать вещи, создав новый репозиторий git в каталоге проекта, чем сделать вторую копию любого исходного дерева, которое я патчу. (Вы не можете сделать это легко с Subversion, потому что вам нужен отдельный репозиторий где-то еще на вашем жестком диске.)
  • Я использую легкие функции ветвления, чтобы проверить изменения, которые я получаю от других людей. Например, когда я редактирую документ конференции с моим советником, хотя у него нет доступа к хранилищу, я могу отправить ему копию документа и проверить его ревизии в ветке, основанной на версии, которую я отправил. его, а затем использовать, git mergeчтобы объединить его ревизии со всем, что я сделал за это время.

Git научил меня думать обо всех моих изменениях в логических порциях, гораздо больше, чем когда-либо делал Subversion.

Кен Блум
источник
(или git fetch для зеркала)
5

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

linquize
источник
1
Я бы назвал это «способностью работать с самолета» или «способностью работать при сбое bitbucket.com», но +1 за покрытие автономного случая.
Уайетт Барнетт
Также открытые места без сети 3G.
Linquize
3

Ну, по умолчанию ответ будет: «Если (что вы сейчас используете) работает для вас, почему бы вы изменились?».

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

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

Прыжки через ворота к вступлению в Mercurial и блогу (красивые цвета ;-) с полезными советами .

ладья
источник
Хм, раньше у нас работал CVS, но не было так близко, как и к Subversion, когда мы перешли к нему. Новые игрушки дают вам новые возможности - поэтому именно по этой причине я смотрю на то, может ли Mercurial сейчас быть лучшим вариантом (особенно когда я использую FogBugz), а также на потенциал правдивости ...
Мерф
3
Переход с SVN на Mercurial стал для меня откровением. Он был вдохновлен замечательным hginit.com Джоэла, и я никогда не оглядывался назад.
Адам Кроссленд