4 ms·
How we solved GitLab's changelog conflict crisis
- lozenge 8y agoThis solution is neat, but Git also has a very simple built in solution: https://git-scm.com/docs/gitattributes#gitattributes-union https://git-scm.com/docs/gitattributes#gitattributes-union
- nettsundere 8y agounion is bad in general, there is a risk of bad merge
- nettsundere 8y agoworks pretty well until you really need to have similar lines from each branch
- nettsundere 8y agoFunny thing, i had this idea back in 2015, i even implemented a tool for that, old blog post: https://medium.com/@nettsundere/on-reducing-changelog-merge-conflicts-1eb23552630b https://medium.com/@nettsundere/on-reducing-changelog-merge-...
- nettsundere 8y agothat was the tool https://github.com/nettsundere/cyberlog https://github.com/nettsundere/cyberlog
- glandium 8y agoGit supports merge drivers to do things like this: https://git-scm.com/docs/gitattributes#_defining_a_custom_merge_driver https://git-scm.com/docs/gitattributes#_defining_a_custom_me... Debian has had a merge driver for its changelogs for a while: https://salsa.debian.org/dpkg-team/dpkg/commit/9b98847665d8bdd0bae3c57f289f0e549e9baac4 https://salsa.debian.org/dpkg-team/dpkg/commit/9b98847665d8b...
- barrystaes 8y agoThis! I get that the article's solution technically does remove a merge collision problem, but this adds other non-automatable™ problems that require giving humans special instructions because of the exceptions to the rule. Use standard solutions for standard problems people. And dont do a normal merge if you dont want a normal merge. Dont fight the symptoms, look at the cause.
- auscompgeek 8y agoA number of Python projects use a fairly similar way of managing changelogs: https://github.com/hawkowl/towncrier https://github.com/hawkowl/towncrier
- jwilk 8y agoSo does Python itself: https://github.com/python/core-workflow/tree/master/blurb https://github.com/python/core-workflow/tree/master/blurb
- ocharles 8y agoI imagine just sorting the changelog entries per release (maybe split into sections) would get you quite far, too.
- joshka 8y agoTL;DR - ChangeBlog -> MD ;)
- amingilani 8y agoThis is akin to database migrations being used to generate the schema in the end. A very Rails-like solution.
- robdachshund 8y agoStill waiting for them to resolve the "we moved from azure to Google" problem. "We heard you don't like tech giants hosting your code so we found another tech giant. "