comparison contrib/mercurial.el @ 996:5ed566574486

Emacs: document existing functions.
author Bryan O'Sullivan <bos@serpentine.com>
date Sun, 21 Aug 2005 22:46:57 -0800
parents 1e4b009b379e
children bb391518bc28
comparison
equal deleted inserted replaced
995:1e4b009b379e 996:5ed566574486
512 (interactive) 512 (interactive)
513 (hg-view-output ("Mercurial Help Overview") 513 (hg-view-output ("Mercurial Help Overview")
514 (insert (documentation 'hg-help-overview)))) 514 (insert (documentation 'hg-help-overview))))
515 515
516 (defun hg-add (path) 516 (defun hg-add (path)
517 "Add PATH to the Mercurial repository on the next commit.
518 With a prefix argument, prompt for the path to add."
517 (interactive (list (hg-read-file-name " to add"))) 519 (interactive (list (hg-read-file-name " to add")))
518 (let ((buf (current-buffer)) 520 (let ((buf (current-buffer))
519 (update (equal buffer-file-name path))) 521 (update (equal buffer-file-name path)))
520 (hg-view-output (hg-output-buffer-name) 522 (hg-view-output (hg-output-buffer-name)
521 (apply 'call-process (hg-binary) nil t nil (list "add" path))) 523 (apply 'call-process (hg-binary) nil t nil (list "add" path)))
534 (defun hg-commit () 536 (defun hg-commit ()
535 (interactive) 537 (interactive)
536 (error "not implemented")) 538 (error "not implemented"))
537 539
538 (defun hg-diff (path &optional rev1 rev2) 540 (defun hg-diff (path &optional rev1 rev2)
541 "Show the differences between REV1 and REV2 of PATH.
542 When called interactively, the default behaviour is to treat REV1 as
543 the tip revision, REV2 as the current edited version of the file, and
544 PATH as the file edited in the current buffer.
545 With a prefix argument, prompt for all of these."
539 (interactive (list (hg-read-file-name " to diff") 546 (interactive (list (hg-read-file-name " to diff")
540 (hg-read-rev " to start with") 547 (hg-read-rev " to start with")
541 (let ((rev2 (hg-read-rev " to end with" 'working-dir))) 548 (let ((rev2 (hg-read-rev " to end with" 'working-dir)))
542 (and (not (eq rev2 'working-dir)) rev2)))) 549 (and (not (eq rev2 'working-dir)) rev2))))
543 (unless rev1 550 (unless rev1
555 (setq diff (not (= (point-min) (point-max)))) 562 (setq diff (not (= (point-min) (point-max))))
556 (font-lock-fontify-buffer)) 563 (font-lock-fontify-buffer))
557 diff)) 564 diff))
558 565
559 (defun hg-forget (path) 566 (defun hg-forget (path)
567 "Lose track of PATH, which has been added, but not yet committed.
568 This will prevent the file from being incorporated into the Mercurial
569 repository on the next commit.
570 With a prefix argument, prompt for the path to forget."
560 (interactive (list (hg-read-file-name " to forget"))) 571 (interactive (list (hg-read-file-name " to forget")))
561 (let ((buf (current-buffer)) 572 (let ((buf (current-buffer))
562 (update (equal buffer-file-name path))) 573 (update (equal buffer-file-name path)))
563 (hg-view-output (hg-output-buffer-name) 574 (hg-view-output (hg-output-buffer-name)
564 (apply 'call-process (hg-binary) nil t nil (list "forget" path))) 575 (apply 'call-process (hg-binary) nil t nil (list "forget" path)))
573 (defun hg-init () 584 (defun hg-init ()
574 (interactive) 585 (interactive)
575 (error "not implemented")) 586 (error "not implemented"))
576 587
577 (defun hg-log (path &optional rev1 rev2) 588 (defun hg-log (path &optional rev1 rev2)
589 "Display the revision history of PATH, between REV1 and REV2.
590 REV1 defaults to the initial revision, while REV2 defaults to the tip.
591 With a prefix argument, prompt for each parameter."
578 (interactive (list (hg-read-file-name " to log") 592 (interactive (list (hg-read-file-name " to log")
579 (hg-read-rev " to start with" "-1") 593 (hg-read-rev " to start with" "-1")
580 (hg-read-rev " to end with" (format "-%d" hg-log-limit)))) 594 (hg-read-rev " to end with" (format "-%d" hg-log-limit))))
581 (let ((a-path (hg-abbrev-file-name path))) 595 (let ((a-path (hg-abbrev-file-name path)))
582 (hg-view-output ((if (equal rev1 rev2) 596 (hg-view-output ((if (equal rev1 rev2)
607 (hg-restore-context ctx) 621 (hg-restore-context ctx)
608 (hg-mode-line) 622 (hg-mode-line)
609 (message "Reverting %s...done" buffer-file-name))) 623 (message "Reverting %s...done" buffer-file-name)))
610 624
611 (defun hg-revert-buffer () 625 (defun hg-revert-buffer ()
626 "Revert current buffer's file back to the latest committed version.
627 If the file has not changed, nothing happens. Otherwise, this
628 displays a diff and asks for confirmation before reverting."
612 (interactive) 629 (interactive)
613 (let ((vc-suppress-confirm nil) 630 (let ((vc-suppress-confirm nil)
614 (obuf (current-buffer)) 631 (obuf (current-buffer))
615 diff) 632 diff)
616 (vc-buffer-sync) 633 (vc-buffer-sync)
626 (set-buffer obuf) 643 (set-buffer obuf)
627 (when diff 644 (when diff
628 (hg-revert-buffer-internal)))) 645 (hg-revert-buffer-internal))))
629 646
630 (defun hg-root (&optional path) 647 (defun hg-root (&optional path)
648 "Return the root of the repository that contains the given path.
649 If the path is outside a repository, return nil.
650 When called interactively, the root is printed. A prefix argument
651 prompts for a path to check."
631 (interactive (list (hg-read-file-name))) 652 (interactive (list (hg-read-file-name)))
632 (let ((root (do ((prev nil dir) 653 (let ((root (do ((prev nil dir)
633 (dir (file-name-directory (or path (buffer-file-name))) 654 (dir (file-name-directory (or path (buffer-file-name)))
634 (file-name-directory (directory-file-name dir)))) 655 (file-name-directory (directory-file-name dir))))
635 ((equal prev dir)) 656 ((equal prev dir))
641 (message "The path `%s' is not in a Mercurial repository." 662 (message "The path `%s' is not in a Mercurial repository."
642 (abbreviate-file-name path t)))) 663 (abbreviate-file-name path t))))
643 root)) 664 root))
644 665
645 (defun hg-status (path) 666 (defun hg-status (path)
667 "Print revision control status of a file or directory.
668 With prefix argument, prompt for the path to give status for.
669 Names are displayed relative to the repository root."
646 (interactive (list (hg-read-file-name " for status" (hg-root)))) 670 (interactive (list (hg-read-file-name " for status" (hg-root))))
647 (let ((root (hg-root))) 671 (let ((root (hg-root)))
648 (hg-view-output (hg-output-buffer-name) 672 (hg-view-output ((format "Mercurial: Status of %s in %s"
673 (let ((name (substring (expand-file-name path)
674 (length root))))
675 (if (> (length name) 0)
676 name
677 "*"))
678 (hg-abbrev-file-name root)))
649 (apply 'call-process (hg-binary) nil t nil 679 (apply 'call-process (hg-binary) nil t nil
650 (list "--cwd" root "status" path))))) 680 (list "--cwd" root "status" path)))))
651 681
652 (defun hg-undo () 682 (defun hg-undo ()
653 (interactive) 683 (interactive)