dpkg-mergechangelogs(1) | dpkg suite | dpkg-mergechangelogs(1) |
dpkg-mergechangelogs - fusão de 3 vias de ficheiros debian/changelog
dpkg-mergechangelogs [option...] old new-a new-b [out]
Este programa irá usar as 3 versões fornecidas do changelog Debian para gerar um ficheiro changelog resultante de fusão. O changelog resultante é guardado no ficheiro out ou enviado para a saída standard se esse parâmetro não for fornecido.
Cada entrada é identificada pelo seu número de versão e são assumidas como não em conflito, elas são simplesmente fundidas na ordem correcta (ao diminuir o número de versão). Quando --merge-prereleases é usado, a parte do número de versão após o último til é largada de modo que 1.0-1~exp1 e 1.0-1~exp5 são consideradas a mesma entrada. Quando a mesma versão está disponível em ambas new-a e new-b, é tentada uma fusão standard de 3- vias baseada em linhas (desde que o módulo Algorithm::Merge esteja disponível — faz parte do pacote libalgorithm-merge-perl — caso contrário você vai obter um conflito global no conteúdo da entrada.).
Isto é útil quando você tem desenvolvimento divergente para versões que ainda não foram lançadas. Por exemplo, a 2.1-1 é lançada, depois acontece o desenvolvimento da nova 2.2-1 e depois para 2.3-1, onde faz sentido apenas ficar com uma entrada coalescida para 2.3-1 incluindo todo o desenvolvimento feito na 2.2-1.
Isto é útil quando você continua a usar a mesma entrada de changelog mas vai incrementado regularmente o seu número de versão. Por exemplo, você pode ter 2.3-1~exp1, 2.3-1~exp2, ... até ao lançamento oficial 2.3-1 e elas são todas a mesma entrada de changelog que foi evoluindo com o tempo.
Tudo o que não seja analisado por Dpkg::Changelog é perdido durante a fusão. Isto pode incluir coisas como comentários que não eram suposto estar lá, etc.
Se você deseja usar este programa para fundir ficheiros changelog Debian num repositório git, você tem primeiro de registar uma nova driver de fusão em .git/config ou ~/.gitconfig:
[merge "dpkg-mergechangelogs"] name = debian/changelog merge driver driver = dpkg-mergechangelogs -m %O %A %B %A
Depois você tem de configurar o atributo de fusão para o ficheiro debian/changelog seja em .gitattributes no próprio repositório, ou em .git/info/attributes:
debian/changelog merge=dpkg-mergechangelogs
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
2023-05-11 | 1.21.22 |