5 ms·
I find their branching model interesting (no merges ever!): $ git log --graph --oneline --decorate --date-order --all * 86d911ec0f (HEAD -> master, origin
by gsylvie 10y ago
I find their branching model interesting (no merges ever!):
$ git log --graph --oneline --decorate --date-order --all
* 86d911ec0f (HEAD -> master, origin/master, origin/HEAD) Allow index...
* 7c5d8c16e1 Add explicit ORDER BY to a few tests that exercise hash-...
| * 1888fad440 (origin/REL9_4_STABLE) Fix roundoff problems in float8...
| | * 7786b98482 (origin/REL9_5_STABLE) Fix roundoff problems in float8...
| | | * 404756fe89 (origin/REL9_6_STABLE) Fix roundoff problems in float8...
* | | | 8f93bd8512 Fix roundoff problems in float8_timestamptz() and make...
* | | | a507b86900 Add WAL consistency checking facility.
* | | | 115cb31597 Fix relcache leaks in get_object_address_publication_rel()
* | | | e35bbea7dd doc: Some improvements in CREATE SUBSCRIPTION ref page
* | | | c3c4f6e174 Revise the way the element allocator for a simplehash...
* | | | 242066cc8e Speed up "brin" regression test a little bit.
* | | | ac8eb972f2 Avoid redefining simplehash_allocate/simplehash_free.
* | | | 565903af47 Allow the element allocator for a simplehash to be specified.
* | | | 94708c0e8c Fix compiler warning.
* | | | 293e24e507 Cache hash index's metapage in rel->rd_amcache.
| | | | * 903bfef382 (tag: REL9_2_20, origin/REL9_2_STABLE) Correct thinko...
| | | | | * 4dd4e3fe10 (origin/REL9_3_STABLE) Correct thinko in last-minute...
| * | | | | cd898769cb Correct thinko in last-minute release note item.
| | * | | | 13b30ada99 Correct thinko in last-minute release note item.
| | | * | | ae8a602c32 Correct thinko in last-minute release note item.
* | | | | | 39c3ca5161 Correct thinko in last-minute release note item.
- justinlaster 10y ago> --date-order Why!?
- gsylvie 10y agoBecause git log --graph implies "--topo-order" and I didn't want that: $ git help log --graph [...] This implies the --topo-order option by default Without "--date-order" it looks like this: $ git log --graph --all --decorate --oneline * 86d911ec0f (HEAD -> master, origin/master, origin/HEAD) Allow index AMs to... * 7c5d8c16e1 Add explicit ORDER BY to a few tests that exercise hash-join code. * 8f93bd8512 Fix roundoff problems in float8_timestamptz() and make_interval(). * a507b86900 Add WAL consistency checking facility. * 115cb31597 Fix relcache leaks in get_object_address_publication_rel() * e35bbea7dd doc: Some improvements in CREATE SUBSCRIPTION ref page * c3c4f6e174 Revise the way the element allocator for a simplehash is specified. And 960 more commits before finally getting to this one... :-) | * 1888fad440 (origin/REL9_4_STABLE)
- liquidise 10y agoFascinating. Can someone detail the pros/cons of this? Are they copying/cherry-picking commits from a dev track?
- justinlaster 10y agoProbably rebasing more than anything. cherry-picking is a messier, yet easier way to get the same history, you just need to clean up after yourself. Merge commits are useful, in my opinion, if there was significant work done to get two branches to "align" with each other. Otherwise, just rebase your work for a cleaner history. So in short: Merging: More "accurate" history about the work done to bring the work into the main/dev branch, yet messier. Rebasing/cherry-picking: cleaner history, potentially at the expense of context and "accurate" history about the work done to bring in code to the main/dev branch.
- vog 10y agoI think that's the only explaination.
- geekone 10y agoMight be dated, but check out the No Merge Commits section of the article at https://lwn.net/Articles/409635/ https://lwn.net/Articles/409635/ for possible reasoning they had/have.
- deleted 10y ago[deleted]
- anarazel 10y agoI think there's two different discussions here. One about cherry-picking for back-branch releases, one about development for the new version. Re back-branches: It's not particularly practical to use merges from/to stable branches. It may sound nice at first, but there's enough fixes that don't apply to all versions (because a feature didn't exist yet, because refactorings made bugs "accidentally" disappear, ...) that merging either to or from back-branches leads to very very messy merges, where the merge commit has to back out changes and such. I don't know of any larger project that successfully uses merges to merge to/from stable branches. So yes, it's just cherry-picking. Re development: The case here is a lot less clear. The project used CVS for a long while, and during the migration it was decided to not make the migration harder by changing workflows even more significantly than just CVS->git. So the, enforced, policy became that no merge commits are to appear. It hasn't become a significant problem since, so that policy hasn't evolved at this point. Given the relatively small number of active committers in the project, and the fact that commits in the project are expected to "stand on their own" (i.e. are complete and working), rebasing changes before committing them isn't a problem. Several contributors, including committers, do their development in separate repositories / branches, however. But usually the history there is messy enough that they wouldn't be merged anyway. I think merging is more of a benefit when you have a more hierarchically organized project like the kernel, with subsystem maintainers that aggregate a large volume of changes, which then get pushed to Linus, who then integrates all of those. Hope that roughly answers your question? If not, feel free to ask more about specifics. (For context: I'm one of the committers in the project)