Commit Your Changes

Finally! Your edits are finished, you’ve merged all changes from the server, and you’re ready to commit your changes to the repository.

The svn commit command sends all of your changes to the repository. When you commit a change, you need to supply a log message describing your change. Your log message will be attached to the new revision you create. If your log message is brief, you may wish to supply it on the command line using the --message (or -m) option:

$ svn commit -m "Corrected number of cheese slices."
Sending        sandwich.txt
Transmitting file data .
Committed revision 3.

However, if you’ve been composing your log message as you work, you may want to tell Subversion to get the message from a file by passing the filename with the --file (-F) option:

$ svn commit -F logmsg
Sending        sandwich.txt
Transmitting file data .
Committed revision 4.

If you fail to specify either the --message or --file option, Subversion will automatically launch your favorite editor (see the information on editor-cmd in Config) for composing a log message.

Tip

If you’re in your editor writing a commit message and decide that you want to cancel your commit, you can just quit your editor without saving changes. If you’ve already saved your commit message, simply delete the text, save again, and then abort:

$ svn commit
Waiting for Emacs...Done

Log message unchanged or not specified
(a)bort, (c)ontinue, (e)dit
a
$

The repository doesn’t know or care whether your changes make any sense as a whole; it checks only to make sure nobody else has changed any of the same files that you did when you weren’t looking. If somebody has done that, the entire commit will fail with a message informing you that one or more of your files are out of date:

$ svn commit -m "Add another rule"
Sending        rules.txt
svn: Commit failed (details follow):
svn: File '/sandwich.txt' is out of date
...

(The exact wording of this error message depends on the network protocol and server you’re using, but the idea is the same in all cases.)

At this point, you need to run svn update, deal with any merges or conflicts that result, and attempt your commit again.

That covers the basic work cycle for using Subversion. Subversion offers many other features that you can use to manage your repository and working copy, but most of your day-to-day use of Subversion will involve only the commands that we’ve discussed so far in this chapter. We will, however, cover a few more commands that you’ll use fairly often.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset