Mercurial > emacs
changeset 43586:62c8a228bc1f
(vc-update): New function.
author | André Spiegel <spiegel@gnu.org> |
---|---|
date | Thu, 28 Feb 2002 13:01:48 +0000 |
parents | 43930eddece3 |
children | 2e33fd043708 |
files | lisp/vc.el |
diffstat | 1 files changed, 29 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/vc.el Thu Feb 28 10:00:44 2002 +0000 +++ b/lisp/vc.el Thu Feb 28 13:01:48 2002 +0000 @@ -6,7 +6,7 @@ ;; Maintainer: Andre Spiegel <spiegel@gnu.org> ;; Keywords: tools -;; $Id: vc.el,v 1.327 2002/02/25 22:00:51 spiegel Exp $ +;; $Id: vc.el,v 1.328 2002/02/28 09:59:08 spiegel Exp $ ;; This file is part of GNU Emacs. @@ -2571,6 +2571,34 @@ (vc-revert-file file) (message "Reverting %s...done" file))) +;;;###autoload +(defun vc-update () + "Update the current buffer's file to the latest version on its branch. +If the file contains no changes, and is not locked, then this simply replaces +the working file with the latest version on its branch. If the file contains +changes, and the backend supports merging news, then any recent changes from +the current branch are merged into the working file." + (interactive) + (vc-ensure-vc-buffer) + (vc-buffer-sync nil) + (let ((file buffer-file-name)) + (if (vc-up-to-date-p file) + (vc-checkout file nil "") + (if (eq (vc-checkout-model file) 'locking) + (if (eq (vc-state file) 'edited) + (error + (substitute-command-keys + "File is locked--type \\[vc-revert-buffer] to discard changes")) + (error + (substitute-command-keys + "Unexpected file state (%s)--type \\[vc-next-action] to correct") + (vc-state file))) + (if (not (vc-find-backend-function (vc-backend file) 'merge-news)) + (error "Sorry, merging news is not implemented for %s" + (vc-backend file)) + (vc-call merge-news file) + (vc-resynch-window file t t)))))) + (defun vc-version-backup-file (file &optional rev) "Return name of backup file for revision REV of FILE. If version backups should be used for FILE, and there exists