Usando o quilt

O quilt é uma ferramenta para gerenciamento de pilhas de patches; é muito usado por desenvolvedores do kernel para manter e gerar patches para serem enviados.

Tem as seguintes vantagens:

  • Fácil de usar
  • Curva de aprendizado suave
  • Feito com os procedimentos e formatos usados no desenvolvimento do Kernel em mente
    • A referência principal dele é esse How to suvive with many patches

      Como usar

      Adicionando seus arquivos

      Começando com uma árvore de arquivos qualquer, indique ao quilt o nome do patch que você quer criar:

      1. $ quilt new quilt_tutorial1.patch
      2. Patch quilt_tutorial1.patch is now on top

      Em seguida, você vai editar os arquivos que você quer que constem no patch. Duas maneiras de fazer isso

      1. quilt edit arquivo1 #adiciona o arquivo e abre o $EDITOR para você editar o arquivo
      2. #ou
      3. quilt add arquivo1 #apenas adiciona o arquivo no patch, para ser editar em outro editor

      Se o arquivo foi adicionado uma vez, não precisa ser adicionado novamente, para o mesmo patch.

      Após terminar suas alterações, gere o patch usando quilt refresh

      1. $ quilt refresh
      2. Refreshed patch quilt_tutorial1.patch

      Isso atualiza o arquivo de patch conforme as últimas alterações presentes nos arquivos. Agora, o patch está disponível em patches/quilt_tutorial1.patch (Se houver diretórios patches em níveis de diretório superiores, ele coloca lá)
      O quilt também cria um arquivo series (no diretório patches), que tem toda a lista de patches presente

      Empilhando patches

      Depois de ter criado um patch, e executado quilt refresh, pode ser criado um novo patch sobre o patch existente. Basta repetir o procedimento de criar um novo patch (quilt new, quilt edit, quilt refresh)

      Por exemplo, ao se criar dois patches em sequencia, é assim que fica o arquivo series

      1. quilt_tutorial1.patch
      2. quilt_tutorial2.patch

      Subindo e descendo na pilha

      Uma das grandes vantagens do quilt é permitir voltar no histórico de patches, colocar e tirar patches com facilidade, bem como alterar patches passados (sem muita dor)

      Para remover o último patch da série: quilt pop. Pode ser usado quantas vezes quiser (até o fim da pilha).

      1. quilt pop
      2. Removing patch quilt_tutorial2.patch
      3. Restoring tmp/quilt/arquivo2
      4.  
      5. Now at patch quilt_tutorial1.patch

      Se você examinar os arquivos agora, estarão no mesmo estado de antes, quando só havia o quilt_tutorial1.patch

      Neste momento, usando quilt edit, e em seguida quilt refresh, você pode alterar o quilt_tutorial1.patch

      Em seguida, quilt push para reaplicar os patches existentes na fila que foram 'poped'.

      1. $ quilt push
      2. Applying patch quilt_tutorial2.patch
      3. patching file tmp/quilt/arquivo2
      4.  
      5. Now at patch quilt_tutorial2.patch