pcl-cvs / NEWS

Diff from to
-This is the NEWS file for pcl-cvs, an Elisp front-end to CVS.
+This is the NEWS file for pcl-cvs, an Elisp front-end to CVS. -*- text -*-
-User-visible changes in pcl-cvs from 1.05 to present:
+Changes from 2.9.7:
+* The raw CVS messages that appear in *cvs* sometimes now use the
+  `cvs-msg-face' so you can play with their appearance.
+* The Copyright has been transfered to the FSF and the copyright message
+  has been (finally) removed.
+* Hooked into after-save-hook to change the entry of a file to MODIFIED as
+  soon as you save it.  It's not 100% correct since the "new" content might
+  be the same as the one in the repository (f.ex. you manually reverted
+  changes), but it's usually convenient.
+* integration with VC is yet a little more better.
+* cvs-mode-commit (bound to `c') now takes a C-u prefix to tell it whether
+  or not to erase+init (i.e. setup) the *cvs-commit* buffer.  By default `c'
+  doesn't do the setup and `C-u c' does, but this can be inverted by setting
+  cvs-edit-setup-invert.  cvs-mode-commit-setup (bound to `C') always does
+  the setup.  By default the setup includes cvs-edit-insert-changelog
+  (mirroring the old `C' behavior), but this can be changed with the
+  cvs-edit-hook.
+* cvs-mode-find-file now also assumes the role of the late cvs-mouse-find-file.
+* The menu has been simplified.  Most notably mark and unmark have disappeared
+  since you can just click on the status word (modified/added/...) instead.
+* cvs-buffer-name-alist's setting for "message" has been changed to accommodate
+  for the new interaction between PCL-CVS and cvs-edit.  This shouldn't impact
+  anyone except for people who have changed their cvs-buffer-name-alist.
+* cvs-erase-input-buffer has disappeared.
+* The messages indicating conflicts of "mode" are turned into `Conflict'
+  and are differentiated by their subtype:
+  - a locally modified file removed in the repo is marked `modified'.
+  - a locally removed file modified in the repo is marked `removed'.
+  - a locally added file added in the repo is marked `added'.
+  It's not perfect but is a little cleaner than before (where it was just
+  `Conflict' + message).
+* cvs-edit-add-to-changelog can be used to add the current log message
+  to a ChangeLog file.  It's the opposite of cvs-edit-insert-changelog
+ �and is also rather crude (it's a simple wrapper around
+  vc-comment-to-change-log).
+* cvs-edit-insert-cvs-template can be used (on cvs-edit-hook typically)
+  to insert CVS' CVS/Template file (specified via CVSROOT/rcsinfo).
+  It's very crude and probably doesn't work for non-C/S CVS.
+* cvs-edit-hook replaces cvs-edit-mode-hook.
+* You can now set `cvs-edit-keep-buffer' to t if you prefer the *cvs-commit*
+  buffer to stay around instead of being hidden after `cvs-edit-done'.
+* cvs-edit-use-vc-log has been removed.  You can't use cvs-edit without VC
+  any more.
+* cvs-edit.el has no dependence on PCL-CVS any more.  You could even use it as
+  a replacement for VC-Log if you want (with a little bit of VC hacking).
+Changes from 2.9.6:
+* the prefix key handling is a bit more consistent with the flags handling:
+  a negative argument is now used to force querying and setting the value.
+  At the same time, the boundaries have been changed, so that it now works like
+  this:
+	N    = select N'th default (as before)
+	-N   = query and set N'th default (used to be N+4)
+	N+10 = query, set and select permanently (used to be N+8)
+* pcl-cvs should now always ensure that at least one directory entry
+  (the `.') is always displayed, no matter what auto-remove is used.
+  Also there are two new auto-remove settings: 'delayed and 'status.
+  'delayed auto-removes entries just before running the next command.
+  'status only auto-removes entries after cvs-(mode-)status.
+* C-u C-u M-x cvs-(examine|status|update) forces the creation of a new
+  *cvs* buffer, even if there's already another one showing the same directory.
+* cvs-mode-kill-buffers.  Should kill all buffers created from this *cvs*.
+* improved several cosmetics details.  The cursor should more often do the
+  right thing and windows should disappear better when needed.  Hopefully.
+* cvs-mode-revert-to-rev.  This doesn't use `update -p >file' but
+  `update -j BASE -j rev' instead.  The advantage is that it seemlessly
+  works on several files at a time (even directories).  The disadvantage is
+  that it hits a cvs bug ("BASE" is not interpreted correctly) and has to
+  workaround it by creating a temporary tag.  I.e. if something bad happens,
+  you might end up with temporary tags lying around :-(
+  It can be called by providing a prefix argument to cvs-mode-undo.
+* diff-mode disappeared.  It's now a separate package, considerably improved
+  and available from
+  We wish him good luck in his new life.
+* cvs-reread-cvsrc.  It's not bound to any key (I never use such a thing).
+* cvs-log-mode.  It just provides font-lock patterns and some navigation
+  commands.  All the main cvs commands are available via cvs-minor-mode
+  of course.  The commands apply to the "current" file which is determined by
+  the position of the cursor, but such context-sensitivity is not implemented
+  for revisions.
+* cvs-edit-show-files (C-c C-f) does what you expect.
+  And cvs-edit-done now lists the files to be committed and
+  requests confirmation.
+* the installation has somewhat changed:  the setup code is not copied
+  to the site-start.el any more.  Instead pcl-cvs-startup.el is installed
+  just like the other files and the site-start.el loads it.
+  I'm afraid that means that you'll have to manually update your site-start.el
+* name-space cleanup.
+* old bugs fixed, new bugs added.
+Changes from 2.9.5:
+* the menubar code has been simplified.  This might not work as well
+  on older XEmacsen.  Also the cvs-mode-motion-highlight-line has been
+  dropped.  Scream if you want it back in.
+* a new command cvs-more-idiff-other allows to run idiff on two different
+  files.  Ideally it should be possible to idiff between two files from two
+  different *cvs* buffers, but not just now.
+* more commands understand the `b' prefix (cvs-mode-examine, cvs-checkout).
+  Furthermore, `cvs-mode-update' now uses `-j' rather than `-r' with the branch
+  prefix. A secondary `B' branch prefix has been introduced.  It is only
+  active when the primary prefix is active.  It is used by cvs-mode-diff
+  and cvs-mode-update.
+* all the cvs-edit stuff has moved to cvs-edit.el.
+  cvs-mode-changelog-commit is now deprecated in favor of either manually
+  calling `cvs-edit-insert-changelog' or by adding that same command to your
+  cvs-edit-mode-hook.  If VC is loaded, cvs-edit now takes advantage of VC's
+  comment ring.  Furthermore a new hook cvs-edit-done-hook allows you now
+  to run some code just before commit for anything like cleaningup the format,
+  enforcing conventions, synchronizing with your bugtrackingsystem, ...
+  A cvs-edit-files function is provided so that those hooks can know what
+  files are about to be committed.  If you write such a hook I'd like to hear
+  from you.
+* The command's flags have also been improved with multiple defaults.
+  A positive numeric argument selects the corresponding default, while a
+  negative one queries to change this default. C-u C-u behaves as before
+  while is similar to a negative zero argument (but those don't exist).
+  This way you can have `s' run status and `1s' run `status -v'.
+  The cvs-<foo>-flags variables have been considerably changed and setting
+  them in your .emacs is not recommended any more (it should still mostly
+  work, tho).  Also the default from the 4th up are shared among all commands.
+  This can be changed with `cvs-shared-(start|flags)'.
+* `cvs-commit-prompt-buffer' disappeared.  Use `cvs-buffer-name-alist'
+  instead.
+* digits can again be used as numeric arguments, which is very handy for
+  selecting among several defaults.
+* The C-x v binding was moved to C-x c but is configurable with
+  `cvs-minor-mode-prefix' and it is automatically available via the
+  cvs-minor-mode in any *cvs-<foo>* buffer.
+* cvs-mode-find-file can now jump to the `active' area of the file (if
+  it is locally modified).  This `cvs-find-file-and-jump' is set by default.
+* prefix keys have been unified/improved:  `b', `M-f' and `T' are now using the
+  same code.  This code provides for 4 different defaults and for persistent
+  settings: `C-1 b' will chose the default nb 1, while `C-u C-u b' will set
+  the branch prefix persistently for the following commandS until it is reset
+  by toggling it back to the inactive state with `b'.  Changing the default
+  is currently done with `C-5 b' (to change the default nb 1).  This is
+  likely to be changed to `C-- C-1 b' instead.
+* integrated a derivative of cvstree.el (many thanks to "Masatake YAMATO"
+  <>).  It is now called cvs-status.el and is
+  used as the major mode for cvs-mode-status' output.  The trees are not
+  automatically drawn, but only upon request:  press `t' or `C-u t' or
+  `T' to rewrite the tags-lists into trees (assuming you passed "-v").
+  There is also `cvs-mode-tree', but it is incomplete (I intent for it
+  to present a merged view of a single tree representing the tags of all
+  the files).  All cvs-mode operations can be done from cvs-status-mode
+  and they operate on the currently pointed-to file as well as on the currently
+  pointed-to tag (an active mark can be used to specify a second file
+  and a second tag).
+* the backup file loaded for imerge sessions is now put in the correct major
+  mode.  It used to be put in nroff-mode (it is still put in nroff-mode at
+  first, but fixed later).
+* pcl-cvs-startup.el is now partly auto-generated.
+  That means it's uglier.
+Changes from 2.9.4:
+* any cvs-mode command can now be called from any "related" buffer
+  (i.e. a buffer whose `cvs-buffer' variable points to a *cvs* buffer).
+  This allowed me to bind the cvs-mode-map to C-x v in cvs-edit-mode
+  so that you can conveniently call cvs commands from the commit buffer.
+  I don't know if C-x v was a good idea, so I'm open to improvements.
+* cvs-edit-mode is now a derived mode of text-mode.  I originally wanted
+  to make it derive from vc-log-mode, but I expect that too many people
+  will complain.  It would have a few advantages, though (such as the
+  M-n and M-p to get at older log messages).
+* all temporary prefixes like toggle, `b' and M-f now display their activation
+  in the modeline.
+* cvs-mode-tag has been reverted to only work on directories.
+  this can be overriden by either the M-f `cvs-mode-force-command' which
+  overrides any similar restriction on the next command, or by setting
+  cvs-force-dir-tag to nil.
+* cvs-auto-remove-directories can now also take the value 'empty.
+* `Need Remove' is renamed `Missing', more factual and shorter.
+* the `command running' message has been finally reworked:  there should
+  be less jitter, less junk and more information.  As a side effect, this
+  also solved the `cvs-mode-unmark at end of buffer' problem.
+* revision buffers have their major-mode correctly setup.
+* cvs-mode-insert uses `cvs status' to initialize the new entry.
+* *cvs-info* is used to display status and log output.  This has the added
+  benefit of allowing cvs-mode-{status,log} to be executed during a
+  cvs-mode-examine.
+* a few name changes:
+  cvs-mode-undo-local-changes -> cvs-mode-undo
+  cvs-diff-buffer-name -> cvs-buffer-name-alist
+* C-c C-c now kills the underlying cvs process.
+* the notion of default action has been dropped.  This is completely
+  redundant with the status of the file itself and only served to waste
+  precious screen real-estate.
+* ediff can now also be run on files which have not been merged
+  from within pcl-cvs.  This is currently achieved simply by using
+  VC's vc-resolve-conflict.
+* the branch-prefix now also applies to cvs-mode-log and cvs-find-file
+  and cvs-mode-idiff. its use on find-file allows to conveniently look at any
+  revision of a file in order (for example) to revert a file to an earlier
+  version.
+* cvs-mode-untag has been added.
+Changes from 2.9.2 to 2.9.4:
+* tagging should finally work.
+* fixes for NT and for Emacs 19.34.
+* tag completion for `b' and for `de'.
+* there is a new prefix key `b' used to make the following command
+  operate on a specified version.  `C-u b' queries for a new version
+  while `b' justs sets the prefix for the next command.  Currently only
+  cvs-mode-diff and cvs-mode-update use this prefix.
+* cvs-parse-ignored-messages can be used to keep a list of regexps
+  of messages that pcl-cvs should ignore.  This is mostly useful for
+  CVS messages that pcl-cvs still doesn't know about or for messages
+  coming from other programs exec'd by CVS such as ssh.
+* cvs-update, cvs-examine and cvs-status now always request a directory.
+  This reverts the behavior to what it was long ago.  If you want a quicker
+  way to run it on the current directory, use `g', `M-e', `M-u' or `M-s'.
+Changes from 2.9 to 2.9.2:
+* various fixes
+* A new binding `g' is used to ask a refresh of the buffer.
+  It actually does a cvs-examine.
+* the `running cvs' message is now deleted when the process exits.
+* the hack that calls cvs-examine when you open a */CVS directory has
+  been tuned:  it only does it when there is an Entries file in the CVS
+  directory (should hopefully prevent pathological cases where you have
+  a normal directory called `CVS').  Furthermore, it only has that neat
+  behavior if you pass a simple prefix-argument to the command you use
+  to open the directory (such as C-x C-f).  This last point can be customized
+  with the cvs-dired-use-hook variable:  you can go back to the previous
+  behavior (more intrusive and with the twist that providing the prefix-arg
+  then turns off the hack) or completely inhibit this nasty intrusion
+  in your nice Emacs habits.
+* cvs-edit-mode now calls cvs-edit-mode-hook.
+  the hook's value defaults to the value of vc-log-mode-hook.
+* cvs-mode-examine on a directory now cleans the previous contents of
+  the dir so as to avoid keeping outdated entries.
+* changed the default faces not to use `bold' everywhere any more.
+Changes from 2.5 to 2.9:
+* Interaction between VC and pcl-cvs is much improved.
+  pcl-cvs-hooks now hooks into the heart of VC (vc-do-command) where it
+  gets a chance to parse cvs' output on VC-executed cvs commands.  This
+  allows pcl-cvs to keep its buffers uptodate in the face of VC actions.
+  Note: `vc-register' uses `cvs add' which might end up being a
+  `cvs -q add' if you have -q in your .cvsrc, in which case pcl-cvs
+  doesn't get enough info to notice that the file was added:  don't put
+  `-q' in your .cvsrc file if this misfeature bothers you (a workaround
+  is not really difficult to write up, but it's too ad-hoc, flakey and/or
+  intrusive).
+Changes from 2.0.90 to 2.5:
+* You can now add any file to the display with cvs-mode-insert (bound to `I').
+  This allows you to then cvs-mode-add an ignored file, for instance.
+* clicking (mouse-2) on the status of an entry will toggle its mark.
+  local keymaps are used for each field, so you can set your bindings the way
+  you like them.  The maps are `cvs-{filename,dirname,action,status}-map'
+  and can be set from `pcl-cvs-load-hook'.
+* `revert-buffer' in the *cvs* buffer reruns cvs-examine.
+* doing cvs-mode-add on a directory currently labelled as `unknown' will
+  do the right thing now (it used to leave the display unchanged).
+* You don't need to always enter a description when adding files:
+  just set cvs-add-default-message to some default string.  You'll still
+  be able to enter a description by providing a prefix argument.
+* reworked the ediff/emerge support. `de' is now bound to cvs-mode-idiff
+  while `dE' is bound to cvs-mode-imerge.  They will do an
+  interactive diff resp merge using either ediff or emerge, depending on
+  `cvs-idiff-imerge-handlers'.  Also imerge should now do the right thing
+  more often: if you do an cvs-update with flags `-jbranch' it will fetch
+  the right files.
+* arguments can now contain strange characters.
+  If you want to pass three args where the middle one contains spaces, use:
+	arg1 "this is arg2" arg3
+  The quoting rules between double quotes are the usual emacs rules.
+  Note that `a"b"c' will be taken as three arguments, but don't rely on that.
+Changes from 2.0b2 to 2.0.90:
+* The important variables have been cutom-ized.
+* It doesn't use any /tmp files any more.
+* several simultaneous *cvs* buffers.
+* only one `cvs' command is executed across multiple directories.
+  This may not always work for cvs < 1.10 but you can change it.
+* highlighting and menu support (a la font-lock).
+* cvs-mode-<cmd> are now run in the background
+  and most of them pass through the parser for "reliable" update of the display
+* font-lock support for diff output.
+* all the -other-window have disappeared since cvs-examine and friends uses
+  `pop-to-buffer'.  Just set the pop-up-frame/pop-up-window according to your
+  preferences.
+* `cvs-redo' (previously bound to `g') has disappeared.
+  Rerunning cvs-<cmd> will default to the current directory (unless you use a
+  prefix arg).
+* cvs-mode-diff-cvs has been renamed cvs-mode-diff
+* keybindings have been changed (ouch).  M-e is cvs-examine, M-s is
+  cvs-status, M-u is cvs-update.
+* all the cvs-mode-set-<foo>-flag have been replaced by a single
+  cvs-set-mode-flag which will ask which flag you want to change.
+  It is bound to `F'.
+* Pcl-cvs will now read your .cvsrc file to set the default value of flags.
+  Note that this comes with support for `cvs-cvs-flags' which tells what flags
+  to pass to cvs before the command.  The default is inherited from .cvsrc by
+  adding `-f' (to override .cvsrc) and removing `-q' or `-Q' (if present) 
+  which would prevent cvs from outputiing crucially useful (to pcl-cvs)
+  information.
+* cvs-auto-remove-handled-directories has been renamed to
+  cvs-auto-remove-directories which can either be t or 'handled.
+* most of the work for commit has been moved from cvs-mode-commit to
+  cvs-edit-done:  the flags request, the extraction of marked files, ...
+  You can even do several commits from the same cvs-edit buffer without doing
+  a cvs-mode-commit in-between (mostly useful if you set `cvs-allow-dir-commit')
+* Updated and Patched are now subtypes of Up-to-date, while Merged is a subtype
+  of Modified.  Commited and Added are also subtypes (of Up-to-date).
+  This subtype is displayed (if present) instead of the head-revision (the two
+  infos share the same place in the buffer, and it seems there's little (if
+  any) overlap).
+* `co' and `ci' have been replaced by a short text describing some kind of
+  `default' action.  `ci' is more or less replaced by `com(mit)' while `co'
+  is replaced by `upd(ate)'.  A new alternative is `udo' which stands for undo.
+* made lots of the `after cvs execution' processing more uniform (the
+  auto-revert was only done after commit, ...)
+* cvs-auto-revert-after-commit is renamed to cvs-auto-revert.
+* pcl-cvs-hooks.el allows to hook pcl-cvs into other packages (using `advice').
+  There is a hook for dired which allows to run `cvs-examine' (or `cvs-status'
+  if you prefer) instead of dired whenever you open a .../CVS directory.
+  Another hook slightly improves uniquify's behavior in the case of multiple
+  cvs buffers.
+  While yet another hook instructs VC to call diff-mode on *vc-diff* buffers.
+User-visible changes in pcl-cvs from 1.05 to 2.0b2:
 * Pcl-cvs now requires GNU emacs version 19.xx or newer.
 * Pcl-cvs now creates temporary files in $TMPDIR if that environment
   variable is set (otherwise it uses /tmp).
----End of file NEWS---
+#ident @(#)v2_9_9:NEWS,v 1.21 2000/03/05 21:32:20 monnier Exp