dpkg-mergechangelogs
trójdrożne łączenie plików debian/changelog
- Provided by: dpkg-dev (Version: 1.17.5ubuntu5.8)
- Source: dpkg
- Report a bug
trójdrożne łączenie plików debian/changelog
dpkg-mergechangelogs [opcja...] stary nowy-a nowy-b [wynik]
Program używa trzech dostarczonych wersji dziennika zmian Debiana do utworzenia połączonego pliku dziennika. Wynikowy dziennik zmian jest przechowywany w pliku wynik lub jest wypisywany na standardowe wyjście, jeśli nie poda się tego parametru.
Każdy wpis jest identyfikowany przez wersję (przyjmuje się, że nie są one w konflikcie) i są one w prosty sposób łączone w poprawnej kolejności (malejąco wg wersji). Jeśli użyje się --merge-prereleases, część numeru wersji po ostatniej tyldzie jest porzucana, przez co 1.0-1~exp1 i 1.0-1~exp5 są uważane za ten sam wpis. Jeśli ta sama wersja jest dostępna zarówno w nowym-a i nowym-b, próbuje się wykonać standardowe trójdrożne połączenie wg wierszy (zakładając, że moduł Algorithm::Merge jest dostępny — jest częścią pakietu libalgorithm-merge-perl — w przeciwnym wypadku otrzyma się globalny konflikt w zawartości wpisu).
Jest to przydatne, gdy używa się tego samego wpisu dziennika zmian, lecz regularnie zwiększa się jego numer wersji. Można na przykład mieć 2.3-1~exp1, 2.3-1~exp2, ... aż do oficjalnego wydania 2.3-1 i wszystkie one posiadają ten sam wpis dziennika zmian, który zmieniać się w czasie.
Wszystko co nie jest przetwarzane przez Dpkg::Changelog jest tracone przy łączeniu. Może to dotyczyć następujących rzeczy: modeline vima, komentarze, które nie są tu przeznaczone itd.
Aby używać tego programu do łączenia dzienników zmian Debiana z repozytorium git, konieczne jest wcześniejsze zarejestrowanie nowego sterownika łączenia w .git/conf lub ~/.gitconfig:
[merge "dpkg-mergechangelogs"]
name = debian/changelog merge driver
driver = dpkg-mergechangelogs -m %O %A %B %A
Następnie, konieczne jest ustawienie atrybutów łączenia pliku debian/changelog albo w samym repozytorium, w pliku .gitattributes, albo w .git/info/attributes:
debian/changelog merge=dpkg-mergechangelogs
Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feński <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008
Michał Kułach <michal.kulach@gmail.com>, 2012