WHAT'S NEW IN PATCHER * Copyright (C) 2011 Didier Verna ================================= This file is part of Patcher. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. * Version 4.0: ============= ** Backward incompatible changes *** Mercurial themes renamed from 'mercurial to 'hg in order to remain consistent with the other RCS theme names. *** ChangeLogs insertion in mail buffers rebound to C-c C-p l *** Compressed ChangeLogs insertion in logmsg buffers rebound to C-c C-p L *** Removed directory-sep-char hacks until the need for it raises again. Probably better implemented via project options anyway. *** Diff commands can no longer be changed from patcher-mail-[adapt] but instead, the prefix argument allows for temporary subproject specification. *** patcher-*-subproject entry points removed since they are no longer needed (see above). *** Removed :kill-source-file-after-diffing option *** :kill-source-files-after-sending renamed to :kill-sources-after-sending *** patcher-mail-check-change-logs-insertion is now a project option named :check-change-logs-insertion. *** patcher-mail-check-commit-action is now a project option named :check-commit. *** :change-logs-diff-command option now understands nil instead of 'diff *** The 'packed ChangeLogs appearance has been renamed to 'pack ** New features *** Support floating projects and temporary relocation allowing to use the same project descriptor for various directories. *** Support for automatic detection of submodules via the :submodule-detection-function project option and the patcher-detect-submodules function. Currently supported RCS submodules are Mercurial and Git via the functions 'patcher-[hg|git]-detect-submodules. *** Support ephemeral ChangeLogs thanks to a new :change-logs-status project option. Ephemeral ChangeLogs are not stored in ChangeLog files, but exist only temporarily for mail or log message insertion (See ChangeLogs Status in the documentation). *** ChangeLog minor mode providing easy navigation through the mail/ChangeLog buffers cycle via C-c C-p n, C-c C-p p, C-c C-p N, C-c C-p P and C-c C-p m (See ChangeLogs Navigation in the documentation). *** Support for switching to mail buffer and inserting ChangeLogs at once via C-c C-p l from ChangeLog buffers. *** patcher-mail-insert-change-logs gets a prefix argument allowing to temporarily change the ChangeLogs appearance. It also supports inserting ChangeLogs even when the project is set not to. *** Additional binding for patcher-logmsg-commit: C-c C-p c *** Commit command buffer is now editable Commit is done via C-c C-p c or C-c C-c (patcher-cmtcmd-commit). *** Fontification of commit command and log message buffers with comment syntax and initial informative help. See new Patcher faces. *** Support for commit or log message canceling via C-c C-z. *** Support for project abortion via C-c C-p k or C-c C-k in all relevant buffers, including ChangeLogs. *** Support Subject: header modification in mail adaptation routines via a new project option :subject-rewrite-format. *** Support project-wide dynamic subject modification via C-c C-p S in both mail and log message buffers. *** Implement :kill-source-files-after-sending project option *** Support for source file saving *** Support for CVS diff's broken exit code policy via a new project option: :ignore-diff-status. ** Fixes and improvements *** Improved support for temporary subprojects making them behave like permanent ones (with a specific subdirectory and set of files). *** Much better error handling including exit code checking for external processes. *** Improved support for overlapping Patcher instances through buffer and file referencing for both ChangeLog and source files. *** Documentation rewrite and sections organization cleanup *** More checks for project consistency including missing or spurious ChangeLog entries, source diffs, undiffable and uncommittable projects etc. *** Improved project rediffing including support for partially generated ChangeLog skeletons, and interactive prompting for skeleton un/re-generation. * Version 3.11: =============== ** New built-in themes Notably adding support for Git. ** New project options :diff-header, :diff-cleaner, :notice-change-log-hook and :after-save-change-log-hook. ** New command substitution constructs %?f{} and %!f{} ** Support for file creation/deletion/renaming * Version 3.10: =============== ** New feature: provide built-in themes for some revision control systems These are PRCS, CVS, Subversion, Darcs and Mercurial. Also coming with whitespace-resistant counterparts. ** Documentation: a chapter on how to setup Patcher for XEmacs development ** Bugfixes: *** Cleanup the log messages wrt trailing whitespaces *** Correctly display a missing theme name in error message * Version 3.9: ============== ** the :change-logs-user-[name|mail] options now default to :user-[name|mail] ** support for Darcs through a built-in function patcher-darcs-diff-convert * Version 3.8: ============== ** New feature: mail adaptation and replies Patcher can now "adapt" an already existing mail (not started with Patcher) to a project. As a consequence of this facility, Patcher now hooks into Gnus and provides functions for making Patcher replies and followups from the Summary and the Article buffers. ** Bugfix: Don't use the GFDL anymore. * Version 3.7: ============== ** Cleanup improvements Patcher keeps track of the ChangeLog files it loads by itself, so that it can kill them afterwards. ** Bugfix: Bad syntax in the `message' mailing method call. * Version 3.6: ============== ** New project options: :user-name and :user-mail The affect the From: header in patcher mails, and default respectively to the value of user-full-name and user-mail-address. ** Bugfix: The source files could occasionally be wrong. * Version 3.5: ============== ** Patcher now has the concept of themes Themes are named collections of options. They let you factor out settings and share them across unrelated projects. ** New project option: :pre-command You can use it for stuff like prepending `runsocks' to all commands. ** Improvement of the support for PRCS in Patcher. This is also of interest for other systems. *** New project option: :command-directory Tells Patcher that commands must be executed there, and not in the project's directory. *** New project option :name Lets you define different projects which actually share the same name in the system sense (for commands). *** The diff and commit commands now understand the %n construct It's replaced with the value of :name if set, or with project's name in the Patcher sense. *** New construct %N It works along with %n, but is replaced with the project's name in the Patcher sense, regardless of the value of :name. ** Bugfixes: *** quote log messages from shell expansion when used as strings (not in files). *** add subject line in fake mails as they could be used to initialize the log messages. *** avoid spurious blanks in automatically formatted log messages. Also, don't put eol or eob newlines by default, since the log message could be used in a string. * Version 3.4: ============== ** Nothing really interesting for users in this version Got rid of the dependency on dired, fixed one typo in the doc and added an informative header in mails. * Version 3.3: ============== This version of Patcher has been designed in the aim of supporting projects managed by PRCS. The following features were needed: ** New project option: :after-diff-hook A hook run on every Patcher diff output. This hook is run before doing anything with the diff at all (like creating ChangeLog skeletons), contrary to the diff line filter which is used only for diff insertion in the mail buffer. ** New built-in function: patcher-prcs-diff-convert This function is meant to be used in the hook described above, and converts a PRCS diff output to a traditional one. ** New construct `%S' for the commit command This construct is replaced with the log message itself. This is an alternative to the `%s' construct which first writes the log message in a temporary file. This construct has been designed in the aim of using the --version-log command line option of PRCS. Local Variables: mode: outline End: