Как поддерживать патч-пакет

Я ищу лучший способ поддерживать исправленную версию пакета Ubuntu вверх по течению. Вот ситуация:

У нас есть собственный сервер, на котором запущен reprepro, который будет размещать модифицированный пакет. Наши другие пакеты управляются с помощью git и git-упаковочных инструментов (git-dch, git-buildpackage).

У меня есть .diff-файл, содержащий патч к исходному источнику, который я использовал ранее, выполнив apt-get source pkgname, применив его и выполнив debuild.

Какой лучший способ для управления этим?

5
задан 15 June 2011 в 20:40

18 ответов

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за [ f5]. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 25 May 2018 в 20:19

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за git. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 25 July 2018 в 21:43

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за git. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 31 July 2018 в 12:37

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за git. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 2 August 2018 в 03:19

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за git. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 4 August 2018 в 19:16

Я бы предложил что-то немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport. Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr, если вы не вышли за git. Каждый пакет Ubuntu также можно найти в ветке bzr. bzr branch ubuntu:$PACKAGE_NAME захватит источник для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu:$PACKAGE_NAME

2
ответ дан 6 August 2018 в 03:30

Я бы предложил кое-что немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport . Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr , если вы не достигли git . Каждый пакет Ubuntu также можно найти в ветке bzr . bzr branch ubuntu: $ PACKAGE_NAME захватит ветку источника для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu: $ PACKAGE_NAME

2
ответ дан 7 August 2018 в 21:17

Я бы предложил кое-что немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport . Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr , если вы не достигли git . Каждый пакет Ubuntu также можно найти в ветке bzr . bzr branch ubuntu: $ PACKAGE_NAME захватит ветку источника для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu: $ PACKAGE_NAME

2
ответ дан 10 August 2018 в 09:36

Я бы предложил кое-что немного отличающееся от Flimzy. Взгляните на git-import-dsc и, возможно, git-debimport . Они автоматически создадут отдельные ветви upstream, debian и prinstine-tar из исходного пакета Debian. Затем вы можете создать свою ветку для набора патчей. Каждый раз, когда выполняется новая загрузка в Ubuntu, вы можете просто запустить git-import-dsc в новом пакете и слить с вашей веткой.

Еще проще было бы использовать bzr , если вы не достигли git . Каждый пакет Ubuntu также можно найти в ветке bzr . bzr branch ubuntu: $ PACKAGE_NAME захватит ветку источника для вас. Внесите свои изменения и совершите. Затем, когда будет сделана новая загрузка Ubuntu, вы можете просто запустить bzr merge-package ubuntu: $ PACKAGE_NAME

2
ответ дан 13 August 2018 в 15:46

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета [!d3 ] Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 25 May 2018 в 20:19

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 25 July 2018 в 21:43

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 31 July 2018 в 12:37

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 2 August 2018 в 03:19

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 4 August 2018 в 19:16

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

Поместите * .orig.tar.gz * .diff.gz и * .dsc в каталоге, точно названном для вашего пакета. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог. Сделайте это для своего RCS (совершите A) Примените свои изменения и зафиксируйте свой RCS (Commit B). Внесите любые будущие изменения и зафиксируйте (Commit N)

Когда выйдет новая версия восходящего потока:

Поместите файлы * .orig.tar.gz * .diff.gz и * .dsc в каталог, названный для вашего пакета Повторите шаги 1-3 выше Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог Сделайте любые будущие изменения и совершите (Commit N)

Промыть, повторить.

1
ответ дан 6 August 2018 в 03:30

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

  1. Поместите * .orig.tar.gz * .diff .gz и * .dsc в каталоге, точно названном для вашего пакета
  2. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог
  3. Зафиксируйте это для своего RCS (commit A)
  4. Примените свои изменения и зафиксируйте свой RCS (Commit B)
  5. Произвести любые будущие изменения и зафиксировать (Commit N)

Когда выйдет новая версия восходящего потока:

  1. Создайте разницу между Commit A и Commit N
  2. Повторите шаги 1-3 выше
  3. Примените ваш diff (созданный на шаге 1) и совершите (новый Commit A)
  4. Сделайте любой будущие изменения и фиксация (Commit N)

Промыть, повторить.

1
ответ дан 7 August 2018 в 21:17

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

  1. Поместите * .orig.tar.gz * .diff .gz и * .dsc в каталоге, точно названном для вашего пакета
  2. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог
  3. Зафиксируйте это для своего RCS (commit A)
  4. Примените свои изменения и зафиксируйте свой RCS (Commit B)
  5. Произвести любые будущие изменения и зафиксировать (Commit N)

Когда выйдет новая версия восходящего потока:

  1. Создайте разницу между Commit A и Commit N
  2. Повторите шаги 1-3 выше
  3. Примените ваш diff (созданный на шаге 1) и совершите (новый Commit A)
  4. Сделайте любой будущие изменения и фиксация (Commit N)

Промыть, повторить.

1
ответ дан 10 August 2018 в 09:36

Надеюсь, я полностью понимаю ваш вопрос ...

Вот как я это делаю:

  1. Поместите * .orig.tar.gz * .diff .gz и * .dsc в каталоге, точно названном для вашего пакета
  2. Распакуйте источник (dpkg-source -x * .dsc). Теперь у вас есть три файла и один подкаталог
  3. Зафиксируйте это для своего RCS (commit A)
  4. Примените свои изменения и зафиксируйте свой RCS (Commit B)
  5. Произвести любые будущие изменения и зафиксировать (Commit N)

Когда выйдет новая версия восходящего потока:

  1. Создайте разницу между Commit A и Commit N
  2. Повторите шаги 1-3 выше
  3. Примените ваш diff (созданный на шаге 1) и совершите (новый Commit A)
  4. Сделайте любой будущие изменения и фиксация (Commit N)

Промыть, повторить.

1
ответ дан 13 August 2018 в 15:46

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

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