Поиск примеров рабочего процесса с использованием 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
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
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-накопитель или отправлять пакеты по электронной почте.

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

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