[devel] Patch splitter
Alexander Bokovoy
=?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Чт Сен 6 20:06:53 MSD 2001
Доброго времени суток!
Вообщем, достало меня поддержку Promise FastTrak100 выковыривать из патчей
Алана и я написал следующую небольшую утилиту, которая разбивает большой
блок патчей, сгенерированных командой diff -r (diff --recursive) на набор
маленьких, каждый из которых хранит изменения только для одного файла.
Поскольку результат diff -r всегда собирает изменения в одном файле в один
патч, то все работает прекрасно.
Пример использования:
bzcat patch-2.4.8-ac8 | awk ./splitter.awk
и в текущем каталоге появится linux.ac, в котором будут разложены по
соответствующим подкаталогам все патчи.
--
/ Alexander Bokovoy
$ cat /proc/identity >~/.signature
`Senior software developer and analyst for SaM-Solutions Ltd.`
---
Drive defensively. Buy a tank.
----------- следующая часть -----------
#!/usr/bin/awk
BEGIN {
filen="crap.patch";
flag=-1;
}
{
if ($0 ~ /^diff +(-[a-zA-Z]*|--[a-zA-Z]*)/) {
if(flag > 0) close(filen);
text = $0;
ind = split(text, components);
filen=components[ind] ".patch";
dirname="dirname " filen;
dirname | getline dirn; close(dirname);
mkdir="mkdir -p " dirn;
mkdir | getline s; close(mkdir);
printf("Creating patch %s\n", filen);
flag=1;
}
print >> filen
}
Подробная информация о списке рассылки Devel