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

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

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

Git-bundle stackoverflow.com/questions/2175961/…

ijk 08.01.2013 05:32
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
Принципы ООП в JavaScript
Принципы ООП в JavaScript
Парадигма объектно-ориентированного программирования имеет 4 основных принципа,
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Можете ли вы объяснить разницу между ngOnInit и конструктором в Angular?
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
19
1
14 176
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Лучше всего, если они могут видеть репозитории git друг друга. Сам 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*

К сожалению, они никогда не видят репо друг друга, хотя они могут быть оба перед компьютером, работающим над одним из двух репозиториев. Но это похоже на то, на что я надеялся, так что это меня возбуждает.

Norman Ramsey 29.11.2008 10:32

Спасибо за этот ответ. Это помогло мне преобразовать беспорядочный репозиторий SVN в Git. Мой опыт на blog.orfjackal.net/2009/05/…

Esko Luontola 09.05.2009 03:24

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

Sukima 27.01.2016 02:08

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

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

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

Другие вопросы по теме