Получение различий обновления пакета

С python (версия 2 или 3):

from __future__ import print_function

oooo = None

with open('demo.snippet') as fp:
    for line in fp:
        if line.startswith('snippet '):
            oooo = 1
        while 'oooo' in line:
            line = line.replace('oooo', str(oooo), 1)
            oooo += 1
        print(line, end='')

Это также работает, если в одной строке будет более одного вхождения oooo .

1
12.05.2015, 00:59
2 ответа

Вы можете загрузить исходный код из репозиториев Debian, используя:

apt-get source

Он загрузит 3 файла, .dsc , описывающий пакет, .orig.tar.gz , содержащий исходный код, и .diff.gz , содержащий изменения.

Это сработает, если в /etc/apt/sources.list/ вы включили записи deb-src , например:

deb http://ftp.de.debian.org/debian/ wheezy main
deb-src http://ftp.de.debian.org/debian/ wheezy main

Позвольте мне загрузить deb пакеты, как и исходный код из репозиториев Debian Wheezy .

0
29.04.2021, 00:28

Более общий подход заключается в сравнении двух исходных пакетов, соответствующих версии, с которой вы обновляетесь, и версии, до которой вы обновляетесь. Чтобы найти первый, вам может понадобиться просмотреть snapshots; второй должен быть доступен из вашего архива. Затем запустите debdiff на двух файлах .dsc.

Вот пример, сравнивающий stella 4.1.1-1 (предыдущая версия в unstable) и 4.6. 1-2 (текущая версия в unstable):

dget http://snapshot.debian.org/archive/debian/20140916T041024Z/pool/main/s/stella/stella_4.1.1-1.dsc
dget http://http.debian.net/debian/pool/main/s/stella/stella_4.6.1-2.dsc
debdiff stella_4.1.1-1.dsc stella_4.6.1-2.dsc

В общем случае вы можете заменить вторую строку на

apt-get --download-only source stella

В некоторых случаях можно использовать более специфические инструменты; упаковка stella поддерживается в git, поэтому вы можете запустить

debcheckout stella
cd stella
git diff debian/4.1.1-1 debian/4.6.1-2

для прямого сравнения тегов.

dget, debdiff и debcheckout находятся в пакете devscripts.

3
29.04.2021, 00:28

Теги

Похожие вопросы