darcs pushto commit to the public server.
darcs send). The project's maintainer(s) can decide whether to accept or reject the changes. This way, the maintainer(s) of the main repository do not need to give commit privileges to anyone else. This is how Darcs itself is maintained, by the way.
controversialpatches that aren't accepted by the official maintainers. No problem – I make my changes, release my own distribution. It's a fork, of sorts, but it's still connected to the mainline. Whenever the official project makes changes, I do a
darcs pullto get them, and resolve any conflicts. This way, my fork is kept up to date with the main project's repository.
darcs record. Other commands, like
darcs push, behave the same.