У меня есть контракт на написание части программы. Человек, пишущий другую часть, находится в другом городе. Я хочу найти удобный способ отправки изменений туда и обратно. По другим причинам я хотел бы научиться использовать git в качестве распределенной VCS и переписываться по электронной почте. (Я работал с SCCS, RCS и PVCS раньше, всегда с блокировками. Я хочу научиться тому, как лучше использовать ветвление и слияние и не зависеть от центрального сервера.)
Нам нужно выполнить следующие две задачи (довольно стандартный список):
(a) Каждый из нас вносит свой вклад в исправление ошибок и новые функции, которые требуют изменений в обеих частях.
(b) Компилировать и упаковывать двоичные файлы для клиентов.
(Нам также нужно отдельно работать над функциями, которые не зависят от других, но я предполагаю, что все, что работает для задачи (а), будет работать и для этого.)
Фон: другой парень никогда не использовал VCS прежде; он немного сопротивляется этой идее. Он даже не знал, что они все еще не используют блокировку кассовых аппаратов. Мне нужно было бы понять все, что мы делаем, достаточно глубоко, чтобы я мог помочь ему преодолеть трудные моменты, не испытывая особого разочарования с его стороны. Ему также очень неудобно хранить исходники на сервере, что является еще одной причиной, чтобы предпочесть изменения по электронной почте. Мы можем легко зашифровать их.
Другой, возможно, важный контекст: мы используем Delphi на Windows в качестве среды разработки. Крайне маловероятно, что мы когда-либо добавим другого разработчика. Нам нужно упаковывать версии клиентов только пару раз в год, если это так. Количество клиентов, вероятно, никогда не превысит десяти.
Вопросы:
1) Должен ли я использовать этот проект для изучения методов распределенной разработки? Или это настолько излишне, что я должен сделать что-то попроще? Я не против потратить дополнительное время на обучение, но не более пары недель.
2) Предполагая «Да» на вопрос 1, какой рабочий процесс мы должны использовать для каждой из перечисленных выше задач?
3) Какие программы Windows GUI будут выполнять все необходимые задачи? (Я очень хорошо разбираюсь в командной строке; он нет.)
Спасибо за вашу помощь.
Я написал довольно подробный учебник по «gitting start», который показывает, что я узнал об использовании git. Это на http://xorandor.com/GittingStarted, если вы хотите прочитать это до сих пор. Я попытался написать это для новичка в git, который знает немного, но не очень много о VCS в целом. Я планирую добавить к этому, как я узнаю больше.