To protect your data, Subversion won't allow you commit new changes to out-of-date files and directories, so it's best to have the latest versions of all your project's files and directories before making new changes of your own. You don't need to tell Subversion that you intend to change a file; just make your changes using your text editor, word processor, graphics program, or whatever tool you would normally use.Subversion automatically detects which files have been changed, and in addition, it handles binary files just as easily as it handles text files—and just as efficiently, too.Tree changes are different, and involve changes to a directory's structure.
For tree changes, you use Subversion operations to files and directories for removal, addition, copying, or moving.
These changes may take place immediately in your working copy, but no additions or removals will happen in the repository until you commit them. A symlink is a file that acts as a sort of transparent reference to some other object in the filesystem, allowing programs to read and write to those objects indirectly by performing operations on the symlink itself.
When a symlink is committed into a Subversion repository, Subversion remembers that the file was in fact a symlink, as well as the object to which the symlink When that symlink is checked out to another working copy on a non-Windows system, Subversion reconstructs a real filesystem-level symbolic link from the versioned symlink.
But that doesn't in any way limit the usability of working copies on systems such as Windows that do not support symlinks.
Subversion has numerous features, options, bells, and whistles, but on a day-to-day basis, odds are that you will use only a few of them.
In this section, we'll run through the most common things that you might find yourself doing with Subversion in the course of a day's work.
The typical work cycle looks like this: When working on a project that is being modified via multiple working copies, you'll want to update your working copy to receive any changes committed from other working copies since your last update.
These might be changes that other members of your project team have made, or they might simply be changes you've made yourself from a different computer.
On such systems, Subversion simply creates a regular text file whose contents are the path to which the original symlink pointed.