Chris@494: Chris@494: Chris@494: Chris@494:
When you use a version control system to keep track of your changes to Chris@494: a set of files, there are two different concepts you're dealing with: Chris@494: a working copy and a repository.
Chris@494: Chris@494:A working copy is just a folder with your project's files in it. It Chris@494: contains the versions of the files that you are working with now. Chris@494:
A repository is a record of the entire history of your project. When Chris@494: change something in the working copy, you can then commit it to the Chris@494: repository and your change gets added to the history. Chris@494:
You can also go back and grab an older version from the repository if Chris@494: you find you need it. (If you do this, then the working copy will be Chris@494: updated so as to contain that older version rather than the most Chris@494: recent one.)
Chris@494: Chris@494:Older centralised version control systems use a separate database for Chris@494: the repository. But with a distributed version control system such as Chris@494: Mercurial, the repository – the entire history of your project files Chris@494: – is stowed into a special folder inside the working copy on your Chris@494: hard drive. Every change you commit gets added to the history in that Chris@494: hidden folder. (The history is compressed, so it doesn't take as much Chris@494: space as you might imagine.)
Chris@494: Chris@494:The term remote repository simply refers to a repository related to Chris@494: your local one, but stored on another computer somewhere else. Often Chris@494: this may be a “master copy” of your project stored on a server Chris@494: elsewhere, which you and your collaborators can use to keep up with Chris@494: each other's work, or which you can use to make your work public, or Chris@494: simply use as a private backup.
Chris@494: