Продолжим разговор об инструментах.
VCS - системы контроля версий (Version Control System)Хотел найти нормальную статью с описанием "зачем это нужно", но ничего толкового не нашел.
Если кратко, то VCS упорядочивает тот бардак, что образуется на диске при разработке: куча файлов / папок с копиями или прошлыми версиями. В файлах больше закоментаренного кода (на всякий случай), чем реально используемого кода. Совместная работа крайне усложнена и происходит на уровне "переслал архив, глянь". Что и откуда взялось, зачем правилось и т.д. знает только тот, кто это сделал (и если прошло не так много времени).
Если чуть подробнее, то основные задачи VCS:
- История изменений. Каждое изменение явно фиксируется в истории с явным перечнем изменений и комментарием разработчика.
- Контроль версий. Все версии в одном месте, по истории всегда видно какие именно изменения были включены в версию.
- Совместная работа. VCS позволяет организовать совместную работу над одним кодом. Все имеют доступ к единой истории изменений и всегда имеют актуальную версию приложения.
Дополнительно можно почитать
википедию или воспользоваться
помощью высшего разума.
Могу порекомендовать следующее VCS:- Mercurial, он же Hg. Современная продвинутая децентрализованная VCS. Основной особенностью могу назвать простоту, дружественность к новичкам и наличие очень удобного кросс-платформенного GUI к ней - TortoiseHg. Лично я предпочитаю эту VCS за GUI и невозможность (или вернее крайнюю сложность) "выстрелить к себе в ногу".
- Git. Современная продвинутая децентрализованная VCS. Можно смело назвать современным стандартом для систем управления версиями. Лично я ее не очень жалую из-за сложности, необходимости использовать коммандной строки (GUI есть, но не столь удобные), недружественности к новичкам (очень просто выстрелить себе в ногу).
В целом, Hg / git обладают равными возможностями и выбор между ними крайне холиварен. Но лично я предпочитаю Hg именно из-за большей дружественности к пользователям.
Хостинг проектовСоздать проект и положить его в VCS мало. Необходимо еще и хостить где-нибудь этот проект, чтобы была возможность обмениваться кодом проекта, получать доступ к коду из любого места и не зависеть от жизни винта компьютера.
- Bitbucket - популярное место хостинга проектов. Поддерживает Hg / git. На бесплатном аккаунте можно создавать приватные репозитории (до 5 пользователей).
- GitHub - фактически стандарт для хостинга проектов с открытым исходным кодом. Поддерживает только git. На бесплатном тарифе можно создавать исключительно общедоступные репозитории (приватные - только на платных тарифах).
Помимо хостинга репозитория, Bitbucket и GitHub предоставляют место для ведения документации (wiki проекта) и менеджер задач (Issue tracker). Также предоставляют возможность публикации релизов.
Лично я предпочитаю Bitbucket из-за поддержки Hg и приватных репозиториев на бесплатном тарифе.