dpkg-mergechangelogs(1) | dpkg suite | dpkg-mergechangelogs(1) |
dpkg-mergechangelogs - trevägssammanslagning av Debianändringsloggar
dpkg-mergechangelogs [flaggor...] gammal ny-a ny-b [ut]
Programmet kommer använda de 3 angivna versionerna av Debianändringsloggen för att skapa en sammanslagen ändringsloggfil. Den skapade ändringsloggen sparas i filen ut eller skrivs ut på standard ut om den parametern inte anges.
Enskilda poster identifieras av sitt versionsnummer och de antas inte stå i konflikt med varandra, de slås helt enkelt ihop i rätt ordning (enligt minskade versionsnummer). När --merge-prereleases används ignoreras versionsnumret efter det sista tilde-tecknet, så att 1.0-1~exp1 och 1.0-1~exp5 anges vara samma post. När samma versionsnummer är tillgänglig i både ny-a och ny-b görs ett försök på en vanlig radbaserad trevägssammanslagning (förutsatt att modulen Algorithm::Merge är tillgänglig — den ingår i paketet libalgorithm-merge-perl — om inte får du en global konflikt på innehållet i posten).
Detta är användbart när du har avvikande utveckning för versioner som ännu inte har givits ut. Om till exempel 2.1-1 har givits ut och det uvecklas för den nya 2.2-1 och sedan 2.3-1, så kan det vara lämpligt att i slutändan bara ha en sammanslagen post för 2.3-1 som även innehåller all utveckling gjord i 2.2-1.
Det kan vara användarbart om du använder samma ändringsloggpost men ökar versionsnumret med jämna mellanrum. Till exempel kanske du har 2.3-1~exp1, 2.3-1~exp2, ... fram till den officiella utgåvan 2.3-1 och de har alla samma ändringsloggpost som har växt fram över tid.
Allt som inte tolkas av Dpkg::Changelog försvinner under sammanslagningen. Det kan gälla saker som kommentarer som inte skulle vara där, osv.
Om du vill använda det här programmet för att slå ihop Debianändringsloggar i ett Git-arkiv måste du först registrera en ny sammanslagningsdrivrutin (merge driver) i .git/config eller ~/.gitconfig:
[merge "dpkg-mergechangelogs"] name = debian/changelog-sammanslagningsdrivrutin driver = dpkg-mergechangelogs -m %O %A %B %A
Därefter måste du ställa in merge-attributet på debian/changelog-filen, antingen i .gitattributes i själv arkivet, eller i .git/info/attributes:
debian/changelog merge=dpkg-mergechangelogs
Peter Krefting och Daniel Nylander.
2023-05-11 | 1.21.22 |