Created attachment 355938 [details] output of emerge --info sys-apps/portage It seems the "manifest" phase of repoman is executed *before* invoking echangelog, and as a result, the commit commits a manifest without the changelog accounted for. For instance, I made a mock test repo: ECHANGELOG_USER="kentnl@cpan.org" repoman ci -m "Test commit" --echangelog y Output: https://gist.github.com/kentfredric/6228251/raw/2d2c4d7260cb38119d901b2ed23331f7a56b0c13/gistfile1.txt However, you look at the Manifest: https://gist.github.com/kentfredric/6228254/raw/1533350c363703e2eab20645ed39a51b4a8ab05d/gistfile1.txt ^ No Changelog. A second commit: ECHANGELOG_USER="kentnl@cpan.org" repoman ci -m "Test commit 2" --echangelog y https://gist.github.com/kentfredric/6228259/raw/9c91d898e4567453c9de07f248f0596888c7646d/gistfile1.txt And now the Changelog is in it https://gist.github.com/kentfredric/6228262/raw/e9cb52e512a0c47af4b6b7ff3e452d15478f6b17/gistfile1.txt However, the size and signature are from *BEFORE* the changelog was updated, so the manifest is now invalid: repoman full: https://gist.github.com/kentfredric/6228267/raw/55ef6231fa0b6ac464b541453e1b1de096e6e74b/gistfile1.txt Calling repoman manifest again, and then calling git diff confirms that the manifest was indeed wrong: https://gist.github.com/kentfredric/6228271/raw/17119a4905572b11c87a42c9a6d02912b146241a/diff.diff A textual representation of my synthetic overlay used to replicate the problem: https://gist.github.com/kentfredric/6228285/raw/97188b639bc1e6c626d6f81263eb1d1eb430f736/gistfile1.txt
Created attachment 355940 [details] linked github gists & overlay tree bundled Just attaching these output lines as a tarball as a backup plan if the gists ever go down ( however unlikley it may be )
Repoman auto-writes the changelog, so you don't need to pass that option
(In reply to Agostino Sarubbo from comment #2) > Repoman auto-writes the changelog, so you don't need to pass that option Only on the main tree, where /metadata/layout.conf says <update-changelog = true> The point remains, on overlays, where I'm using git, it creates broken manifests.
Just for completeness, I also tried making the test overlay have <update-changelog = true> in the configuration. This is just a guarantee that the manifest WILL be wrong for *EVERYONE* who uses repoman, instead of just those who pass the parameter. Maybe its VCS dependent, but its certainly happening for me on Git.
This should fix it: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=94aed24784d5122c5bbd7afd6dd85ee83c10ab2e
This is fixed in 2.2.1.