Добрый день.
Я знаю, что мы должны задавать вопросы, на которые можно ответить, а не просто обсудить, поэтому я постараюсь сделать мой вопрос количественно измеримым, хотя это не совсем так по своей природе.
Я пишу несколько заявок на исследовательский проект в моем университете. У меня есть несколько "главных" проектов, а также несколько веток. Со временем эти ветви становятся все труднее контролировать. В общем, у меня слишком много мест, где я застрял в проектах кода. Я единственный парень, который действительно работает над этими приложениями, но у меня есть некоторые люди, которые могут получить выгоду от доступа к коду. Кроме того, я хотел бы очистить проекты для будущего использования, будь то продолжение моей работы после получения диплома другими, мои собственные проекты вне работы или возможность показать будущим работодателям, каковы мои навыки.
Одним из возможных ответов на эту проблему является программное обеспечение для контроля версий. Я знаю об этом, но я действительно не использовал это ... Я проверил один или два проекта из GitHub, но никогда не задумывался над тем, что нужно для настройки и эксплуатации такой системы. Кажется, что в наши дни существует немало вариантов, как собственных, так и бесплатных.
У меня есть следующие желания для такой системы:
Может работать в системах, которые я контролирую. У меня есть экземпляр Amazon EC2 Micro для некоторых моих работ, так что это было бы единственное место, где я мог бы установить такое программное обеспечение. Мне доступны и другие машины, поэтому я не обязательно ограничен экземпляром Micro, но пока это моя главная цель. Прямо сейчас он запускает копию собственного Linux-образа Amazon, поэтому в идеале управление версиями должно выполняться в Linux. Хотя я хочу, чтобы он размещался на моих собственных системах, я не хочу, чтобы управление ими было полной занятостью ... Я студент и разработчик в первую очередь.
Доступно через Microsoft Visual Studio. Хотя я иногда работаю в других средах, львиная доля моей работы выполняется в C # с Visual Studio 2012. В идеале я мог бы проверить и объединить изменения в IDE.
Хорошо задокументированы. Само собой разумеется, но мы все были там раньше.
Легко для резервного копирования или передачи. Я не уверен, что именно используется для организации проектов, но было бы неплохо, если бы я мог взять свои проекты и переместить их в другую систему контроля версий, если я выберу. Конечно, так как это рабочие файлы, я должен иметь возможность создавать их резервные копии.
Каковы ваши предложения относительно программного обеспечения для контроля версий с учетом этих критериев? Я студент, и это более или менее мой личный проект, поэтому, хотя у меня есть доступ к некоторым проприетарным системам практически бесплатно (продукты Microsoft сразу приходят на ум), у меня не так много денег, чтобы потратить в это. В идеале решение бесплатное. Я надеюсь, что способ, которым я структурировал этот вопрос, позволяет получить определенный ответ или набор предложений.