From ab3b474a32852d676a9d3fdb1932e10224ed7fd3 Mon Sep 17 00:00:00 2001 From: jorton Date: Feb 13 2010 16:41:12 +0000 Subject: - update to 1.6.9 --- diff --git a/psvn.el b/psvn.el index 643afa3..6af3a2b 100644 --- a/psvn.el +++ b/psvn.el @@ -1,8 +1,8 @@ ;;; psvn.el --- Subversion interface for emacs -;; Copyright (C) 2002-2008 by Stefan Reichoer +;; Copyright (C) 2002-2009 by Stefan Reichoer ;; Author: Stefan Reichoer -;; $Id: psvn.el 33557 2008-10-08 20:01:12Z xsteve $ +;; $Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $ ;; psvn.el is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ ;;; Commentary ;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux, -;; freebsd5, red hat el4, ubuntu edgy with svn 1.4.0 +;; freebsd5, red hat el4, ubuntu intrepid with svn 1.5.1 ;; psvn.el needs at least svn 1.1.0 ;; if you upgrade to a higher version, you need to do a fresh checkout @@ -73,6 +73,7 @@ ;; e - svn-status-toggle-edit-cmd-flag ;; ? - svn-status-toggle-hide-unknown ;; _ - svn-status-toggle-hide-unmodified +;; z - svn-status-toggle-hide-externals ;; m - svn-status-set-user-mark ;; u - svn-status-unset-user-mark ;; $ - svn-status-toggle-elide @@ -103,6 +104,7 @@ ;; P i - svn-status-property-ignore-file ;; P I - svn-status-property-ignore-file-extension ;; P C-i - svn-status-property-edit-svn-ignore +;; P X e - svn-status-property-edit-svn-externals ;; P k - svn-status-property-set-keyword-list ;; P K i - svn-status-property-set-keyword-id ;; P K d - svn-status-property-set-keyword-date @@ -245,6 +247,7 @@ (eval-when-compile (require 'dired)) (eval-when-compile (require 'ediff-util)) (eval-when-compile (require 'ediff-wind)) +(eval-when-compile (require 'vc-hooks)) (eval-when-compile (require 'elp)) (eval-when-compile (require 'pp)) @@ -253,7 +256,7 @@ (require 'diff-mode)) (error nil)) -(defconst svn-psvn-revision "$Id: psvn.el 33557 2008-10-08 20:01:12Z xsteve $" +(defconst svn-psvn-revision "$Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $" "The revision number of psvn.") ;;; user setable variables @@ -302,6 +305,11 @@ This can be toggled with \\[svn-status-toggle-hide-unknown]." This can be toggled with \\[svn-status-toggle-hide-unmodified]." :type 'boolean :group 'psvn) +(defcustom svn-status-hide-externals nil + "*Hide external files in `svn-status-buffer-name' buffer. +This can be toggled with \\[svn-status-toggle-hide-externals]." + :type 'boolean + :group 'psvn) (defcustom svn-status-sort-status-buffer t "*Whether to sort the `svn-status-buffer-name' buffer. @@ -414,6 +422,12 @@ Any non-nil value overrides that variable, with the same syntax." ;; (put 'svn-browse-url-function 'risky-local-variable t) ;; already implied by "-function" suffix +(defcustom svn-log-edit-header + "## Lines starting with '## ' will be removed from the log message.\n" + "*Header content of the *svn-log* buffer" + :type 'string + :group 'psvn) + (defcustom svn-status-window-alist '((diff "*svn-diff*") (log "*svn-log*") (info t) (blame t) (proplist t) (update t)) "An alist to specify which windows should be used for svn command outputs. @@ -562,7 +576,7 @@ These link handlers must be registered via `svn-log-register-link-handler'") ;; (put 'svn-log-edit-done-hook 'risky-local-variable t) ;; already implied by "-hook" suffix -(defvar svn-post-process-svn-output-hook nil "Hook that can be used to preprocess the output from svn. +(defvar svn-post-process-svn-output-hook 'svn-fixup-tramp-output-maybe "Hook that can be used to preprocess the output from svn. The function `svn-status-remove-control-M' can be useful for that hook") (when (eq system-type 'windows-nt) @@ -936,7 +950,7 @@ If POS is nil, use current buffer location." (defun svn-substring-no-properties (string &optional from to) (if (fboundp 'substring-no-properties) (substring-no-properties string from to) - (substring string from to))) + (substring string (or from 0) to))) ; xemacs ;; Evaluate the defsubst at compile time, so that the byte compiler @@ -948,6 +962,14 @@ If POS is nil, use current buffer location." (defsubst svn-match-string-no-properties (match) (buffer-substring-no-properties (match-beginning match) (match-end match))))) +; XEmacs doesn't have a function `help-buffer' +(eval-and-compile + (if (fboundp 'help-buffer) + (defalias 'svn-help-buffer 'help-buffer) ; FSF Emacs + (defun svn-help-buffer () + (buffer-name (get-buffer-create (help-buffer-name "SVN")))))) ; XEmacs + + ;; XEmacs 21.4.17 does not have an `alist' widget. Define a replacement. ;; To find out whether the `alist' widget exists, we cannot check just ;; (get 'alist 'widget-type), because GNU Emacs 21.4 defines it in @@ -1010,7 +1032,8 @@ To bind this to a different key, customize `svn-status-prefix-key'.") (define-key svn-global-keymap (kbd "f r") 'svn-file-revert) (define-key svn-global-keymap (kbd "c") 'svn-status-commit) (define-key svn-global-keymap (kbd "S") 'svn-status-switch-to-status-buffer) - (define-key svn-global-keymap (kbd "o") 'svn-status-pop-to-status-buffer)) + (define-key svn-global-keymap (kbd "o") 'svn-status-pop-to-status-buffer) + (define-key svn-global-keymap (kbd "C-k") 'svn-process-kill)) (defvar svn-status-diff-mode-map () "Keymap used in `svn-status-diff-mode' for additional commands that are not defined in diff-mode.") @@ -1161,13 +1184,14 @@ If there is no .svn directory, examine if there is CVS and run (if arg "-u" ""))))) (save-excursion (set-buffer status-buf) + (buffer-disable-undo) (setq default-directory dir) (set-buffer proc-buf) (setq default-directory dir svn-status-remote (when arg t)) (set-buffer cur-buf) (if want-edit - (let (svn-status-edit-svn-command t) + (let ((svn-status-edit-svn-command t)) (svn-run t t 'status "status" svn-status-default-status-arguments status-option)) (svn-run t t 'status "status" svn-status-default-status-arguments status-option))))) @@ -1196,6 +1220,19 @@ If there is no .svn directory, examine if there is CVS and run (defun svn-had-user-input-since-asynch-run () (not (equal (recent-keys) svn-pre-run-asynch-recent-keys))) +(defun svn-expand-filename-for-remote-access (file-name) + "Convert the given local part of a filename to a full file name to allow accessing remote files" + ;; when running svn on a remote host: expand local file names to get full names to access the file on the remote host via emacs + (if (and (fboundp 'file-remote-p) (file-remote-p default-directory)) + (concat (file-remote-p default-directory) file-name) + file-name)) + +(defun svn-local-filename-for-remote-access (file-name) + "Convert a full file name to a local file name that can be used for a local svn invocation." + (if (and (fboundp 'file-remote-p) (file-remote-p file-name)) + (tramp-file-name-localname (tramp-dissect-file-name file-name)) + file-name)) + (defun svn-process-environment () "Construct the environment for the svn process. It is a combination of `svn-status-svn-environment-var-list' and @@ -1272,7 +1309,7 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST." (setq svn-status-last-commit-author nil) (setq svn-status-mode-line-process-status (format " running %s" cmdtype)) (svn-status-update-mode-line) - (sit-for 0.1) + (save-excursion (sit-for 0.1)) (ring-insert svn-last-cmd-ring (list (current-time-string) arglist default-directory)) (if run-asynchron (progn @@ -1320,8 +1357,8 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST." (replace-match "/"))))) (defun svn-process-sentinel (process event) + "Called after a svn process has finished." ;;(princ (format "Process: %s had the event `%s'" process event))) - ;;(save-excursion (let ((act-buf (current-buffer))) (when svn-pre-run-mode-line-process (with-current-buffer svn-status-pre-run-svn-buffer @@ -1452,17 +1489,30 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST." (while (accept-process-output process 0 100)) ;; find last error message and show it. (goto-char (point-max)) - (if (re-search-backward "^svn: \\(.*\\)" nil t) - (svn-process-handle-error (match-string 1)) + (if (re-search-backward "^svn: " nil t) + (let ((error-strings) + (beginning-of-buffer)) + (while (and (looking-at "^svn: ") (not beginning-of-buffer)) + (setq error-strings (append error-strings (list (buffer-substring-no-properties (+ 5 (svn-point-at-bol)) (svn-point-at-eol))))) + (setq beginning-of-buffer (bobp)) + (forward-line -1)) + (svn-process-handle-error (mapconcat 'identity (reverse error-strings) "\n"))) (message "svn failed: %s" event))) (t (message "svn process had unknown event: %s" event)) (svn-status-show-process-output nil t)))) (defvar svn-process-handle-error-msg nil) +(defvar svn-handle-error-function nil + "A function that will be called with an error string received from the svn client. +When this function resets `svn-process-handle-error-msg' to nil, the default error handling +(just show the error message) is not executed.") (defun svn-process-handle-error (error-msg) (let ((svn-process-handle-error-msg error-msg)) - (electric-helpify 'svn-process-help-with-error-msg))) + (when (functionp svn-handle-error-function) + (funcall svn-handle-error-function error-msg)) + (when svn-process-handle-error-msg + (electric-helpify 'svn-process-help-with-error-msg)))) (defun svn-process-help-with-error-msg () (interactive) @@ -1471,9 +1521,9 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST." "Please unmark all files and position point at the directory you would like to remove.\nThen run commit again.")))))) (if help-msg (save-excursion - (with-output-to-temp-buffer (help-buffer) + (with-output-to-temp-buffer (svn-help-buffer) (princ (format "svn failed: %s\n\n%s" svn-process-handle-error-msg help-msg)))) - (message "svn failed: %s" svn-process-handle-error-msg)))) + (message "svn failed:\n%s" svn-process-handle-error-msg)))) (defun svn-process-filter (process str) @@ -1485,17 +1535,17 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST." (insert str) (save-excursion (goto-char (svn-point-at-bol)) - (when (looking-at "Password for '\\(.+\\)': ") + (when (looking-at "Password for '\\(.*\\)': ") ;(svn-status-show-process-buffer) (let ((passwd (read-passwd (format "Enter svn password for %s: " (match-string 1))))) (svn-process-send-string-and-newline passwd t))) (when (looking-at "Username: ") - (let ((user-name (read-string "Username for svn operation: "))) + (let ((user-name (with-local-quit (read-string "Username for svn operation: ")))) (svn-process-send-string-and-newline user-name))) (when (looking-at "(R)eject, accept (t)emporarily or accept (p)ermanently") (svn-status-show-process-buffer) - (let ((answer (read-string "(R)eject, accept (t)emporarily or accept (p)ermanently? "))) + (let ((answer (with-local-quit (read-string "(R)eject, accept (t)emporarily or accept (p)ermanently? ")))) (svn-process-send-string (substring answer 0 1))))))) (defun svn-revert-some-buffers (&optional tree) @@ -1696,10 +1746,10 @@ The results are used to build the `svn-status-info' variable." svn-property-mark (elt svn-marks 1) ; 2nd column - M,C (properties) svn-wc-locked-mark (elt svn-marks 2) ; 3rd column - L or blank svn-with-history-mark (elt svn-marks 3) ; 4th column - + or blank - svn-switched-mark (elt svn-marks 4) ; 5th column - S or blank + svn-switched-mark (elt svn-marks 4) ; 5th column - S,X or blank svn-repo-locked-mark (elt svn-marks 5)) ; 6th column - K,O,T,B or blank (when svn-status-remote - (setq svn-update-mark (elt svn-marks 7))) ; 8th column - * or blank + (setq svn-update-mark (elt svn-marks 7))) ; 8th column - * or blank (when (eq svn-property-mark ?\ ) (setq svn-property-mark nil)) (when (eq svn-wc-locked-mark ?\ ) (setq svn-wc-locked-mark nil)) (when (eq svn-with-history-mark ?\ ) (setq svn-with-history-mark nil)) @@ -1783,7 +1833,7 @@ The results are used to build the `svn-status-info' variable." (setq svn-status-info (sort svn-status-info 'svn-status-sort-predicate)))))) ;;(string-lessp "." "%") => nil -;(svn-status-sort-predicate '(t t t ".") '(t t t "%")) => t +;;(svn-status-sort-predicate '(t t t ".") '(t t t "%")) => t (defun svn-status-sort-predicate (a b) "Return t if A should appear before B in the `svn-status-buffer-name' buffer. A and B must be line-info's." @@ -1809,6 +1859,21 @@ A and B must be line-info's." (while (re-search-forward "\r$" (point-max) t) (replace-match "" nil nil)))))) +(defun svn-fixup-tramp-exit () + "Helper function to handle tramp connections stopping with an exit output." + (goto-char (point-max)) + (when (eq (svn-point-at-bol) (svn-point-at-eol)) + (forward-line -1)) + (beginning-of-line) + (when (looking-at "exit") + (delete-region (point) (svn-point-at-eol)))) + +(defun svn-fixup-tramp-output-maybe () + "Fixup leftover output when running via tramp" + (when (fboundp 'file-remote-p) + (when (file-remote-p default-directory) + (svn-fixup-tramp-exit)))) + (condition-case nil ;;(easy-menu-add-item nil '("tools") ["SVN Status" svn-status t] "PCL-CVS") (easy-menu-add-item nil '("tools") ["SVN Status" svn-status t]) @@ -1877,10 +1942,10 @@ A and B must be line-info's." ;; XEmacs allows simultaneous connections to multiple devices with ;; different keyboards. (define-key svn-status-mode-map - (if (member (kbd "DEL") '([(delete)] [delete])) - [(backspace)] ; XEmacs - (kbd "DEL")) ; GNU Emacs - 'svn-status-unset-user-mark-backwards) + (if (member (kbd "DEL") '([(delete)] [delete])) + [(backspace)] ; XEmacs + (kbd "DEL")) ; GNU Emacs + 'svn-status-unset-user-mark-backwards) (define-key svn-status-mode-map (kbd "$") 'svn-status-toggle-elide) (define-key svn-status-mode-map (kbd "w") 'svn-status-copy-current-line-info) (define-key svn-status-mode-map (kbd ".") 'svn-status-goto-root-or-return) @@ -1888,6 +1953,7 @@ A and B must be line-info's." (define-key svn-status-mode-map (kbd "V") 'svn-status-svnversion) (define-key svn-status-mode-map (kbd "?") 'svn-status-toggle-hide-unknown) (define-key svn-status-mode-map (kbd "_") 'svn-status-toggle-hide-unmodified) + (define-key svn-status-mode-map (kbd "z") 'svn-status-toggle-hide-externals) (define-key svn-status-mode-map (kbd "a") 'svn-status-add-file) (define-key svn-status-mode-map (kbd "A") 'svn-status-add-file-recursively) (define-key svn-status-mode-map (kbd "+") 'svn-status-make-directory) @@ -1954,6 +2020,7 @@ A and B must be line-info's." ;; reducing clutter in `where-is'. (define-key svn-status-mode-property-map [(control ?i)] 'svn-status-property-edit-svn-ignore) (define-key svn-status-mode-property-map (kbd "TAB") 'svn-status-property-edit-svn-ignore) + (define-key svn-status-mode-property-map (kbd "Xe") 'svn-status-property-edit-svn-externals) (define-key svn-status-mode-property-map (kbd "k") 'svn-status-property-set-keyword-list) (define-key svn-status-mode-property-map (kbd "Ki") 'svn-status-property-set-keyword-id) (define-key svn-status-mode-property-map (kbd "Kd") 'svn-status-property-set-keyword-date) @@ -2045,6 +2112,8 @@ A and B must be line-info's." ["svn:ignore File Extension..." svn-status-property-ignore-file-extension t] ["Edit svn:ignore Property" svn-status-property-edit-svn-ignore t] "---" + ["Edit svn:externals Property" svn-status-property-edit-svn-externals t] + "---" ["Edit svn:keywords List" svn-status-property-set-keyword-list t] ["Add/Remove Id to/from svn:keywords" svn-status-property-set-keyword-id t] ["Add/Remove Date to/from svn:keywords" svn-status-property-set-keyword-date t] @@ -2100,6 +2169,8 @@ A and B must be line-info's." :style toggle :selected svn-status-hide-unknown] ["Hide Unmodified" svn-status-toggle-hide-unmodified :style toggle :selected svn-status-hide-unmodified] + ["Hide Externals" svn-status-toggle-hide-externals + :style toggle :selected svn-status-hide-externals] ["Show Client versions" svn-status-version t] ["Prepare bug report" svn-prepare-bug-report t] )) @@ -2145,7 +2216,7 @@ PREFIX is passed to `popup-menu'." (progn (setq o (make-overlay begin end)) (overlay-put o 'face face) - (sit-for 0) + (save-excursion (sit-for 0)) (popup-menu menu prefix)) (delete-overlay o)))) @@ -2332,7 +2403,7 @@ history, when it will be \"+\"." (defun svn-status-line-info->switched (line-info) "Return whether LINE-INFO is switched relative to its parent. This is column five of the output from `svn status'. -The result will be nil or \"S\"." +The result will be \"S\", \"X\" or nil." (nth 10 line-info)) (defun svn-status-line-info->repo-locked (line-info) "Return whether LINE-INFO contains some locking information. @@ -2349,6 +2420,7 @@ This list holds currently only one element: "Return whether the line is visible or not" (or (not (or (svn-status-line-info->hide-because-unknown line-info) (svn-status-line-info->hide-because-unmodified line-info) + (svn-status-line-info->hide-because-externals line-info) (svn-status-line-info->hide-because-custom-hide-function line-info) (svn-status-line-info->hide-because-user-elide line-info))) (svn-status-line-info->update-available line-info) ;; show the line, if an update is available @@ -2359,6 +2431,10 @@ This list holds currently only one element: (and svn-status-hide-unknown (eq (svn-status-line-info->filemark line-info) ??))) +(defun svn-status-line-info->hide-because-externals (line-info) + (and svn-status-hide-externals + (eq (svn-status-line-info->filemark line-info) ?X))) + (defun svn-status-line-info->hide-because-custom-hide-function (line-info) (and svn-status-custom-hide-function (apply svn-status-custom-hide-function (list line-info)))) @@ -2491,26 +2567,27 @@ When called with a prefix argument, toggle the hiding of all subdirectories for (len-test) (elided-list) (elide-mark)) - (while st-info - (setq fname (svn-status-line-info->filename (car st-info))) - (setq len-fname (length fname)) - (setq elided-list svn-status-elided-list) - (setq elide-mark nil) - (while elided-list - (setq test (car elided-list)) - (when (string= test ".") - (setq test "")) - (setq len-test (length test)) - (when (and (>= len-fname len-test) - (string= (substring fname 0 len-test) test)) - (setq elide-mark t) - (when (or (string= fname ".") - (and (= len-fname len-test) (svn-status-line-info->directory-p (car st-info)))) - (setq elide-mark 'directory))) - (setq elided-list (cdr elided-list))) - ;;(message "fname: %s elide-mark: %S" fname elide-mark) - (setcar (nthcdr 1 (svn-status-line-info->ui-status (car st-info))) elide-mark) - (setq st-info (cdr st-info)))) + (when svn-status-elided-list + (while st-info + (setq fname (svn-status-line-info->filename (car st-info))) + (setq len-fname (length fname)) + (setq elided-list svn-status-elided-list) + (setq elide-mark nil) + (while elided-list + (setq test (car elided-list)) + (when (string= test ".") + (setq test "")) + (setq len-test (length test)) + (when (and (>= len-fname len-test) + (string= (substring fname 0 len-test) test)) + (setq elide-mark t) + (when (or (string= fname ".") + (and (= len-fname len-test) (svn-status-line-info->directory-p (car st-info)))) + (setq elide-mark 'directory))) + (setq elided-list (cdr elided-list))) + ;;(message "fname: %s elide-mark: %S" fname elide-mark) + (setcar (nthcdr 1 (svn-status-line-info->ui-status (car st-info))) elide-mark) + (setq st-info (cdr st-info))))) (svn-status-update-buffer)) (defun svn-status-update-with-command-list (cmd-list) @@ -2794,7 +2871,8 @@ Symbolic links to directories count as directories (see `file-directory-p')." (filename ;; file or /path/to/file (concat (if (or svn-status-display-full-path - svn-status-hide-unmodified) + svn-status-hide-unmodified + svn-status-hide-externals) (svn-add-face (let ((dir-name (file-name-as-directory (svn-status-line-info->directory-containing-line-info @@ -2859,7 +2937,7 @@ Symbolic links to directories count as directories (see `file-directory-p')." ((eq flag ?B) " [ REPO-LOCK-BROKEN ]") (t " [ REPO-LOCK-UNKNOWN ]"))) 'svn-status-locked-face) - (svn-status-maybe-add-string (svn-status-line-info->switched line-info) + (svn-status-maybe-add-string (eq (svn-status-line-info->switched line-info) ?S) " (switched)" 'svn-status-switched-face) elide-hint) 'svn-status-marked-face) @@ -2891,6 +2969,7 @@ Additionally clear the psvn-extra-info field in all line-info lists." (overlay) (unmodified-count 0) ;how many unmodified files are hidden (unknown-count 0) ;how many unknown files are hidden + (externals-count 0) ;how many svn:externals files are hidden (custom-hide-count 0) ;how many files are hidden via svn-status-custom-hide-function (marked-count 0) ;how many files are elided (user-elide-count 0) @@ -2920,12 +2999,15 @@ Additionally clear the psvn-extra-info field in all line-info lists." (setq unknown-count (1+ unknown-count))) ((svn-status-line-info->hide-because-unmodified (car st-info)) (setq unmodified-count (1+ unmodified-count))) + ((svn-status-line-info->hide-because-externals (car st-info)) + (setq externals-count (1+ externals-count))) (t (svn-insert-line-in-status-buffer (car st-info)))) (when (svn-status-line-info->has-usermark (car st-info)) (setq marked-count (+ marked-count 1))) (setq overlay (make-overlay start-pos (point))) (overlay-put overlay 'svn-info (car st-info)) + (overlay-put overlay 'evaporate t) (setq st-info (cdr st-info))) ;; Insert status information at the buffer beginning (goto-char (point-min)) @@ -2949,6 +3031,10 @@ Additionally clear the psvn-extra-info field in all line-info lists." (insert (format "%d Unmodified file(s) are hidden - press `_' to toggle hiding\n" unmodified-count))) + (when svn-status-hide-externals + (insert + (format "%d Externals file(s) are hidden - press `z' to toggle hiding\n" + externals-count))) (when (> custom-hide-count 0) (insert (format "%d file(s) are hidden via the svn-status-custom-hide-function\n" @@ -3188,7 +3274,7 @@ When called from a file buffer provide a structure that contains the filename." (cond ((eq major-mode 'svn-status-mode) (svn-status-get-line-information)) (t - ;; a fake strukture that contains the buffername for the current buffer + ;; a fake structure that contains the buffername for the current buffer (svn-status-make-line-info (buffer-file-name (current-buffer)))))) (defun svn-status-select-line () @@ -3197,12 +3283,12 @@ When called from a file buffer provide a structure that contains the filename." (interactive) (let ((info (svn-status-get-line-information))) (if info - (message "%S hide-because-unknown: %S hide-because-unmodified: %S" info + (message "%S hide-because-unknown: %S hide-because-unmodified: %S hide-because-externals: %S" info (svn-status-line-info->hide-because-unknown info) - (svn-status-line-info->hide-because-unmodified info)) + (svn-status-line-info->hide-because-unmodified info) + (svn-status-line-info->hide-because-externals info)) (message "No file on this line")))) - -(defun svn-status-ensure-cursor-on-file () + (defun svn-status-ensure-cursor-on-file () "Raise an error unless point is on a valid file." (unless (svn-status-get-line-information) (error "No file on the current line"))) @@ -3390,13 +3476,15 @@ This means we mark * all modified files * all files scheduled for addition * all files scheduled for deletion +* all files with modified properties The last two categories include all copied and moved files. If called with a prefix ARG, unmark all such files." (interactive "P") (svn-status-mark-added arg) (svn-status-mark-modified arg) - (svn-status-mark-deleted arg)) + (svn-status-mark-deleted arg) + (svn-status-mark-modified-properties arg)) (defun svn-status-unset-all-usermarks () (interactive) @@ -3455,6 +3543,11 @@ If the function is called with a prefix arg, unmark all these files." (setq svn-status-hide-unmodified (not svn-status-hide-unmodified)) (svn-status-update-buffer)) +(defun svn-status-toggle-hide-externals () + (interactive) + (setq svn-status-hide-externals (not svn-status-hide-externals)) + (svn-status-update-buffer)) + (defun svn-status-get-file-name-buffer-position (name) "Find the buffer position for a file. If the file is not found, return nil." @@ -3551,6 +3644,10 @@ if no files have been marked." (defun svn-status-create-arg-file (file-name prefix file-info-list postfix) + "Create an svn client argument file" + ;; create the arg file on the remote host when we will run svn on this host! + (setq file-name (svn-expand-filename-for-remote-access file-name)) + ;; (message "svn-status-create-arg-file %s: %s" default-directory file-name) (with-temp-file file-name (insert prefix) (let ((st-info file-info-list)) @@ -4099,22 +4196,29 @@ When called with a prefix argument, ask the user for the revision to update to. When called with a negative prefix argument, only update the selected files." (interactive "P") (let* ((selective-update (or (and (numberp arg) (< arg 0)) (eq arg '-))) + (update-extra-arg) (rev (when arg (svn-status-read-revision-string (if selective-update (format "Selected entries: Run svn update -r ") (format "Directory: %s: Run svn update -r " default-directory)) (if selective-update "HEAD" nil))))) + (unless svn-client-version + (svn-status-version)) + (if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 5)) + (setq update-extra-arg (list "--non-interactive")) ;; svn version < 1.5 + (setq update-extra-arg (list "--accept" "postpone"))) ;; svn version >= 1.5 (if selective-update (progn (message "Running svn-update for %s" (svn-status-marked-file-names)) (svn-run t t 'update "update" (when rev (list "-r" rev)) - (list "--non-interactive") + update-extra-arg (svn-status-marked-file-names))) (message "Running svn-update for %s" default-directory) (svn-run t t 'update "update" (when rev (list "-r" rev)) - (list "--non-interactive") (expand-file-name default-directory))))) + update-extra-arg + (svn-local-filename-for-remote-access (expand-file-name default-directory)))))) (defun svn-status-commit () "Commit selected files. @@ -4332,7 +4436,11 @@ static char * data[] = { (defsubst svn-status-in-vc-mode? () "Is vc-svn active?" - (and vc-mode (string-match "^ SVN" (svn-substring-no-properties vc-mode)))) + (cond + ((fboundp 'vc-backend) + (eq 'SVN (vc-backend buffer-file-name))) + ((and (boundp 'vc-mode) vc-mode) + (string-match "^ SVN" (svn-substring-no-properties vc-mode))))) (when svn-status-fancy-file-state-in-modeline (defadvice vc-find-file-hook (after svn-status-vc-svn-find-file-hook activate) @@ -4831,6 +4939,17 @@ When called with a prefix argument, it is possible to enter a new property." (message "Edit svn:ignore on %s" dir))) +(defun svn-status-property-edit-svn-externals () + (interactive) + (let* ((line-info (svn-status-get-line-information)) + (dir (if (svn-status-line-info->directory-p line-info) + (svn-status-line-info->filename line-info) + (svn-status-get-directory line-info)))) + (svn-status-property-edit + (list (svn-status-find-info-for-file-name dir)) "svn:externals") + (message "Edit svn:externals on %s" dir))) + + (defun svn-status-property-set-keyword-list () "Edit the svn:keywords property on the marked files." (interactive) @@ -4943,22 +5062,22 @@ Commands: (set-buffer (get-buffer "*svn-property-edit*")) (when (fboundp 'set-buffer-file-coding-system) (set-buffer-file-coding-system svn-status-svn-file-coding-system nil)) - (setq svn-status-temp-file-to-remove - (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix)) - (write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1)) - (when svn-status-propedit-file-list ; there are files to change properties - (svn-status-create-arg-file svn-status-temp-arg-file "" - svn-status-propedit-file-list "") - (setq svn-status-propedit-file-list nil) - (svn-run async t 'propset "propset" - svn-status-propedit-property-name - "--targets" svn-status-temp-arg-file - (when (eq svn-status-svn-file-coding-system 'utf-8) - '("--encoding" "UTF-8")) - "-F" (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix)) - (unless async (svn-status-remove-temp-file-maybe))) - (when svn-status-pre-propedit-window-configuration - (set-window-configuration svn-status-pre-propedit-window-configuration))) + (let ((svn-propedit-file-name (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix))) + (setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-propedit-file-name)) + (write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1) + (when svn-status-propedit-file-list ; there are files to change properties + (svn-status-create-arg-file svn-status-temp-arg-file "" + svn-status-propedit-file-list "") + (setq svn-status-propedit-file-list nil) + (svn-run async t 'propset "propset" + svn-status-propedit-property-name + "--targets" svn-status-temp-arg-file + (when (eq svn-status-svn-file-coding-system 'utf-8) + '("--encoding" "UTF-8")) + "-F" svn-propedit-file-name) + (unless async (svn-status-remove-temp-file-maybe))) + (when svn-status-pre-propedit-window-configuration + (set-window-configuration svn-status-pre-propedit-window-configuration))))) (defun svn-prop-edit-svn-diff (arg) (interactive "P") @@ -5050,41 +5169,41 @@ Commands: "Finish editing the log message and run svn commit." (interactive) (svn-status-save-some-buffers) - (save-excursion - (set-buffer (get-buffer svn-log-edit-buffer-name)) - (when svn-log-edit-insert-files-to-commit - (svn-log-edit-remove-comment-lines)) - (when (fboundp 'set-buffer-file-coding-system) - (set-buffer-file-coding-system svn-status-svn-file-coding-system nil)) - (when (or svn-log-edit-update-log-entry svn-status-files-to-commit) - (setq svn-status-temp-file-to-remove - (concat svn-status-temp-dir "svn-log-edit.txt" svn-temp-suffix)) - (write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1)) - (bury-buffer)) - (if svn-log-edit-update-log-entry - (when (y-or-n-p "Update the log entry? ") - ;; svn propset svn:log --revprop -r11672 -F file - (svn-run nil t 'propset "propset" "svn:log" "--revprop" - (concat "-r" svn-log-edit-update-log-entry) - "-F" svn-status-temp-file-to-remove) - (save-excursion - (set-buffer svn-process-buffer-name) - (message "%s" (buffer-substring (point-min) (- (point-max) 1))))) - (when svn-status-files-to-commit ; there are files to commit - (setq svn-status-operated-on-dot - (and (= 1 (length svn-status-files-to-commit)) - (string= "." (svn-status-line-info->filename (car svn-status-files-to-commit))))) - (svn-status-create-arg-file svn-status-temp-arg-file "" - svn-status-files-to-commit "") - (svn-run t t 'commit "commit" - (unless svn-status-recursive-commit "--non-recursive") - "--targets" svn-status-temp-arg-file - "-F" svn-status-temp-file-to-remove - (when (eq svn-status-svn-file-coding-system 'utf-8) - '("--encoding" "UTF-8")) - svn-status-default-commit-arguments)) - (set-window-configuration svn-status-pre-commit-window-configuration) - (message "svn-log editing done"))) + (let ((svn-logedit-file-name)) + (save-excursion + (set-buffer (get-buffer svn-log-edit-buffer-name)) + (when svn-log-edit-insert-files-to-commit + (svn-log-edit-remove-comment-lines)) + (when (fboundp 'set-buffer-file-coding-system) + (set-buffer-file-coding-system svn-status-svn-file-coding-system nil)) + (when (or svn-log-edit-update-log-entry svn-status-files-to-commit) + (setq svn-log-edit-file-name (concat svn-status-temp-dir "svn-log-edit.txt" svn-temp-suffix)) + (setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-log-edit-file-name)) + (write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1)) + (bury-buffer)) + (if svn-log-edit-update-log-entry + (when (y-or-n-p "Update the log entry? ") + ;; svn propset svn:log --revprop -r11672 -F file + (svn-run nil t 'propset "propset" "svn:log" "--revprop" + (concat "-r" svn-log-edit-update-log-entry) + "-F" svn-log-edit-file-name) + (save-excursion + (set-buffer svn-process-buffer-name) + (message "%s" (buffer-substring (point-min) (- (point-max) 1))))) + (when svn-status-files-to-commit ; there are files to commit + (setq svn-status-operated-on-dot + (and (= 1 (length svn-status-files-to-commit)) + (string= "." (svn-status-line-info->filename (car svn-status-files-to-commit))))) + (svn-status-create-arg-file svn-status-temp-arg-file "" svn-status-files-to-commit "") + (svn-run t t 'commit "commit" + (unless svn-status-recursive-commit "--non-recursive") + "--targets" svn-status-temp-arg-file + "-F" svn-log-edit-file-name + (when (eq svn-status-svn-file-coding-system 'utf-8) + '("--encoding" "UTF-8")) + svn-status-default-commit-arguments)) + (set-window-configuration svn-status-pre-commit-window-configuration) + (message "svn-log editing done")))) (defun svn-log-edit-svn-diff (arg) "Show the diff we are about to commit. @@ -5136,7 +5255,7 @@ If ARG then show diff between some other version of the selected files." (let ((buf-size (- (point-max) (point-min)))) (save-excursion (goto-char (point-min)) - (insert "## Lines starting with '## ' will be removed from the log message.\n") + (insert svn-log-edit-header) (insert "## File(s) to commit" (if svn-status-recursive-commit " recursively" "") ":\n") (let ((file-list svn-status-files-to-commit)) @@ -5359,7 +5478,8 @@ Commands: "Mark the revision at point to be used as diff against revision." (interactive) (let ((start-pos) - (point-at-partner-rev)) + (point-at-partner-rev) + (overlay)) (dolist (ov (overlays-in (point-min) (point-max))) (when (overlay-get ov 'svn-log-partner-revision) (setq point-at-partner-rev (and (>= (point) (overlay-start ov)) @@ -5803,23 +5923,33 @@ The optional prefix argument ARG determines which switches are passed to `svn lo "Show statistics for the current blame buffer." (interactive) (let ((author-map (make-hash-table :test 'equal)) + (revision-map (make-hash-table :test 'equal)) + (rev-info) (author-list) - (author)) + (author) + (revision-list) + (revision)) (save-excursion (goto-char (point-min)) (while (not (eobp)) (dolist (ov (overlays-in (svn-point-at-bol) (line-end-position))) (when (overlay-get ov 'svn-blame-line-info) - (setq author (cadr (overlay-get ov 'rev-info))) - (svn-puthash author - (+ (gethash author author-map 0) 1) - author-map))) + (setq rev-info (overlay-get ov 'rev-info)) + (setq author (cadr rev-info)) + (setq revision (string-to-number (car rev-info))) + (svn-puthash author (+ (gethash author author-map 0) 1) author-map) + (svn-puthash revision (+ (gethash revision revision-map 0) 1) revision-map))) (forward-line)) (maphash '(lambda (key value) (add-to-list 'author-list (list key value))) author-map) + (maphash '(lambda (key value) (add-to-list 'revision-list (list key value))) revision-map) (pop-to-buffer (get-buffer-create (replace-regexp-in-string "svn-blame:" "svn-blame-statistics:" (buffer-name)))) (erase-buffer) + (insert (propertize "Authors:\n" 'face 'font-lock-function-name-face)) (dolist (line (sort author-list '(lambda (v1 v2) (> (cadr v1) (cadr v2))))) (insert (format "%s: %s line%s\n" (car line) (cadr line) (if (eq (cadr line) 1) "" "s")))) + (insert (propertize "\nRevisions:\n" 'face 'font-lock-function-name-face)) + (dolist (line (sort revision-list '(lambda (v1 v2) (< (car v1) (car v2))))) + (insert (format "%s: %s line%s\n" (car line) (cadr line) (if (eq (cadr line) 1) "" "s")))) (goto-char (point-min))))) (defun svn-blame-highlight-author-field (ov) diff --git a/sources b/sources index cfb214d..ae6f6fb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e5109da756d74c7d98f683f004a539af subversion-1.6.6.tar.bz2 +9c30a47b1d48664e7afef68bb4834c53 subversion-1.6.9.tar.bz2 diff --git a/subversion-1.6.2.tar.gz.asc b/subversion-1.6.2.tar.gz.asc deleted file mode 100644 index ffd3159..0000000 --- a/subversion-1.6.2.tar.gz.asc +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkoDD0IACgkQCwOubk4kUXx7kACgx2OOfBOPAMBeUHrM+xSsdsWj -WLkAnA4tzj8eBBfKtfIUnomLB+0xSqh7 -=dIoL ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2.2 (GNU/Linux) - -iD8DBQBKA6AAxXIjJtpWHZERAv/PAJ4iSk7tHYYHI7t+EPmxC6pmD3hT9QCgk9lX -/nEquZMpPhZie6qQWNDZyLs= -=5jcM ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkoDJg8ACgkQ9o1G+2zNQDhVYwCgpZMjlTopJIOREHHsr+E/775n -O9YAniuC/5S5W92vRFpAahpH9j7GzGul -=GMi5 ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (FreeBSD) - -iEYEABECAAYFAkoEpmkACgkQ/P1jBZgh97JkegCgvAWA8MlEycZIkWud4HLK0uw4 -YrsAnRFtdlwzeOI3knarehRe0q7ixYvg -=9hZJ ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.11 (GNU/Linux) - -iEYEABECAAYFAkoEWNoACgkQIEGVSeBq/j6U8QCgkkd3w7znQ/dMOtIQIGdg9gwC -P/UAn3T6R8pj+3cOLSFsFUuy/V7bkGbU -=GPSt ------END PGP SIGNATURE----- diff --git a/subversion-1.6.3.tar.gz.asc b/subversion-1.6.3.tar.gz.asc deleted file mode 100644 index 4424935..0000000 --- a/subversion-1.6.3.tar.gz.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAko5swkACgkQCwOubk4kUXwbpQCfT7+XfNkX8nb2HAO0og5Tn8Xu -9ukAoPIKZ/+taVMeiPXRC8AX0x24niOr -=1vmx ------END PGP SIGNATURE----- diff --git a/subversion-1.6.4.tar.bz2.asc b/subversion-1.6.4.tar.bz2.asc deleted file mode 100644 index b8f3014..0000000 --- a/subversion-1.6.4.tar.bz2.asc +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp3xLQACgkQCwOubk4kUXxp8wCdEk4skjDqre08fEuF/bc+n05d -WQIAoNzA2nVuza0td20YjDqXbX2lW7GG -=BEAB ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp4nzUACgkQ5dMCc/WdJfBwZACgpAcORwz5rnbUpMacRRNZ7cNw -v98AoPBo/9ULXBt4dPn021pjsLxgyUw3 -=FLdA ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp4k/kACgkQokEGqRcG/W5gdACguMlg/4QUAAsh811ffgM6upmt -qA0AoLd1R8UXEqnozKjGPuzljtEDBolg -=HVCk ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp5RxAACgkQ9o1G+2zNQDhMiwCgh8xaAhXxyp6/YHf2onxWEiXb -hR8AmgKuMuBS+R8XDZaoLDx+i0o+XCHX -=57CQ ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (FreeBSD) - -iEYEABECAAYFAkp7AzwACgkQ/P1jBZgh97LPSACfV0Q1NEW7uilPCGyED7n3urqU -VPIAnjJVMYpb6aG10C9ymDj0LiucKOi9 -=jGlb ------END PGP SIGNATURE----- diff --git a/subversion-1.6.4.tar.gz.asc b/subversion-1.6.4.tar.gz.asc deleted file mode 100644 index 9c27fc5..0000000 --- a/subversion-1.6.4.tar.gz.asc +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp3xLYACgkQCwOubk4kUXwuHwCgxFKL+QnzIebGGcjqPm4l/iBp -/2QAni/Ye1w73QjIikRxSsvNaBxr7Ik6 -=Vkwq ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp4n9QACgkQ5dMCc/WdJfBD0QCg+UN5zZ9HS6bouwVexaFWYXbh -GeEAmQGA7yQtvHgYJ97DJM3LNAW6cd5X -=5fXs ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp4k+UACgkQokEGqRcG/W7VUQCeNFQ7VJgRxQFOG1Ukp026e+H4 -bDUAoIRMH84/Bb3OYa5Gr0xSOuhPhWEx -=EfId ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkp5RxgACgkQ9o1G+2zNQDgGHACdGJWmRW6L8qjrBpIPIqdvQfGw -X7IAn2icEiXqv7/TMROxCVGJh5jvxVAx -=2Td8 ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (FreeBSD) - -iEYEABECAAYFAkp7Az8ACgkQ/P1jBZgh97KJSQCgyQz56frR5zEAf+l4m/Ny3Dr5 -u50AmQErCcguvMp/MJva2oluweihoW4Y -=ZQx2 ------END PGP SIGNATURE----- diff --git a/subversion-1.6.6-kwallet.patch b/subversion-1.6.6-kwallet.patch index f9de586..5c8edf8 100644 --- a/subversion-1.6.6-kwallet.patch +++ b/subversion-1.6.6-kwallet.patch @@ -19,7 +19,7 @@ kde4-config to report the directory which contains the .so files. LIBS="$LIBS $SVN_KWALLET_LIBS" qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`" - LDFLAGS="$old_LDFLAGS $qt_lib_dirs -L$kde_dir/lib`$kde4_config --libsuffix`" -+ LDFLAGS="$old_LDFLAGS $qt_lib_dirs -L/usr/lib`$kde4_config --libsuffix`/kde4/devel" ++ LDFLAGS="$old_LDFLAGS $qt_lib_dirs -L$libdir/kde4/devel" AC_LANG(C++) AC_LINK_IFELSE([ #include diff --git a/subversion-1.6.6.tar.bz2.asc b/subversion-1.6.6.tar.bz2.asc deleted file mode 100644 index 5d0321d..0000000 --- a/subversion-1.6.6.tar.bz2.asc +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkrXTlsACgkQCwOubk4kUXyyPgCeOJk5kVF+eoByU6GKZkzm2r9m -3mMAnjZusFZJ+qGd/MIT7fDc66Ey8TuQ -=3Uhc ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkrX9ZkACgkQ9o1G+2zNQDh15wCglUp6nbw3tpP04O5ljud2QccS -7NcAmwViX8mR2X5itH3N0KVk1VQj0WOO -=v+Og ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2 (GNU/Linux) - -iD8DBQBK2I/RNR8z5DU+JbwRAsgkAJ0dU8J/GakhF3qezvb/JgkpSDF6swCfQKHX -M2bPkCtBdNwjBDqeho4wRpg= -=jPxs ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.10 (FreeBSD) - -iEYEABECAAYFAkre/ukACgkQ/P1jBZgh97JaEACgm58i2b7byLEQ3yGWv+yl/hj3 -5yYAnROYRntwtZKCbaekYVxVhBtieugD -=tm1D ------END PGP SIGNATURE----- ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.9 (GNU/Linux) - -iEYEABECAAYFAkrfLvsACgkQokEGqRcG/W7dxwCdFP46PMY3UyEoMBZN0OInI2VW -FpUAn0nnfdaWMN21My5Xhru9xGeK2XQ5 -=ve9G ------END PGP SIGNATURE----- diff --git a/subversion.spec b/subversion.spec index fb17988..801f5fd 100644 --- a/subversion.spec +++ b/subversion.spec @@ -16,7 +16,7 @@ Summary: A Modern Concurrent Version Control System Name: subversion -Version: 1.6.6 +Version: 1.6.9 Release: 1%{?dist} License: ASL 1.1 Group: Development/Tools @@ -170,6 +170,8 @@ if [ "$v" != "%{svn2cl_version}" ]; then exit 1 fi +mv tools/client-side/bash_completion . + %build # Regenerate the buildsystem, so that: # 1) patches applied to configure.in take effect @@ -192,7 +194,8 @@ export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS" --disable-static --with-sasl=%{_prefix} \ --disable-neon-version-check \ --with-gnome-keyring \ - --with-kwallet + --with-kwallet \ + --with-berkeley-db || (cat config.log; exit 1) make %{?_smp_mflags} all make swig-py swig-py-lib %{swigdirs} make swig-pl swig-pl-lib swig-rb swig-rb-lib @@ -259,10 +262,11 @@ install -m 644 $RPM_SOURCE_DIR/psvn-init.el \ # Rename authz_svn INSTALL doc for docdir ln -f subversion/mod_authz_svn/INSTALL mod_authz_svn-INSTALL -# Trim exported dependencies to SVN and APR libraries only: +# Trim exported dependencies to APR libraries only: sed -i "/^dependency_libs/{ s, -l[^ ']*, ,g; - s,%{_libdir}/lib[^sa][^vp][^nr].*.la, ,g; + s, -L[^ ']*, ,g; + s,%{_libdir}/lib[^a][^p][^r][^ ']*.la, ,g; }" $RPM_BUILD_ROOT%{_libdir}/*.la # Install svn2cl @@ -274,7 +278,7 @@ install -Dpm 644 svn2cl.1 $RPM_BUILD_ROOT%{_mandir}/man1/svn2cl.1 popd # Install bash completion -install -Dpm 644 tools/client-side/bash_completion \ +install -Dpm 644 bash_completion \ $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/%{name} %find_lang %{name} @@ -318,8 +322,10 @@ rm -rf ${RPM_BUILD_ROOT} %doc contrib/client-side/svnmerge/*.{README,py} %doc contrib/client-side/wcgrep %{_bindir}/* +%exclude %{_bindir}/svn2cl %{_libdir}/libsvn_*.so.* %{_mandir}/man*/* +%exclude %{_mandir}/man1/svn2cl.1* %{python_sitearch}/svn %{python_sitearch}/libsvn %{_datadir}/emacs/site-lisp/*.el @@ -385,6 +391,13 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man1/svn2cl.1* %changelog +* Sat Feb 13 2010 Joe Orton - 1.6.9-1 +- update to 1.6.9 + +* Mon Jan 25 2010 Ville Skyttä - 1.6.6-5 +- Include svn2cl and its man page only in the -svn2cl subpackage (#558598). +- Do not include bash completion in docs, it's installed. + * Sun Nov 8 2009 Joe Orton - 1.6.6-1 - update to 1.6.6