Re: Is dist-git a good place for work?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for sharing that, Simo. I respect your opinion.

Believe me, I do like my git history clean and I go to great lengths to
keep it clean. I certainly don't think I'm lazy when it comes to
that. However, I don't think that maintaining a linear history helps
with readability and understandability of the history. Quite the
opposite - keeping the branching helps to see which changes are related
and in what context a certain change was made.

Just to be clear, when I say "rebase", I literally mean the act of
changing the merge base. On the other hand, squashing commits and
similar things to have a nice series of logical changes is a must
for me.

But I don't want to veer too much off topic here. I believe this was
discussed at length in a LWN article (which just happens to be centered
around the Linux kernel ;)).
https://lwn.net/Articles/791284/

Ondřej

Simo Sorce <simo@xxxxxxxxxx> writes:

> Sorry little reant ahead:
>
> In general, merge commits are hideous, they can conceal merge conflict
> resolution that can a) introduce bugs, b) make it hard to figure out
> when bugs were introduced  by preventing use of git bisect and c)
> generally make it very hard to understand the history of changes.
>
> In general rebase and squash requirement tend to generate much cleaner
> changes, and catches errors before they are merged.
>
> Merge commits are useful for gigantic projects like the Linux kernel
> where A) the maintainers are extremely knowledgeable and can properly
> resolve merge conflicts B) the people proposing the merge may not
> actually know how to properly resolve a merge conflict as it is
> happening outside of their area of expertise C) the feedback loop would
> be excessive and dwarf the history linearity benefits.
>
> Those projects are rare, using merge commits on small projects is just
> lazyness that you pay later. It's accruing technical debts
> unnecessarily.
>
> That said, for non-code projects history may no matter that much, as
> you do not need to resolve "bugs", and introducing "bugs" via merge
> commits conflict resolution is rare, so for those it may not matter
> what do you use to merge in stuff, you are using the SCM just as a
> central repository and "merge tool" and sometimes as a way to apply
> release tags.
>
> Whenever using the history is useful I find I *really* hate merge
> commits as they muddy everything, and make the work of figuring out
> what happened after the fact (and sometimes *during the fact*) very
> hard.
>
> Simo.
>
> On Tue, 2020-05-05 at 15:29 +0200, Ondřej Lysoněk wrote:
>> Tomas Tomecek <ttomecek@xxxxxxxxxx> writes:
>> 
>> > Thank you all for raising all the questions and concerns.
>> > 
>> > Before I reply, I'd like to stress that we are still in a prototype
>> > phase - not everything is solved (clearly) and at this point, we
>> > experiment with the workflow mostly.
>> > 
>> > Luckily, force-pushes are not allowed in dist-git, which makes the
>> > update/sync process easier (knowing that history cannot be changed).
>> > Therefore when a new commit lands in dist-git, we'd just "transform"
>> > it to source-git and pushed it to the source-git repo. We could even
>> > ask all the contributors to rebase their PRs when this happens.
>> 
>> This "rebase all PRs" thing seems to be a recurring theme... What is the
>> reason to ask contributors to rebase? (I mean, are we trying to go back
>> to the days of centralized version control systems?)
>> 
>> In my experience, there is rarely a good reason to rebase (rebasing
>> because the CI system tests the contributor's branch rather than the
>> resulting merge is not a good reason; the CI system should be fixed
>> instead) and asking everyone to rebase just slows things down. Please
>> let's not go down that road, if possible.
>> 
>> Other than that, I like the idea of source git and I'm looking forward
>> to using it, once the synchronization issues are resolved. Thanks for
>> working on it.
>> 
>> Ondřej Lysoněk
>> 
>> > On the other hand, when a new commit lands in the source-git repo, we
>> > could either transform and push to dist-git directly or open a PR. The
>> > maintainer should be in control of this process.
>> > I understand the synchronisation adds friction to the overall
>> > architecture and may be the cause of many problems in the future -
>> > hence we are starting this discussion and using the technology
>> > ourselves to catch these issues asap. Víťo, does this answer your
>> > question?
>> > 
>> > Miro, you are talking about conflicts: I'd say that conflicts on the
>> > git level are normal and git has solid tools to resolve them. For the
>> > use case of 2 different people changes the same thing, we would treat
>> > dist-git as the authoritative place and let the person in source-git
>> > know about the conflict. But this can happen nowadays easily as well:
>> > 2 different people can open the same PR or even push to dist-git
>> > directly while only one would succeed.
>> > 
>> > Petr, I should have probably stressed that our target is Fedora (or
>> > even all Red Hat operating systems). Yes, there are hundreds of
>> > distributions and we cannot solve their problems. We are open for
>> > collaboration though - we cannot drive changes in distributions which
>> > we don't know or use.
>> > 
>> > 
>> > Tomas
>> > 
>> > On Tue, May 5, 2020 at 8:56 AM Petr Pisar <ppisar@xxxxxxxxxx> wrote:
>> > > On Mon, May 04, 2020 at 05:05:02PM +0200, Tomas Tomecek wrote:
>> > > > Over the years there have been multiple tools created to improve the
>> > > > development experience:
>> > > > rdopkg [r], rpkg-util [ru], tito [t] and probably much much more (e.g.
>> > > > the way Fedora kernel developers work on kernel [k]).
>> > > > 
>> > > > In the packit project, we work in source-git repositories. These are
>> > > > pretty much upstream repositories combined with Fedora downstream
>> > > > packaging files.
>> > > 
>> > > And then come another distribution with a request to combine its dist-git into
>> > > the upstream. Fedora is not the only distribution. Do you know how many
>> > > distributions exist? From my point of view as a upstream it's one big NO.
>> > > 
>> > > From point of view of a Fedora packager, it's just moving Fedora bits into
>> > > another repository with the burden of synchronizing that repository with
>> > > dist-git (and back because of what an authoritative source for Fedora is).
>> > > 
>> > > If you want to introduce an intermediary third repository between the upstream
>> > > and the distribution, a repository that would normalize (read git-ify) the
>> > > upstream and overlay downstream patches and metadata, then, ehm, it's a nice
>> > > project for exploration how far we go with unification among the
>> > > distributions. But I'm quite sceptical regarding it's adoption. But don't take
>> > > my prognosis seriously. I can be mistaken. There are some positive prior arts
>> > > like release-monitoring.org.
>> > > 
>> > > -- Petr
>> > > _______________________________________________
>> > > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
>> > > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
>> > > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>> > > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> > > List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
>> > _______________________________________________
>> > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
>> > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
>> > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> > List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
>> _______________________________________________
>> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
>> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
>> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
>
> -- 
> Simo Sorce
> RHEL Crypto Team
> Red Hat, Inc
>
>
>
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux