Collaborating

(If you haven't read the introduction, "Getting started with Mercurial", we suggest you do so now.)

Collaborating

Collaborating with other people is very easy and convenient with a DVCS. Bitbucket makes it easier by providing a simple, yet powerful access control system (ACL), and a forking functionality.

Access Control Lists

ACLs is a simple feature that allows you to specify both read and write access to your repositories on Bitbucket. If you have a private repository, you may for example invite your friends/colleagues to view your code by giving them read access, or invite them to contribute changes by giving them write access.

On the other hand, if your repository is public, you may individually provide write access to whomever you want. This is useful for open source projects where you don't mind everybody having access to read the files, but only want to allow write access to your team.

Forking

Another powerful feature is "forking." Forking is a way for you to create an exact copy of a repository at a specific point, and "take it from there." For example, if you want to contribute some changes to the Django project and you also want to publish those changes for others to see, you can create a fork. This gives you a copy of the code from the point where you fork it, and you may clone it, commit changesets--it's your repository. Once you're satisfied with your changes, you can then ask the owners of Django to "pull" in your changes, and merge them into the main repository.

Bitbucket lets you do this by clicking on the "pull request" button for any repository. You are not limited to specifying your repository on Bitbucket; you can specify any address. If you do have your repository on Bitbucket, it will let you select it from a list. A notification will be sent to the owners, making it easy to communicate changes.