Working together

Branches & merge requests

How teams work in Lumbung: every change is made on its own branch, proposed through a merge request (MR), reviewed, then merged into the main branch. The main branch always stays ready to use.

1. Create a branch

git switch main
git pull
git switch -c feature/qris-payment

Good branch names describe the content: feature/โ€ฆ, fix/โ€ฆ, docs/โ€ฆ.

2. Commit & push

git add .
git commit -m "Add QRIS payment"
git push -u origin feature/qris-payment

After pushing, the terminal prints a "Buat merge request untuk feature/qris-payment" (create merge request) link โ€” open it.

3. Open a merge request

In the MR form:

  • Title & description โ€” explain what changed and why. Write Closes #12 so issue #12 closes automatically when the MR is merged.
  • Reviewers โ€” people asked to check it. They get notified and the MR shows on their home page (Waiting for your review).
  • Draft โ€” not ready for review? Tick Mark as draft (or start the title with Draft:). Draft MRs can't be merged.

No terminal needed: edit a file in the browser (Edit button) and choose Create a new branch & open a merge request.

4. Review

Open the MR's Changes tab:

  • Hover a line and click + to comment on that line.
  • Switch between Unified and Side by side views.
  • Every new push creates a new version; pick a version to see what changed since the last review. Comments on lines that changed are marked outdated.
  • Reviewers press Approve when satisfied. Authors can't approve their own MR.
  • Mark finished discussions with Resolve.

5. Merge

The box in the Overview tab lists unmet requirements โ€” conflicts, approvals, open threads, or draft status. When everything is green, a maintainer picks a method:

Method Result
Merge commit full branch history + one merge commit
Squash & merge all MR commits squashed into one
Fast-forward no merge commit; only if the target hasn't moved

Tick Delete source branch to keep branches tidy after merging.

Team rules

Maintainers can configure in repo Settings:

  • Protected branches โ€” e.g. main may only change through MRs merged by maintainers.
  • Minimum approvals before merging.
  • All threads must be resolved before merging.
  • Default merge method.