Git Branches - multipath-tcp/mptcp_net-next GitHub Wiki

Different branches on mptcp_net-next repo

  • net-next → sync of Netdev's net-next
  • net → sync of Netdev's net
  • t/upstream → top of the TopGit tree containing our changes on top of net-next
  • t/upstream-net → top of the TopGit tree containing our changes on top of net
  • t/* → other topic: correspond to one commit we want to send upstream, managed by TopGit
  • export → an export of the tree on top of net-next, rebased every day: what we should send upstream at some points (without the DO-NOT-MERGE ones)
  • export-net → an export of the partial tree on top of net (not including the net-next patches), rebased every day: what we should send upstream at some points (without the DO-NOT-MERGE ones)
  • for-review → same as t/upstream but without TopGit files: can be used as a base and target for your reviews, easier to rebase
  • for-review-net → same as t/upstream-net but without TopGit files: can be used as a base and target for your reviews, easier to rebase

[!IMPORTANT] TopGit is used to ease the maintenance and track all modifications, e.g. if we need to modify an existing commit from the export branch before sending it to netdev. You don't need to use TopGit to send patches.

Which branch to use?

Short answer: export.

Simply base your dev branch on top of the export branches (or the for-review one). Prefer the non -net branches: it is easier to review on top of them, to resolve conflicts once applied, and the CI will try to apply your patches on top of the export branch.

If you work on top of the export/export-net branches (instead of the for-review/for-review-net ones), use git rebase --onto (or git reset + cherry-pick) to sync with the latest version, e.g. if you are using b4:

git fetch origin  # adapt here and below if needed
git rebase --onto origin/export "$(b4 prep --show-info base-commit)"

Do not use git blame on top of for-review (-net), as references might point to our TopGit development tree, and not what has been upstreamed.

For MPTCP Maintainers only

For your information, the TopGit tree is looking like this:

* t/upstream
*   (...)
*   MPTCP commits for net-next
*   (...)
*
|\    --- (...) MPTCP commits only for -net (...) ---- t/upstream-net
| \ /
|  *   (...)
|  * MPTCP commits for -net (and net-next)
|  *   (...)
*  | top of 'net-next' branch
|\ |
| \|
|  * top of 'net' branch
|  | (...)

To manipulate it, please look at this README