<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The Repository</title><link rel="stylesheet" href="styles.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><link rel="start" href="index.html" title="Version Control with Subversion" /><link rel="up" href="svn.basic.html" title="Chapter 1. Fundamental Concepts" /><link rel="prev" href="svn.basic.html" title="Chapter 1. Fundamental Concepts" /><link rel="next" href="svn.basic.vsn-models.html" title="Versioning Models" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The Repository</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="svn.basic.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Fundamental Concepts</th><td width="20%" align="right"> <a accesskey="n" href="svn.basic.vsn-models.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="svn.basic.repository"></a>The Repository</h2></div></div></div><p>Subversion is a centralized system for sharing information. At its core is a repository, which is a central store of data. The repository stores information in the form of a <em class="firstterm">filesystem tree</em>—a typical hierarchy of files and directories. Any number of <em class="firstterm">clients</em> connect to the repository, and then read or write to these files. By writing data, a client makes the information available to others; by reading data, the client receives information from others. <a class="xref" href="svn.basic.repository.html#svn.basic.repository.dia-1" title="Figure 1.1. A typical client/server system">Figure 1.1, “A typical client/server system”</a> illustrates this.</p><div class="figure"><a id="svn.basic.repository.dia-1"></a><p class="title"><b>Figure 1.1. A typical client/server system</b></p><div class="figure-contents"><div><img src="images/ch02dia1.png" alt="A typical client/server system" /></div></div></div><br class="figure-break" /><p>So why is this interesting? So far, this sounds like the definition of a typical file server. And indeed, the repository <span class="emphasis"><em>is</em></span> a kind of file server, but it's not your usual breed. What makes the Subversion repository special is that <span class="emphasis"><em>it remembers every change</em></span> ever written to it: every change to every file, and even changes to the directory tree itself, such as the addition, deletion, and rearrangement of files and directories.</p><p>When a client reads data from the repository, it normally sees only the latest version of the filesystem tree. But the client also has the ability to view <span class="emphasis"><em>previous</em></span> states of the filesystem. For example, a client can ask historical questions like, “<span class="quote">What did this directory contain last Wednesday?</span>” or “<span class="quote">Who was the last person to change this file, and what changes did he make?</span>” These are the sorts of questions that are at the heart of any <em class="firstterm">version control system</em>: systems that are designed to track changes to data over time. </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="svn.basic.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="svn.basic.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="svn.basic.vsn-models.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Fundamental Concepts </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Versioning Models</td></tr></table></div></body></html>