dpkg-mergechangelogs(1) | dpkg suite | dpkg-mergechangelogs(1) |
dpkg-mergechangelogs - 3-wegs samenvoeging van debian/changelog-bestanden
dpkg-mergechangelogs [optie...] oud nieuw-a nieuw-b [uitvoer]
Dit programma gebruikt de 3 beschikbare versies van Debian changelog om een samengevoegd changelog-bestand te genereren. De resulterende changelog wordt in het bestand uitvoer opgeslagen of, indien die parameter niet opgegeven werd, naar de standaarduitvoer gestuurd.
Elk item wordt aan de hand van zijn versienummer geïdentificeerd en er wordt van uitgegaan dat ze niet tegenstrijdig zijn. Zij worden eenvoudig samengevoegd in de juiste volgorde (volgens aflopend versienummer). Wanneer --merge-prereleases gebruikt wordt, wordt het deel van het versienummer achter de tilde weggelaten, waardoor 1.0-1~exp1 en 1.0-1~exp5 beschouwd worden als hetzelfde item. Als dezelfde versie zowel in nieuw-a als in nieuw-b voorkomt, wordt geprobeerd een standaard regelgeoriënteerde 3-wegs samenvoeging uit te voeren (op voorwaarde dat de module Algorithm::Merge voorhanden is — ze maakt deel uit van het pakket libalgorithm-merge-perl —, anders krijgt u een algemene tegenstrijdigheid in verband met de inhoud van het item).
Dit is nuttig wanneer u uiteenlopende ontwikkelingen heeft voor versies die nog niet zijn uitgebracht. Bijvoorbeeld, 2.1-1 wordt uitgebracht, waarna er ontwikkeling plaats vindt voor een nieuwe versie 2.2-1 en vervolgens voor 2.3-1, terwijl het logisch is om gewoon te eindigen met een samengevoegd item voor 2.3-1 waarin alle ontwikkeling die in 2.2-1 gerealiseerd werd, opgenomen is.
Dit is nuttig als u in het changelog-bestand hetzelfde item blijft gebruiken, maar het versienummer ervan geregeld verhoogt. U kunt bijvoorbeeld 2.3-1~exp1, 2.3-1~exp2, ... hebben tot aan de officiële release 2.3-1, die allemaal hetzelfde changelog-item zijn dat in de loop van de tijd geëvolueerd is.
Alles wat niet door Dpkg::Changelog ontleed wordt, geraakt tijdens het samenvoegen verloren. Dit kan gaan om zaken zoals commentaar die daar niet hoort te staan, enz.
Indien u dit programma wenst te gebruiken om Debian changelog-bestanden in een git-opslagplaats samen te voegen, moet u eerst een nieuw samenvoegingsstuurprogramma registreren in .git/config of ~/.gitconfig:
[merge "dpkg-mergechangelogs"] name = debian/changelog merge driver driver = dpkg-mergechangelogs -m %O %A %B %A
Daarna moet u het samenvoegingsattribuut voor het debian/changelog-bestand instellen, ofwel in .gitattributes in de opslagplaats zelf, of in .git/info/attributes:
debian/changelog merge=dpkg-mergechangelogs
2023-05-11 | 1.21.22 |