From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Bokovoy To: devel@altlinux.ru Message-ID: <20010906190653.Q31879@pc152.belcaf.minsk.by> Mail-Followup-To: devel@altlinux.ru Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="6sX45UoQRIJXqkqR" Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i-nntp2 Subject: [devel] Patch splitter Sender: devel-admin@linux.iplabs.ru Errors-To: devel-admin@linux.iplabs.ru X-BeenThere: devel@linux.iplabs.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: devel@linux.iplabs.ru List-Help: List-Post: List-Subscribe: , List-Id: ALT Linux Team Developers mailing list List-Unsubscribe: , List-Archive: X-Original-Date: Thu, 6 Sep 2001 19:06:53 +0300 Date: Thu, 6 Sep 2001 19:06:53 +0300 Archived-At: List-Archive: List-Post: --6sX45UoQRIJXqkqR Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Доброго времени суток! Вообщем, достало меня поддержку 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. --6sX45UoQRIJXqkqR Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="splitter.awk" #!/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 } --6sX45UoQRIJXqkqR-- _______________________________________________ Devel mailing list Devel@linux.iplabs.ru http://www.logic.ru/mailman/listinfo/devel