При bleeding edge разработке или просто в рамках экспериментов, приходится добавлять патчи прямиком из maillists.
Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря на то, что, например в mutt, можно спокойно выделить патчи по одному и сохранить всю пачку (ключевое слово здесь спокойно).
Тем у кого горит, предлагаю воспользоваться git-pw.
git pw отдельная утилита не входящая в состав официального git. Хороша она или плоха пусть каждый решает сам - я, например, пользуюсь.
Фактически это программа клиент для любого архива на базе http://jk.ozlabs.org/projects/patchwork/, короткий и неполный список проектов, которые базируются на этой утилите:
Для всего этого многообразия может быть применен git-pw.
Минимально необходимых параметров три:
[pw]
server = http://patchwork.kernel.org/api/1.2/
token =
project = linux-riscv
Для того чтобы пользоваться необходимо зарегистрироваться на соответствующем patchwork и сгенерировать себе TOKEN.
Так же рекомендуется узнать соответствующую версию API так как git pw, внезапно, не умеет делать этого сам.
Для этого заходим на https://patchwork.kernel.org/about/ и сравниваем версию по таблице https://patchwork.readthedocs.io/en/stable-3.0/api/rest/#rest-api-versions.
$ git pw series list --limit 3
+--------+--------------+-------------------------------------------------+-----------+------------------------------------------+
| ID | Date | Name | Version | Submitter |
|--------+--------------+-------------------------------------------------+-----------+------------------------------------------|
| 579699 | 20 hours ago | riscv/entry: fix misspelling of instruction | 1 | hasheddan (georgedanielmangum@gmail.com) |
| 579673 | a day ago | [RESEND] riscv, mm: Add Sv57 page table support | 1 | None (panqinglin2020@iscas.ac.cn) |
| 579671 | a day ago | Add Sv57 page table support | 1 | None (panqinglin2020@iscas.ac.cn) |
+--------+--------------+-------------------------------------------------+-----------+------------------------------------------+
Есть сортировка, фильтр по автору.
Есть возможность просмотра конкретной серии с помощью series show и загрузки в формате mailbox series download.
Но главное достоинство возможность применить всю серию с помощью команды series apply прямо по номеру скопированному из адресной строки сайта.
$ git pw apply series 578433
Applying: perf: Protect perf_guest_cbs with RCU
Applying: KVM: x86: Register perf callbacks after calling vendor's hardware_setup()
Applying: KVM: x86: Register Processor Trace interrupt hook iff PT enabled in guest
Applying: perf: Stop pretending that perf can handle multiple guest callbacks
Applying: perf: Drop dead and useless guest "support" from arm, csky, nds32 and riscv
Applying: perf/core: Rework guest callbacks to prepare for static_call support
Applying: perf: Add wrappers for invoking guest callbacks
Applying: perf: Force architectures to opt-in to guest callbacks
Applying: perf/core: Use static_call to optimize perf_guest_info_callbacks
Applying: KVM: x86: Drop current_vcpu for kvm_running_vcpu + kvm_arch_vcpu variable
Applying: KVM: x86: More precisely identify NMI from guest when handling PMI
Applying: KVM: Move x86's perf guest info callbacks to generic KVM
Applying: KVM: x86: Move Intel Processor Trace interrupt handler to vmx.c
Applying: KVM: arm64: Convert to the generic perf callbacks
Applying: KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
Applying: KVM: arm64: Drop perf.c and fold its tiny bits of code into arm.c
Applying: perf: Drop guest callback (un)register stubs
Серия скачивается и применяется с помощью git am.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-series
Пакет по своей сути это просто отобранный нами набор патчей.
Можно так пролистать, посмотреть и применить сформированный пакет, сохранить в формате MBOX, или сделать публичным для раздачи ссылки на него.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-bundle
Все приблизительно тоже самое, использовать по необходимости, в принципе даже одиночному патчу без сопроводительного письма назначается серия.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-series
Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря на то, что, например в mutt, можно спокойно выделить патчи по одному и сохранить всю пачку (ключевое слово здесь спокойно).
Тем у кого горит, предлагаю воспользоваться git-pw.
git pw отдельная утилита не входящая в состав официального git. Хороша она или плоха пусть каждый решает сам - я, например, пользуюсь.
Фактически это программа клиент для любого архива на базе http://jk.ozlabs.org/projects/patchwork/, короткий и неполный список проектов, которые базируются на этой утилите:
- Linux kernel https://patchwork.kernel.org/
- U-Boot https://patchwork.ozlabs.org/project/uboot/
- Buildroot https://patchwork.ozlabs.org/project/buildroot/list/
Для всего этого многообразия может быть применен git-pw.
Настройка
https://github.com/getpatchwork/git-pw#getting-startedМинимально необходимых параметров три:
- server
- token
- project
[pw]
server = http://patchwork.kernel.org/api/1.2/
token =
project = linux-riscv
Для того чтобы пользоваться необходимо зарегистрироваться на соответствующем patchwork и сгенерировать себе TOKEN.
Так же рекомендуется узнать соответствующую версию API так как git pw, внезапно, не умеет делать этого сам.
Для этого заходим на https://patchwork.kernel.org/about/ и сравниваем версию по таблице https://patchwork.readthedocs.io/en/stable-3.0/api/rest/#rest-api-versions.
Примеры команд
Работы с сериями патчей
Получаем симпатичный и на мой взгляд бесполезный списочек:$ git pw series list --limit 3
+--------+--------------+-------------------------------------------------+-----------+------------------------------------------+
| ID | Date | Name | Version | Submitter |
|--------+--------------+-------------------------------------------------+-----------+------------------------------------------|
| 579699 | 20 hours ago | riscv/entry: fix misspelling of instruction | 1 | hasheddan (georgedanielmangum@gmail.com) |
| 579673 | a day ago | [RESEND] riscv, mm: Add Sv57 page table support | 1 | None (panqinglin2020@iscas.ac.cn) |
| 579671 | a day ago | Add Sv57 page table support | 1 | None (panqinglin2020@iscas.ac.cn) |
+--------+--------------+-------------------------------------------------+-----------+------------------------------------------+
Есть сортировка, фильтр по автору.
Есть возможность просмотра конкретной серии с помощью series show и загрузки в формате mailbox series download.
Но главное достоинство возможность применить всю серию с помощью команды series apply прямо по номеру скопированному из адресной строки сайта.
$ git pw apply series 578433
Applying: perf: Protect perf_guest_cbs with RCU
Applying: KVM: x86: Register perf callbacks after calling vendor's hardware_setup()
Applying: KVM: x86: Register Processor Trace interrupt hook iff PT enabled in guest
Applying: perf: Stop pretending that perf can handle multiple guest callbacks
Applying: perf: Drop dead and useless guest "support" from arm, csky, nds32 and riscv
Applying: perf/core: Rework guest callbacks to prepare for static_call support
Applying: perf: Add wrappers for invoking guest callbacks
Applying: perf: Force architectures to opt-in to guest callbacks
Applying: perf/core: Use static_call to optimize perf_guest_info_callbacks
Applying: KVM: x86: Drop current_vcpu for kvm_running_vcpu + kvm_arch_vcpu variable
Applying: KVM: x86: More precisely identify NMI from guest when handling PMI
Applying: KVM: Move x86's perf guest info callbacks to generic KVM
Applying: KVM: x86: Move Intel Processor Trace interrupt handler to vmx.c
Applying: KVM: arm64: Convert to the generic perf callbacks
Applying: KVM: arm64: Hide kvm_arm_pmu_available behind CONFIG_HW_PERF_EVENTS=y
Applying: KVM: arm64: Drop perf.c and fold its tiny bits of code into arm.c
Applying: perf: Drop guest callback (un)register stubs
Серия скачивается и применяется с помощью git am.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-series
Работа с пакетами (bundle)
Есть возможность сформировать пакет и работать с ним, причем как на самом сайта так и с помощью утилиты.Пакет по своей сути это просто отобранный нами набор патчей.
Можно так пролистать, посмотреть и применить сформированный пакет, сохранить в формате MBOX, или сделать публичным для раздачи ссылки на него.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-bundle
Работа с патчами
Ну и вполне логично, что есть возможность работы с отдельными патчами.Все приблизительно тоже самое, использовать по необходимости, в принципе даже одиночному патчу без сопроводительного письма назначается серия.
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/#git-pw-series
Библиография и просто интересные ссылки по теме
- https://stackoverflow.com/questions/5062389/how-to-use-git-am-to-apply-patches-from-email-messages
- https://unix.stackexchange.com/ques...-linux-kernel-patch-set-from-the-mailing-list
- https://unix.stackexchange.com/questions/225338/how-download-complete-patch-series-from-patchwork
- https://lore.kernel.org/workflows/87lfp38p7s.fsf@iris.silentflame.com/t/
- http://flavioleitner.blogspot.com/2011/03/patch-workflow-with-mutt-and-git.html
Использование git pw клиента для patchwork
При bleeding edge разработке или просто в рамках экспериментов, приходится добавлять патчи прямиком из maillists. Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря...
habr.com