From 4bbcf65b50d27e002f47bef47dcb7a5f57e26fda Mon Sep 17 00:00:00 2001 From: Julien Castiaux Date: Thu, 1 Jun 2023 17:48:29 +0200 Subject: [PATCH] wip --- content/developer/tutorials/git.rst | 32 +++++++++++++++--- .../tutorials/git/plot-commits-14-0.png | Bin 0 -> 17894 bytes .../tutorials/git/plot-commits-master.png | Bin 0 -> 22249 bytes 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 content/developer/tutorials/git/plot-commits-14-0.png create mode 100644 content/developer/tutorials/git/plot-commits-master.png diff --git a/content/developer/tutorials/git.rst b/content/developer/tutorials/git.rst index 909d5f2b5..dee002d0d 100644 --- a/content/developer/tutorials/git.rst +++ b/content/developer/tutorials/git.rst @@ -263,15 +263,39 @@ The commit ``[FIX] http: make session lifetime consistent and configurable`` get .. _HTTPocalypse: https://github.com/odoo/odoo/pull/78857 -If you have had a prior experience with Git, you might be surprised to read such a lenghty commit message. It is the company policy to thoroughly describe the context of every change and to explain why they are necessary. This way we make sure that all contributors can understand the scope and rationnals of every feature and give feedback even if they were not part of the original design/specification of said feature. This is quite important for an open-source software company. +If you have had a prior experience with Git, you might be surprised to read such a lenghty commit message. It is the company policy to thoroughly describe the context of every change and to explain why they are necessary. This way we make sure that all contributors can understand the scope and rationnals of every feature and give feedback even if they were not part of the original design/specification of that feature. This is quite important for an open-source software company with hundreds external contributors Contrary to ``git log`` that can list all commits that modified to a single file, ``git show`` lists all modifications over all the files that a single commit modified. In this example we see that two files were modified: ``odoo/addons/base/models/ir_http.py`` and ``odoo/http.py``. It is not relevant to this tutorial to understand what actually changed but you can give it a try. +Understand the branching model +============================== -Blame ------ +The last section was about discovering git, discovering what the history and commits are for, it was also about understanding that multiple versions co-exist. This section is about going deeper in this notion of co-existing versions, called *branches* in git jargon. What's the difference between the various branches out there, namely the differences between *master*, stable and development branches. + +Stable branches +--------------- + +Stable branches are branches that are deployed on Odoo Online for customers to use. Those branches are labelled *stable* because developers try to not add new features and instead focus on fixing bugs as they are discovered by customers. + +.. note:: + + Since its release in late 2020, there have been more than 6.000 new commits on the 14.0 branch, of them 84% are bug fixes and 7% are feature improvement. + + .. image:: git/plot-commits-14-0.png + :alt: Plot of the various [IMP] and [FIX] commits in the 14.0 branch indexed per month in the period Sept 2022 - March 2023 + + +Master branch +------------- + +.. note:: + + Since the release of the 14.0, there have been more than 18.000 new commits on the master branch, + of them 58% are bug fixes, 32% are features and 5% are refactors. + + .. image:: git/plot-commits-master.png + :alt: Plot of the various [IMP] and [FIX] commits in the master branch indexed per month in the period Sept 2022 - March 2023 -*todo* Modify files ============ diff --git a/content/developer/tutorials/git/plot-commits-14-0.png b/content/developer/tutorials/git/plot-commits-14-0.png new file mode 100644 index 0000000000000000000000000000000000000000..09b8ab700f3b736e85009f60ad75fde5178fa7f6 GIT binary patch literal 17894 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�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 HoD!M~rs* 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 F{R?ZpP2B(h literal 0 HcmV?d00001