On 17/02/26 14:56, Marc Haber wrote:
On Mon, Feb 16, 2026 at 03:29:23PM +0100, Gioele Barabucci wrote:
I have something to add, just an aside, that may influence how you
look at the results of your experiment.
Sadly, just running git log on debian/latest (which is probably the
single most important branch) only shows merge commits now.
gbp import-orig nicely took care of the differences between upstream
git and the release tarball.
`gbp import-orig` produces suboptimal merges that mix upstream and
Debian changes in an unreadable way <https://bugs.debian.org/804722>.
Could you please try to locally apply the patch proposed in that bug
report and see if produces a graph that looks (slightly) more
understandable and more sustainable in the long run?
I am not sure why the patch from that bug report will make the graph
easier to read as it doesn't reduce the number of merges. If I
understand correctly, the patch will do the merge and then add the
Debian diff in a dedicated commit.
Exactly. The graphs is only slightly easier (but longer), what is easier
to understand are the diffs. The diffs commonly produced by Git for
merge commits that also add the Debian diffs are way larger and mix two
things. To separate them you need to use `git diff -m`, for example, but
such functionalities are not available for other tools. In general, non
empty merge commits are a pain.
If you are looking at the history is because something went wrong and
you are in debugging mode. In those situations you want all changes
shown to you to be as focused as possible. Having to mentally navigate
between upstream changes, Debian changes, updated Debian patches and so
on all in one "place" is exhausting. Separate merge upstream + commit
Debian changes is just easier.
Won't this introduce a stage of
non-buildability in debian/latest, when the new upstream is already
merged and the debian stuff not yet added? I mean, especially in the
case of 3.0 (quilt) package?
In theory yes. But this is not a big issue, given that pretty much all
packages developed on a Git repo follow that pattern. You merge upstream
(1 commit + 1 upstream/ tag), do some changes (1-n commits), you test
the package, you realize something broke, you fix it (another 1-n
commits), then you release the package (1 commit + 1 debian/ tag). That
"non buildability" is always there for a short window of commits between
debian/ tags.
It's not like people develop on another branch, then squash all their
commits in master to give the illusion that everything happened at once
(like instead happens if you import past packages using `gbp import-*`).
That being said, this bug report is a classic case of many months being
lost because both sides were waiting for the other side to do something.
Guido was waiting for you to deliver a patch that would fit better into
git-buildpackage's code base, and you were waiting for him to comment on
your suggestion.
I'd add that this bug is a classic case of volunteer work. (No
complains, just a matter of fact.) The bug is from 2015, eleven years
ago. At the time I tried creating a ready-to-merge patch, but the Git
code in gbp did not implement everything that was needed for the patch,
so a proof of code was all I delivered (adding all the necessary
Git-related functionality was outside the "scratch you own issue"
radio). By the time Guido's reply came, in 2024, most of the packages
had already been converted, so I did not see, nor I see now, the idea of
spending time producing a proper patch as a good time investment: it's
at least a couple of weeks of work, and who is going to benefit from it?
maybe a handful low-popcon packages that have not been converted yet?
Regards,
--
Gioele Barabucci