Does Mercurial have a branch, still inside the repository, or is it a completely new local repository?
The equivalent of the subversion method of operation would be a repository with several heads in the mercury. However, this is not an idiomatic way of doing things. As a rule, you will have only one head in this repository, therefore separate repositories for each branch.
If each of us has a copy of the whole repository, does this mean that we all have copies of each other in different branches (which is a lot of data transfer)?
Yes, if you look at the history of the chapter of your local repository, you can see all the branches of the functions that were combined. But mercury repositories are extremely efficient in space. For example, I did hg clone https://www.mercurial-scm.org/repo/hg to get the source for mercurial itself, and this is only 34.3 MB on the NTFS file system (compared to source, loading the code , which is 1 , 8 MB). Mercurial will also use hard links if your file system supports it, so there is little overhead when cloning a repository to another location on the same drive.
I know that Mercurial is DCVS, but does this mean that we push / pull changes from each other, and not through the peer repository on the server?
One way of working really is for each developer to publish a public repository in which they push their own changes. All other developers can then pull what they want.
However, as a rule, you will have one or more โblessedโ repositories where all changes will be integrated. All developers then only need to pull from the blissful repository. Even if you obviously didnโt have such a blessed repository, I think that people automatically organize themselves in this way, for example. everyone draws from the lead developer.
Wim coenen
source share