Download GNU Emacs Manual

Transcript
Chapter 25: Maintaining Large Programs
570
branch—if you say no, you’ll be offered a chance to lock the latest revision instead. On a
merging-based VCS you will skip this step.
Then make your changes and type C-x v v again to commit a new revision. This creates
a new branch starting from the selected revision.
After the branch is created, subsequent commits create new revisions on that branch.
To leave the branch, you must explicitly select a different revision with C-u C-x v v.
25.2 Change Logs
Many software projects keep a change log. This is a file, normally named ‘ChangeLog’,
containing a chronological record of when and how the program was changed. Sometimes,
there are several change log files, each recording the changes in one directory or directory
tree.
25.2.1 Change Log Commands
The Emacs command C-x 4 a adds a new entry to the change log file for the file you are
editing (add-change-log-entry-other-window). If that file is actually a backup file, it
makes an entry appropriate for the file’s parent—that is useful for making log entries for
functions that have been deleted in the current version.
C-x 4 a visits the change log file and creates a new entry unless the most recent entry is
for today’s date and your name. It also creates a new item for the current file. For many
languages, it can even guess the name of the function or other object that was changed.
When the variable add-log-keep-changes-together is non-nil, C-x 4 a adds to any
existing item for the file rather than starting a new item.
You can combine multiple changes of the same nature. If you don’t enter any text after
the initial C-x 4 a, any subsequent C-x 4 a adds another symbol to the change log entry.
If add-log-always-start-new-record is non-nil, C-x 4 a always makes a new entry,
even if the last entry was made by you and on the same date.
If the value of the variable change-log-version-info-enabled is non-nil, C-x 4 a adds
the file’s version number to the change log entry. It finds the version number by searching
the first ten percent of the file, using regular expressions from the variable change-logversion-number-regexp-list.
The change log file is visited in Change Log mode. In this major mode, each bunch
of grouped items counts as one paragraph, and each entry is considered a page. This
facilitates editing the entries. C-j and auto-fill indent each new line like the previous line;
this is convenient for entering the contents of an entry.
You can use the next-error command (by default bound to C-x ‘) to move between
entries in the Change Log, when Change Log mode is on. You will jump to the actual
site in the file that was changed, not just to the next Change Log entry. You can also use
previous-error to move back in the same list.
You can use the command M-x change-log-merge to merge other log files into a buffer
in Change Log Mode, preserving the date ordering of entries.
Version control systems are another way to keep track of changes in your program and
keep a change log. In the VC log buffer, typing C-c C-a (log-edit-insert-changelog)
inserts the relevant Change Log entry, if one exists. See Section 25.1.4 [Log Buffer], page 560.