Подтвердить что ты не робот

Поиск примеров рабочего процесса с помощью git -format-patch и git am

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

Может ли кто-нибудь дать мне короткую серию примеров, в которых показаны два человека, каждый из которых имеет частный репозиторий git, обмениваясь патчами, используя git -формат-патч и git -am? Или, альтернативно, укажите мне существующую документацию и/или учебник git?

4b9b3361

Ответ 1

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

Одна вещь, которую они могут сделать, это сохранить ссылку на последний раз, когда они сделали патч формата. Скажем, они начинают с того, что просто отправляют все свое дерево (в том числе .git):

tar cvf - mytree | gzip -9vc > /tmp/mytree.tgz
# mail /tmp/mytree.tgz
git tag last-send
# hack, commit, hack, commit
git format-patch -M -C last-send..
# mail 00* && rm 00*
git tag -f last-send

git tag в этой форме создает "легкий тег". Это своего рода закладка. Это будет простой способ для людей отслеживать, что они отправили, чтобы они могли отправить его в следующий раз.

С другой стороны:

# get patches from mail and place in /tmp
git am /tmp/00*
rm /tmp/00*

Ответ 2

Кажется, что git bundle - лучший вариант. В отличие от git format-patch, который является односторонним рабочим процессом обмена, пакет позволяет использовать тот же рабочий процесс, который вы используете с публичными пультами, но отделен от прямого доступа.

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

патчи больше предназначены для подачи заявки на одобрение по стилю передачи проекта.