Stop the git abuse

Michael J Gruber michaeljgruber+gmane at fastmail.fm
Mon May 21 09:52:40 UTC 2012


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.

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

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.

Michael



More information about the devel mailing list