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="email@example.com" repoman ci -m "Test commit" --echangelog y
However, you look at the Manifest:
^ No Changelog.
A second commit:
ECHANGELOG_USER="firstname.lastname@example.org" repoman ci -m "Test commit 2" --echangelog y
And now the Changelog is in it
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:
A textual representation of my synthetic overlay used to replicate the problem:
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:
This is fixed in 2.2.1.