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

30

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

  • Мне больше не нужно заботиться о локальном резервном копировании
  • Ошибки могут быть легко устранены
  • История может быть сохранена

Но, с другой стороны, у него есть и недостатки, например:

  • Требуются дополнительные ресурсы
  • Время настроить, привыкнуть к нему и т. Д.

Исходя из вашего опыта, хорошо ли использовать контроль версий, когда вы работаете один?

RoflcoptrException
источник
Мои два цента: я использую Mercurial и NetBeans, и наиболее ценная часть VCS, которую я использую (Mercurial), в состоянии вносить изменения, просматривать изменения и удалять их (фиксировать) (файлы за раз или весь проект) на досуге (NetBeans имеет графическую разность, которая работает с Mercurial). Это помогает мне справиться с тем, что я только что сделал. У нашей компании другая история и система резервного копирования, поэтому я обычно не использую ее для этой цели.
Брайан Филд

Ответы:

46

Да.

Все, что для этого нужно - это единственная ошибка, и вы будете пнуть себя за это. Вы также можете выбрать, какая система контроля версий (VCS) используется. Если есть вероятность, что вы будете работать в команде разработчиков в будущем, это прекрасное время, чтобы дать вам практический опыт работы с VCS. SVN и Git (или Mercurial) были бы отличными отправными точками, и им нужно всего несколько часов, чтобы понять основные команды в каждой VCS.

Теперь, чтобы развенчать, что отрицательные моменты ...

1) Требуются дополнительные ресурсы

Только ресурс требуется дисковое пространство. Так как это небольшой процент (меньше в Git, чем X ) вашего общего кода, я не думаю, что это будет проблемой. Это также не стоит никаких денег.

2) Время настроить, привыкнуть к нему и т. Д.

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

JK
источник
5
+1: очень хорошие очки. Однако я бы не рекомендовал svn: он не позволяет вносить изменения, когда он не подключен к Интернету, что иногда может быть серьезным ограничением. Я бы порекомендовал Git (для опытных пользователей) или Mercurial (для более простой системы).
Эрик О Лебиго
7
Еще один голос за Mercurial.
Крис Холмс
4
@EOL, SubVersion жизнеспособна в этом случае. Если хранилище является локальным, то для совершения коммитов не требуется интернет-соединение. (Хотя я хотел бы предположить, что хранилище должно быть как минимум на отдельном диске от диска разработки.)
Кен Хендерсон,
1
@EOL: Ах да, я забыл включить Mercurial, потому что я не использовал его раньше; будет редактировать сейчас. Хотя (после использования Git) я бы не стал трогать SVN, если бы пришлось, SVN все еще широко используется.
JK
1
@ken SVN с локальным репо в Dropbox идеально подходит для одного пользователя
Мартин Беккет
13

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

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

davidhaskins
источник
4
Единственная проблема с Word заключается в том, что он в двоичном формате, поэтому вы не можете сделать это diff; Еще одна причина использовать LaTeX.
Габлин
Какой смысл использовать его с изображениями?
Ладья
например, WinMerge может различать документы Word и Excel
Simon
2
@Rook: смысл использования его с изображениями заключается в том, что если вы редактируете изображение, вы всегда можете вернуться к старой версии, если вам нужно.
Алекс Д
9

Я люблю использовать Git, когда работаю один. Например, работая в PHP, я просто создаю Git-репозиторий в своем локальном каталоге, который обслуживает Apache. Я могу легко начать работу над новой функцией (в ветке) и протестировать ее на своей локальной машине. Затем, если что-то появляется, и мне нужно сделать «экстренное исправление», это просто:

git checkout master

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

Кривая обучения не очень крутая, и есть много информации в Интернете, чтобы помочь вам начать. Копайся в этом. Это стоит того.

TaylorOtwell
источник
Git вместе с GitHub или Gist стоят усилий для сольных проектов. Они защищают вас от вас самих и позволяют легко получить помощь, когда вы готовы к участию других.
Роб Аллен
5

Журнал изменений дает вам хорошее место для документирования ваших изменений, не загромождая источник.

Йорис Гир
источник
2

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

И вы можете получить к нему доступ в любом месте, если вам нужно.

Джеймс Лав
источник
4
Вы можете быть осторожны при загрузке собственности компании на внешние серверы. это может быть хорошо с некоторыми компаниями, но другие нахмурились бы на это.
Дэвид Хаскинс
1
Хорошая точка, чтобы остерегаться. Податель сказал, что проекты для себя, поэтому я предположил, что это было для личного использования, но определенно убедитесь, что линейные менеджеры знают о системе, с которой вы решили пойти (особенно если они облачны-фобичны).
Джеймс Лав
2

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

Coyote21
источник
2

Если вы ищете бесплатную поддержку с закрытым исходным кодом, я бы внимательно посмотрел на Visual Studio Online. Это бесплатно для до 5 разработчиков, и быть самостоятельно ... ну ... да. Это пост спустя 4 года, так что ваша ситуация, вероятно, изменилась, но для других отдельных разработчиков, ищущих простой контроль версий, VSO - один из моих любимых вариантов, если я не хочу раскрывать свой исходный код. IIRC Github является бесплатным только для материалов с открытым исходным кодом, но их цены очень недороги. И VSO, и Github очень хорошо интегрируются с Visual Studio, если это ваш выбор IDE.

Билл Самброне
источник
И VSO теперь поддерживает Git! Прощай, неуклюжий старый TFVC!
RubberDuck
1

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

туз в рукаве
источник
1

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

теория хаоса
источник