Stop the git abuse

Stanislav Ochotnicky sochotnicky at redhat.com
Mon May 21 12:49:49 UTC 2012


Quoting Michael J Gruber (2012-05-21 11:52:40)
> Sérgio Basto venit, vidit, dixit 18.05.2012 22:25:
> > On Sex, 2012-05-18 at 18:35 +0200, Stanislav Ochotnicky wrote: 
> >> I've been seeing this ugliness more and more to the point where I just
> >> can't keep writing individual emails. Repeat after me: git is not CVS.
> >>
> >> When you have 2 branches with identical content and history (typically
> >> right after branching or when the maintainer is updating all releases
> >> together) then DO NOT manually redo fix for every branch. Do not even
> >> use cherry-pick! Just *merge* for the love of whatever is holy to you.
> >>
> >> $ git checkout master (or fedpkg switch-branch)
> >> ... do a fix, test, commit, build etc...
> >> $ git checkout f17 
> >> $ git merge master
> >> $ git/fedpkg push && fedpkg build
> >> DONE
> > 
> > this git process is describe here: 
> > http://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Update_Your_Branches_.28if_desired.29
> > 
> > 
> > but should also be in http://fedoraproject.org/wiki/Package_update_HOWTO
> > or maybe better, where :
> > https://fedoraproject.org/wiki/Using_git_FAQ_for_package_maintainers#How_do_I_import_a_SRPM_package.3F
> > 
> > 
> >>
> >> So please. Merge as long as it makes sense (i.e. unless something needs
> >> to be changed specifically in one branch).
> >>
> >> Thanks,
> >>
> > 
> > Thanks,
> 
> Just like we have mandatory packaging guidelines, we should have
> mandatory git guidelines simply because it is part of the build system,
> not just a random developer's source repository. And yes, every sane
> project uses a merge based approach (either "down" or "up"). The main
> points should be:
> 
> * work on master=rawhide for adjustments to upstream changes
> 
> * merge down to release N, release N-1 and so on as far as they still
> get updates
> 
> * merge to epel from the respective base fedora; or from master then
> epel cascade (to be specified in epel guidelines)
> 
> * put compatibility cludges for older releases on their respective
> branches (this gets rid of many if's in spec)
> 
> * use standardised commit messages, e.g.:
> - subject line as a short summary (for the commit notification e-mails)
> - message body in the style of current changelog
> That way fedpkg update and buildsys can extract what they need for the
> build messages as well as the rpm changelog.

You can already do that. Put most important message (subject) as the
first item in changelog. Do "fedpkg commit -c".


> + (maybe) make systematic use of tags, e.g. git tag $(fedpkg verrel)

Yeah. koji should tag repos after build finishes. 

> 
> Note that the biggest git-offenders these days are the build and release
> scripts (automatic rebuild and such)! And there's no way to override
> this by a rewrite because of the installed hooks permitting only
> fast-forwards.

That was *so* not my idea. I am against allowing non-ff merges.
It would make verification of rpms impossible. No, when I was talking
about merging I always meant fast-forward only merges. Spec files are
not very suitable for common merges, but if someones wants to do it...be
my guest. I would hate to touch such repo though. 

As Kevin said in other messages: ff-merges don't hide anything, don't
clutter logs. The only "downside" is that changelog will contain those
mass rebuild items. That seems like a valid price to pay for simplifying
work of so many people. 

That said, I would be in favour of generating changelogs from git logs.
Yes, they will contain more detailed information. So what? I would
gladly sacrifice a bit of changelog readability for huge amount of work
deduplication. 

-- 
Stanislav Ochotnicky <sochotnicky at redhat.com>
Software Engineer - Base Operating Systems Brno

PGP: 7B087241
Red Hat Inc.                               http://cz.redhat.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: signature
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20120521/b023f495/attachment.sig>


More information about the devel mailing list