-
Notifications
You must be signed in to change notification settings - Fork 20
Branches
We use the following branches for Erlang/OTP.
The master
branch is used for the upcoming major RXX---
releases. It will contain major changes and new features from the OTP-team and the open-source community.
We only merge tested changes to the master
branch. You can safely base branches on the master
branch. It will not be rewinded.
Typically, everything in the master branch will be included in the next major release.
The master branch should include all new features or major changes to Erlang/OTP.
The master branch will also include everything that is currently in the maint
branch.
The master-pu
branch contains everything in the master branch and merges of all topic branches not yet graduated to the master branch.
There is a web page with an overview of what is currently included: Currently in the ‘master-pu’ branch.
The master-pu
branch will be rebuilt frequently, you should not base branches upon it.
We will send out an information email (What is cooking in erlang/otp) about the status of the topics on the master-pu
branches approximately twice a week.
The maint
branch is used for the upcoming minor R--XXX
releases. We only merge tested changes to the maint
branch (and simple changes that are obviously correct). You can safely base branches on the maint
branch. It will not be rewinded. Typically, everything in the maintenance branch will be included in the next release.
The maintenance branch should not include any new features, the focus of this branch is bug fixes and improvements.
The pu
branch contains everything in the maintenance branch and merges of all topic branches not yet graduated to the maintenance branch. There is a web page with an overview of what is currently included: Currently in the ‘pu’ branch.
The pu
branch will be rebuilt frequently; you should not base branches upon it.
We will send out an information email (What is cooking in erlang/otp) about the status of the topics on the pu
branches approximately twice a week.
For the examples below, we assume that you have created a remote like this:
git remote add upstream git://github.com/erlang/otp.git
For background on this command, see Forking a project.
The easiest way to find out what is included in the pu
branch is to look at the following web page:
Alternately, you can use a command like this:
git log --oneline --first-parent upstream/maint..upstream/pu
to list all topics currently merged into the pu
branch.
The output may look like this:
5dba534 Merge branch 'as/c_nc-fix' into pu 7b3cd7d Merge branch 'bg/make_stub_module-fix' into pu 4bf6686 Merge branch 'mh/to_erl-error-messages' into pu 8f1deea Merge branch 'ks/dialyzer-wx-fix' into pu 4ca3b67 Merge branch 'sv/sys_get_status' into pu c976574b Merge branch 'bd/http_chunk_fix' into pu 6c68df3 Merge branch 'bg/on_load-types' into pu 36f2430 Merge branch 'po/odbc-update-delete-no-rows' into pu f3ff5fe Merge branch 'ng/readme' into pu fcd86c8 Merge branch 'egil/misc-egd' into pu 2c2a61d Merge branch 'egil/readme-debug-emulator' into pu
If you just want to build using the pu
branch, you don’t need to create a local version of it first. You can just do:
git checkout upstream/pu
or
git checkout upstream/maint-pu
and build as usual. If you do create a local branch, note that you will get merge conflicts if you try to update it using
git pull
. Instead, either do
git branch -f pu upstream/pu
if the current branch is not pu
or if the current branch is pu
:
git reset --hard upstream/pu
To create a local branch for a topic that is included in the pu
branch, you can use the following script.
Assuming that you have defined a remote named upstream
that points to the erlang/otp
repository, you use it like this:
create-topic-branches upstream/master..upstream/pu
The output will look like:
git branch -f jp/dependencies_makefile 2924df5^2 git branch -f is/mnesia-send-compressed 7912b9c^2 git branch -f yh/fix-re-run-corruption 54077dd^2 git branch -f egil/binary-gc 067c273^2 git branch -f wt/ssl-resume-session 097eab3^2 git branch -f wt/ssl_certreq_send_ca_list 8978d36^2 git branch -f sc/sctp-connect-nowait 9a94e7c^2 git branch -f km/http-host-header-fix cd9cbaa^2 git branch -f va/rb-improvements 62dc0f1^2 git branch -f uw/shell-tab-completion ac66386^2 git branch -f cf/compile_warning_as_error df8ea7a^2 git branch -f cf/epp-macro-overloading f323862^2 git branch -f bg/otp_build-improvements 762faf3^2 git branch -f at/odbc_osx_fix 02b8126^2 git branch -f db/tv_nthtail_fix 51c42b3^2 git branch -f bd/http_chunk_fix 80f97f7^2 git branch -f po/odbc-update-delete-no-rows 438cea4^2
To create only the local branch you are interested in, copy and paste the command for the branch and execute it.
You can also pipe the output of create-topic-branches
to sh
if you want to create all topic branches:
create-topic-branches upstream/master..upstream/pu | sh
or you could run the command through grep
before invoking the shell. For example:
create-topic-branches upstream/master..upstream/pu | grep "bg/" | sh