Compare commits
5 Commits
rawhide
...
subversion
Author | SHA1 | Date |
---|---|---|
jorton | 0566451834 | |
jorton | ab3b474a32 | |
Bill Nottingham | 1cce504a3f | |
jorton | 6e2e2f86b8 | |
Jesse Keating | cdd0cee31e |
|
@ -1 +1,2 @@
|
||||||
subversion-1.6.5.tar.bz2
|
subversion-1.6.5.tar.bz2
|
||||||
|
subversion-1.6.6.tar.bz2
|
||||||
|
|
4
Makefile
4
Makefile
|
@ -1,11 +1,11 @@
|
||||||
# Makefile for source rpm: subversion
|
# Makefile for source rpm: subversion
|
||||||
# $Id: Makefile,v 1.3 2004/09/30 10:49:48 jorton Exp $
|
# $Id: Makefile,v 1.4 2007/10/15 19:24:42 notting Exp $
|
||||||
NAME := subversion
|
NAME := subversion
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
SPECFILE = $(firstword $(wildcard *.spec))
|
||||||
UPSTREAM_CHECKS := asc
|
UPSTREAM_CHECKS := asc
|
||||||
|
|
||||||
define find-makefile-common
|
define find-makefile-common
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||||
endef
|
endef
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||||
|
|
362
psvn.el
362
psvn.el
|
@ -1,8 +1,8 @@
|
||||||
;;; psvn.el --- Subversion interface for emacs
|
;;; psvn.el --- Subversion interface for emacs
|
||||||
;; Copyright (C) 2002-2008 by Stefan Reichoer
|
;; Copyright (C) 2002-2009 by Stefan Reichoer
|
||||||
|
|
||||||
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
||||||
;; $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
|
;; 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
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
;;; Commentary
|
;;; Commentary
|
||||||
|
|
||||||
;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux,
|
;; 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
|
;; psvn.el needs at least svn 1.1.0
|
||||||
;; if you upgrade to a higher version, you need to do a fresh checkout
|
;; 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
|
;; e - svn-status-toggle-edit-cmd-flag
|
||||||
;; ? - svn-status-toggle-hide-unknown
|
;; ? - svn-status-toggle-hide-unknown
|
||||||
;; _ - svn-status-toggle-hide-unmodified
|
;; _ - svn-status-toggle-hide-unmodified
|
||||||
|
;; z - svn-status-toggle-hide-externals
|
||||||
;; m - svn-status-set-user-mark
|
;; m - svn-status-set-user-mark
|
||||||
;; u - svn-status-unset-user-mark
|
;; u - svn-status-unset-user-mark
|
||||||
;; $ - svn-status-toggle-elide
|
;; $ - svn-status-toggle-elide
|
||||||
|
@ -103,6 +104,7 @@
|
||||||
;; P i - svn-status-property-ignore-file
|
;; P i - svn-status-property-ignore-file
|
||||||
;; P I - svn-status-property-ignore-file-extension
|
;; P I - svn-status-property-ignore-file-extension
|
||||||
;; P C-i - svn-status-property-edit-svn-ignore
|
;; 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 - svn-status-property-set-keyword-list
|
||||||
;; P K i - svn-status-property-set-keyword-id
|
;; P K i - svn-status-property-set-keyword-id
|
||||||
;; P K d - svn-status-property-set-keyword-date
|
;; P K d - svn-status-property-set-keyword-date
|
||||||
|
@ -245,6 +247,7 @@
|
||||||
(eval-when-compile (require 'dired))
|
(eval-when-compile (require 'dired))
|
||||||
(eval-when-compile (require 'ediff-util))
|
(eval-when-compile (require 'ediff-util))
|
||||||
(eval-when-compile (require 'ediff-wind))
|
(eval-when-compile (require 'ediff-wind))
|
||||||
|
(eval-when-compile (require 'vc-hooks))
|
||||||
(eval-when-compile (require 'elp))
|
(eval-when-compile (require 'elp))
|
||||||
(eval-when-compile (require 'pp))
|
(eval-when-compile (require 'pp))
|
||||||
|
|
||||||
|
@ -253,7 +256,7 @@
|
||||||
(require 'diff-mode))
|
(require 'diff-mode))
|
||||||
(error nil))
|
(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.")
|
"The revision number of psvn.")
|
||||||
|
|
||||||
;;; user setable variables
|
;;; 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]."
|
This can be toggled with \\[svn-status-toggle-hide-unmodified]."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'psvn)
|
: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
|
(defcustom svn-status-sort-status-buffer t
|
||||||
"*Whether to sort the `svn-status-buffer-name' buffer.
|
"*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)
|
;; (put 'svn-browse-url-function 'risky-local-variable t)
|
||||||
;; already implied by "-function" suffix
|
;; 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
|
(defcustom svn-status-window-alist
|
||||||
'((diff "*svn-diff*") (log "*svn-log*") (info t) (blame t) (proplist t) (update t))
|
'((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.
|
"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)
|
;; (put 'svn-log-edit-done-hook 'risky-local-variable t)
|
||||||
;; already implied by "-hook" suffix
|
;; 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")
|
The function `svn-status-remove-control-M' can be useful for that hook")
|
||||||
|
|
||||||
(when (eq system-type 'windows-nt)
|
(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)
|
(defun svn-substring-no-properties (string &optional from to)
|
||||||
(if (fboundp 'substring-no-properties)
|
(if (fboundp 'substring-no-properties)
|
||||||
(substring-no-properties string from to)
|
(substring-no-properties string from to)
|
||||||
(substring string from to)))
|
(substring string (or from 0) to)))
|
||||||
|
|
||||||
; xemacs
|
; xemacs
|
||||||
;; Evaluate the defsubst at compile time, so that the byte compiler
|
;; 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)
|
(defsubst svn-match-string-no-properties (match)
|
||||||
(buffer-substring-no-properties (match-beginning match) (match-end 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.
|
;; 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
|
;; To find out whether the `alist' widget exists, we cannot check just
|
||||||
;; (get 'alist 'widget-type), because GNU Emacs 21.4 defines it in
|
;; (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 "f r") 'svn-file-revert)
|
||||||
(define-key svn-global-keymap (kbd "c") 'svn-status-commit)
|
(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 "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 ()
|
(defvar svn-status-diff-mode-map ()
|
||||||
"Keymap used in `svn-status-diff-mode' for additional commands that are not defined in diff-mode.")
|
"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" "")))))
|
(if arg "-u" "")))))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(set-buffer status-buf)
|
(set-buffer status-buf)
|
||||||
|
(buffer-disable-undo)
|
||||||
(setq default-directory dir)
|
(setq default-directory dir)
|
||||||
(set-buffer proc-buf)
|
(set-buffer proc-buf)
|
||||||
(setq default-directory dir
|
(setq default-directory dir
|
||||||
svn-status-remote (when arg t))
|
svn-status-remote (when arg t))
|
||||||
(set-buffer cur-buf)
|
(set-buffer cur-buf)
|
||||||
(if want-edit
|
(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))
|
||||||
(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 ()
|
(defun svn-had-user-input-since-asynch-run ()
|
||||||
(not (equal (recent-keys) svn-pre-run-asynch-recent-keys)))
|
(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 ()
|
(defun svn-process-environment ()
|
||||||
"Construct the environment for the svn process.
|
"Construct the environment for the svn process.
|
||||||
It is a combination of `svn-status-svn-environment-var-list' and
|
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-last-commit-author nil)
|
||||||
(setq svn-status-mode-line-process-status (format " running %s" cmdtype))
|
(setq svn-status-mode-line-process-status (format " running %s" cmdtype))
|
||||||
(svn-status-update-mode-line)
|
(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))
|
(ring-insert svn-last-cmd-ring (list (current-time-string) arglist default-directory))
|
||||||
(if run-asynchron
|
(if run-asynchron
|
||||||
(progn
|
(progn
|
||||||
|
@ -1320,8 +1357,8 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||||
(replace-match "/")))))
|
(replace-match "/")))))
|
||||||
|
|
||||||
(defun svn-process-sentinel (process event)
|
(defun svn-process-sentinel (process event)
|
||||||
|
"Called after a svn process has finished."
|
||||||
;;(princ (format "Process: %s had the event `%s'" process event)))
|
;;(princ (format "Process: %s had the event `%s'" process event)))
|
||||||
;;(save-excursion
|
|
||||||
(let ((act-buf (current-buffer)))
|
(let ((act-buf (current-buffer)))
|
||||||
(when svn-pre-run-mode-line-process
|
(when svn-pre-run-mode-line-process
|
||||||
(with-current-buffer svn-status-pre-run-svn-buffer
|
(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))
|
(while (accept-process-output process 0 100))
|
||||||
;; find last error message and show it.
|
;; find last error message and show it.
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(if (re-search-backward "^svn: \\(.*\\)" nil t)
|
(if (re-search-backward "^svn: " nil t)
|
||||||
(svn-process-handle-error (match-string 1))
|
(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)))
|
(message "svn failed: %s" event)))
|
||||||
(t
|
(t
|
||||||
(message "svn process had unknown event: %s" event))
|
(message "svn process had unknown event: %s" event))
|
||||||
(svn-status-show-process-output nil t))))
|
(svn-status-show-process-output nil t))))
|
||||||
|
|
||||||
(defvar svn-process-handle-error-msg nil)
|
(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)
|
(defun svn-process-handle-error (error-msg)
|
||||||
(let ((svn-process-handle-error-msg 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 ()
|
(defun svn-process-help-with-error-msg ()
|
||||||
(interactive)
|
(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."))))))
|
"Please unmark all files and position point at the directory you would like to remove.\nThen run commit again."))))))
|
||||||
(if help-msg
|
(if help-msg
|
||||||
(save-excursion
|
(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))))
|
(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)
|
(defun svn-process-filter (process str)
|
||||||
|
@ -1485,17 +1535,17 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||||
(insert str)
|
(insert str)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (svn-point-at-bol))
|
(goto-char (svn-point-at-bol))
|
||||||
(when (looking-at "Password for '\\(.+\\)': ")
|
(when (looking-at "Password for '\\(.*\\)': ")
|
||||||
;(svn-status-show-process-buffer)
|
;(svn-status-show-process-buffer)
|
||||||
(let ((passwd (read-passwd
|
(let ((passwd (read-passwd
|
||||||
(format "Enter svn password for %s: " (match-string 1)))))
|
(format "Enter svn password for %s: " (match-string 1)))))
|
||||||
(svn-process-send-string-and-newline passwd t)))
|
(svn-process-send-string-and-newline passwd t)))
|
||||||
(when (looking-at "Username: ")
|
(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)))
|
(svn-process-send-string-and-newline user-name)))
|
||||||
(when (looking-at "(R)eject, accept (t)emporarily or accept (p)ermanently")
|
(when (looking-at "(R)eject, accept (t)emporarily or accept (p)ermanently")
|
||||||
(svn-status-show-process-buffer)
|
(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)))))))
|
(svn-process-send-string (substring answer 0 1)))))))
|
||||||
|
|
||||||
(defun svn-revert-some-buffers (&optional tree)
|
(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-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-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-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
|
svn-repo-locked-mark (elt svn-marks 5)) ; 6th column - K,O,T,B or blank
|
||||||
(when svn-status-remote
|
(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-property-mark ?\ ) (setq svn-property-mark nil))
|
||||||
(when (eq svn-wc-locked-mark ?\ ) (setq svn-wc-locked-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))
|
(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))))))
|
(setq svn-status-info (sort svn-status-info 'svn-status-sort-predicate))))))
|
||||||
|
|
||||||
;;(string-lessp "." "%") => nil
|
;;(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)
|
(defun svn-status-sort-predicate (a b)
|
||||||
"Return t if A should appear before B in the `svn-status-buffer-name' buffer.
|
"Return t if A should appear before B in the `svn-status-buffer-name' buffer.
|
||||||
A and B must be line-info's."
|
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)
|
(while (re-search-forward "\r$" (point-max) t)
|
||||||
(replace-match "" nil nil))))))
|
(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
|
(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] "PCL-CVS")
|
||||||
(easy-menu-add-item nil '("tools") ["SVN Status" svn-status t])
|
(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
|
;; XEmacs allows simultaneous connections to multiple devices with
|
||||||
;; different keyboards.
|
;; different keyboards.
|
||||||
(define-key svn-status-mode-map
|
(define-key svn-status-mode-map
|
||||||
(if (member (kbd "DEL") '([(delete)] [delete]))
|
(if (member (kbd "DEL") '([(delete)] [delete]))
|
||||||
[(backspace)] ; XEmacs
|
[(backspace)] ; XEmacs
|
||||||
(kbd "DEL")) ; GNU Emacs
|
(kbd "DEL")) ; GNU Emacs
|
||||||
'svn-status-unset-user-mark-backwards)
|
'svn-status-unset-user-mark-backwards)
|
||||||
(define-key svn-status-mode-map (kbd "$") 'svn-status-toggle-elide)
|
(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 "w") 'svn-status-copy-current-line-info)
|
||||||
(define-key svn-status-mode-map (kbd ".") 'svn-status-goto-root-or-return)
|
(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 "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-unknown)
|
||||||
(define-key svn-status-mode-map (kbd "_") 'svn-status-toggle-hide-unmodified)
|
(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)
|
||||||
(define-key svn-status-mode-map (kbd "A") 'svn-status-add-file-recursively)
|
(define-key svn-status-mode-map (kbd "A") 'svn-status-add-file-recursively)
|
||||||
(define-key svn-status-mode-map (kbd "+") 'svn-status-make-directory)
|
(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'.
|
;; 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 [(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 "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 "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 "Ki") 'svn-status-property-set-keyword-id)
|
||||||
(define-key svn-status-mode-property-map (kbd "Kd") 'svn-status-property-set-keyword-date)
|
(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]
|
["svn:ignore File Extension..." svn-status-property-ignore-file-extension t]
|
||||||
["Edit svn:ignore Property" svn-status-property-edit-svn-ignore 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]
|
["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 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]
|
["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]
|
:style toggle :selected svn-status-hide-unknown]
|
||||||
["Hide Unmodified" svn-status-toggle-hide-unmodified
|
["Hide Unmodified" svn-status-toggle-hide-unmodified
|
||||||
:style toggle :selected svn-status-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]
|
["Show Client versions" svn-status-version t]
|
||||||
["Prepare bug report" svn-prepare-bug-report t]
|
["Prepare bug report" svn-prepare-bug-report t]
|
||||||
))
|
))
|
||||||
|
@ -2145,7 +2216,7 @@ PREFIX is passed to `popup-menu'."
|
||||||
(progn
|
(progn
|
||||||
(setq o (make-overlay begin end))
|
(setq o (make-overlay begin end))
|
||||||
(overlay-put o 'face face)
|
(overlay-put o 'face face)
|
||||||
(sit-for 0)
|
(save-excursion (sit-for 0))
|
||||||
(popup-menu menu prefix))
|
(popup-menu menu prefix))
|
||||||
(delete-overlay o))))
|
(delete-overlay o))))
|
||||||
|
|
||||||
|
@ -2332,7 +2403,7 @@ history, when it will be \"+\"."
|
||||||
(defun svn-status-line-info->switched (line-info)
|
(defun svn-status-line-info->switched (line-info)
|
||||||
"Return whether LINE-INFO is switched relative to its parent.
|
"Return whether LINE-INFO is switched relative to its parent.
|
||||||
This is column five of the output from `svn status'.
|
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))
|
(nth 10 line-info))
|
||||||
(defun svn-status-line-info->repo-locked (line-info)
|
(defun svn-status-line-info->repo-locked (line-info)
|
||||||
"Return whether LINE-INFO contains some locking information.
|
"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"
|
"Return whether the line is visible or not"
|
||||||
(or (not (or (svn-status-line-info->hide-because-unknown line-info)
|
(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-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-custom-hide-function line-info)
|
||||||
(svn-status-line-info->hide-because-user-elide 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
|
(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
|
(and svn-status-hide-unknown
|
||||||
(eq (svn-status-line-info->filemark line-info) ??)))
|
(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)
|
(defun svn-status-line-info->hide-because-custom-hide-function (line-info)
|
||||||
(and svn-status-custom-hide-function
|
(and svn-status-custom-hide-function
|
||||||
(apply svn-status-custom-hide-function (list line-info))))
|
(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)
|
(len-test)
|
||||||
(elided-list)
|
(elided-list)
|
||||||
(elide-mark))
|
(elide-mark))
|
||||||
(while st-info
|
(when svn-status-elided-list
|
||||||
(setq fname (svn-status-line-info->filename (car st-info)))
|
(while st-info
|
||||||
(setq len-fname (length fname))
|
(setq fname (svn-status-line-info->filename (car st-info)))
|
||||||
(setq elided-list svn-status-elided-list)
|
(setq len-fname (length fname))
|
||||||
(setq elide-mark nil)
|
(setq elided-list svn-status-elided-list)
|
||||||
(while elided-list
|
(setq elide-mark nil)
|
||||||
(setq test (car elided-list))
|
(while elided-list
|
||||||
(when (string= test ".")
|
(setq test (car elided-list))
|
||||||
(setq test ""))
|
(when (string= test ".")
|
||||||
(setq len-test (length test))
|
(setq test ""))
|
||||||
(when (and (>= len-fname len-test)
|
(setq len-test (length test))
|
||||||
(string= (substring fname 0 len-test) test))
|
(when (and (>= len-fname len-test)
|
||||||
(setq elide-mark t)
|
(string= (substring fname 0 len-test) test))
|
||||||
(when (or (string= fname ".")
|
(setq elide-mark t)
|
||||||
(and (= len-fname len-test) (svn-status-line-info->directory-p (car st-info))))
|
(when (or (string= fname ".")
|
||||||
(setq elide-mark 'directory)))
|
(and (= len-fname len-test) (svn-status-line-info->directory-p (car st-info))))
|
||||||
(setq elided-list (cdr elided-list)))
|
(setq elide-mark 'directory)))
|
||||||
;;(message "fname: %s elide-mark: %S" fname elide-mark)
|
(setq elided-list (cdr elided-list)))
|
||||||
(setcar (nthcdr 1 (svn-status-line-info->ui-status (car st-info))) elide-mark)
|
;;(message "fname: %s elide-mark: %S" fname elide-mark)
|
||||||
(setq st-info (cdr st-info))))
|
(setcar (nthcdr 1 (svn-status-line-info->ui-status (car st-info))) elide-mark)
|
||||||
|
(setq st-info (cdr st-info)))))
|
||||||
(svn-status-update-buffer))
|
(svn-status-update-buffer))
|
||||||
|
|
||||||
(defun svn-status-update-with-command-list (cmd-list)
|
(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 ;; <indentation>file or /path/to/file
|
(filename ;; <indentation>file or /path/to/file
|
||||||
(concat
|
(concat
|
||||||
(if (or svn-status-display-full-path
|
(if (or svn-status-display-full-path
|
||||||
svn-status-hide-unmodified)
|
svn-status-hide-unmodified
|
||||||
|
svn-status-hide-externals)
|
||||||
(svn-add-face
|
(svn-add-face
|
||||||
(let ((dir-name (file-name-as-directory
|
(let ((dir-name (file-name-as-directory
|
||||||
(svn-status-line-info->directory-containing-line-info
|
(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 ]")
|
((eq flag ?B) " [ REPO-LOCK-BROKEN ]")
|
||||||
(t " [ REPO-LOCK-UNKNOWN ]")))
|
(t " [ REPO-LOCK-UNKNOWN ]")))
|
||||||
'svn-status-locked-face)
|
'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)
|
" (switched)" 'svn-status-switched-face)
|
||||||
elide-hint)
|
elide-hint)
|
||||||
'svn-status-marked-face)
|
'svn-status-marked-face)
|
||||||
|
@ -2891,6 +2969,7 @@ Additionally clear the psvn-extra-info field in all line-info lists."
|
||||||
(overlay)
|
(overlay)
|
||||||
(unmodified-count 0) ;how many unmodified files are hidden
|
(unmodified-count 0) ;how many unmodified files are hidden
|
||||||
(unknown-count 0) ;how many unknown 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
|
(custom-hide-count 0) ;how many files are hidden via svn-status-custom-hide-function
|
||||||
(marked-count 0) ;how many files are elided
|
(marked-count 0) ;how many files are elided
|
||||||
(user-elide-count 0)
|
(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)))
|
(setq unknown-count (1+ unknown-count)))
|
||||||
((svn-status-line-info->hide-because-unmodified (car st-info))
|
((svn-status-line-info->hide-because-unmodified (car st-info))
|
||||||
(setq unmodified-count (1+ unmodified-count)))
|
(setq unmodified-count (1+ unmodified-count)))
|
||||||
|
((svn-status-line-info->hide-because-externals (car st-info))
|
||||||
|
(setq externals-count (1+ externals-count)))
|
||||||
(t
|
(t
|
||||||
(svn-insert-line-in-status-buffer (car st-info))))
|
(svn-insert-line-in-status-buffer (car st-info))))
|
||||||
(when (svn-status-line-info->has-usermark (car st-info))
|
(when (svn-status-line-info->has-usermark (car st-info))
|
||||||
(setq marked-count (+ marked-count 1)))
|
(setq marked-count (+ marked-count 1)))
|
||||||
(setq overlay (make-overlay start-pos (point)))
|
(setq overlay (make-overlay start-pos (point)))
|
||||||
(overlay-put overlay 'svn-info (car st-info))
|
(overlay-put overlay 'svn-info (car st-info))
|
||||||
|
(overlay-put overlay 'evaporate t)
|
||||||
(setq st-info (cdr st-info)))
|
(setq st-info (cdr st-info)))
|
||||||
;; Insert status information at the buffer beginning
|
;; Insert status information at the buffer beginning
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
|
@ -2949,6 +3031,10 @@ Additionally clear the psvn-extra-info field in all line-info lists."
|
||||||
(insert
|
(insert
|
||||||
(format "%d Unmodified file(s) are hidden - press `_' to toggle hiding\n"
|
(format "%d Unmodified file(s) are hidden - press `_' to toggle hiding\n"
|
||||||
unmodified-count)))
|
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)
|
(when (> custom-hide-count 0)
|
||||||
(insert
|
(insert
|
||||||
(format "%d file(s) are hidden via the svn-status-custom-hide-function\n"
|
(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)
|
(cond ((eq major-mode 'svn-status-mode)
|
||||||
(svn-status-get-line-information))
|
(svn-status-get-line-information))
|
||||||
(t
|
(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))))))
|
(svn-status-make-line-info (buffer-file-name (current-buffer))))))
|
||||||
|
|
||||||
(defun svn-status-select-line ()
|
(defun svn-status-select-line ()
|
||||||
|
@ -3197,12 +3283,12 @@ When called from a file buffer provide a structure that contains the filename."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((info (svn-status-get-line-information)))
|
(let ((info (svn-status-get-line-information)))
|
||||||
(if info
|
(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-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"))))
|
(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."
|
"Raise an error unless point is on a valid file."
|
||||||
(unless (svn-status-get-line-information)
|
(unless (svn-status-get-line-information)
|
||||||
(error "No file on the current line")))
|
(error "No file on the current line")))
|
||||||
|
@ -3390,13 +3476,15 @@ This means we mark
|
||||||
* all modified files
|
* all modified files
|
||||||
* all files scheduled for addition
|
* all files scheduled for addition
|
||||||
* all files scheduled for deletion
|
* all files scheduled for deletion
|
||||||
|
* all files with modified properties
|
||||||
|
|
||||||
The last two categories include all copied and moved files.
|
The last two categories include all copied and moved files.
|
||||||
If called with a prefix ARG, unmark all such files."
|
If called with a prefix ARG, unmark all such files."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(svn-status-mark-added arg)
|
(svn-status-mark-added arg)
|
||||||
(svn-status-mark-modified 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 ()
|
(defun svn-status-unset-all-usermarks ()
|
||||||
(interactive)
|
(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))
|
(setq svn-status-hide-unmodified (not svn-status-hide-unmodified))
|
||||||
(svn-status-update-buffer))
|
(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)
|
(defun svn-status-get-file-name-buffer-position (name)
|
||||||
"Find the buffer position for a file.
|
"Find the buffer position for a file.
|
||||||
If the file is not found, return nil."
|
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)
|
(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
|
(with-temp-file file-name
|
||||||
(insert prefix)
|
(insert prefix)
|
||||||
(let ((st-info file-info-list))
|
(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."
|
When called with a negative prefix argument, only update the selected files."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(let* ((selective-update (or (and (numberp arg) (< arg 0)) (eq arg '-)))
|
(let* ((selective-update (or (and (numberp arg) (< arg 0)) (eq arg '-)))
|
||||||
|
(update-extra-arg)
|
||||||
(rev (when arg (svn-status-read-revision-string
|
(rev (when arg (svn-status-read-revision-string
|
||||||
(if selective-update
|
(if selective-update
|
||||||
(format "Selected entries: Run svn update -r ")
|
(format "Selected entries: Run svn update -r ")
|
||||||
(format "Directory: %s: Run svn update -r " default-directory))
|
(format "Directory: %s: Run svn update -r " default-directory))
|
||||||
(if selective-update "HEAD" nil)))))
|
(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
|
(if selective-update
|
||||||
(progn
|
(progn
|
||||||
(message "Running svn-update for %s" (svn-status-marked-file-names))
|
(message "Running svn-update for %s" (svn-status-marked-file-names))
|
||||||
(svn-run t t 'update "update"
|
(svn-run t t 'update "update"
|
||||||
(when rev (list "-r" rev))
|
(when rev (list "-r" rev))
|
||||||
(list "--non-interactive")
|
update-extra-arg
|
||||||
(svn-status-marked-file-names)))
|
(svn-status-marked-file-names)))
|
||||||
(message "Running svn-update for %s" default-directory)
|
(message "Running svn-update for %s" default-directory)
|
||||||
(svn-run t t 'update "update"
|
(svn-run t t 'update "update"
|
||||||
(when rev (list "-r" rev))
|
(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 ()
|
(defun svn-status-commit ()
|
||||||
"Commit selected files.
|
"Commit selected files.
|
||||||
|
@ -4332,7 +4436,11 @@ static char * data[] = {
|
||||||
|
|
||||||
(defsubst svn-status-in-vc-mode? ()
|
(defsubst svn-status-in-vc-mode? ()
|
||||||
"Is vc-svn active?"
|
"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
|
(when svn-status-fancy-file-state-in-modeline
|
||||||
(defadvice vc-find-file-hook (after svn-status-vc-svn-find-file-hook activate)
|
(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)))
|
(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 ()
|
(defun svn-status-property-set-keyword-list ()
|
||||||
"Edit the svn:keywords property on the marked files."
|
"Edit the svn:keywords property on the marked files."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
@ -4943,22 +5062,22 @@ Commands:
|
||||||
(set-buffer (get-buffer "*svn-property-edit*"))
|
(set-buffer (get-buffer "*svn-property-edit*"))
|
||||||
(when (fboundp 'set-buffer-file-coding-system)
|
(when (fboundp 'set-buffer-file-coding-system)
|
||||||
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
||||||
(setq svn-status-temp-file-to-remove
|
(let ((svn-propedit-file-name (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix)))
|
||||||
(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))
|
(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
|
(when svn-status-propedit-file-list ; there are files to change properties
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file ""
|
(svn-status-create-arg-file svn-status-temp-arg-file ""
|
||||||
svn-status-propedit-file-list "")
|
svn-status-propedit-file-list "")
|
||||||
(setq svn-status-propedit-file-list nil)
|
(setq svn-status-propedit-file-list nil)
|
||||||
(svn-run async t 'propset "propset"
|
(svn-run async t 'propset "propset"
|
||||||
svn-status-propedit-property-name
|
svn-status-propedit-property-name
|
||||||
"--targets" svn-status-temp-arg-file
|
"--targets" svn-status-temp-arg-file
|
||||||
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
||||||
'("--encoding" "UTF-8"))
|
'("--encoding" "UTF-8"))
|
||||||
"-F" (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix))
|
"-F" svn-propedit-file-name)
|
||||||
(unless async (svn-status-remove-temp-file-maybe)))
|
(unless async (svn-status-remove-temp-file-maybe)))
|
||||||
(when svn-status-pre-propedit-window-configuration
|
(when svn-status-pre-propedit-window-configuration
|
||||||
(set-window-configuration svn-status-pre-propedit-window-configuration)))
|
(set-window-configuration svn-status-pre-propedit-window-configuration)))))
|
||||||
|
|
||||||
(defun svn-prop-edit-svn-diff (arg)
|
(defun svn-prop-edit-svn-diff (arg)
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
|
@ -5050,41 +5169,41 @@ Commands:
|
||||||
"Finish editing the log message and run svn commit."
|
"Finish editing the log message and run svn commit."
|
||||||
(interactive)
|
(interactive)
|
||||||
(svn-status-save-some-buffers)
|
(svn-status-save-some-buffers)
|
||||||
(save-excursion
|
(let ((svn-logedit-file-name))
|
||||||
(set-buffer (get-buffer svn-log-edit-buffer-name))
|
(save-excursion
|
||||||
(when svn-log-edit-insert-files-to-commit
|
(set-buffer (get-buffer svn-log-edit-buffer-name))
|
||||||
(svn-log-edit-remove-comment-lines))
|
(when svn-log-edit-insert-files-to-commit
|
||||||
(when (fboundp 'set-buffer-file-coding-system)
|
(svn-log-edit-remove-comment-lines))
|
||||||
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
(when (fboundp 'set-buffer-file-coding-system)
|
||||||
(when (or svn-log-edit-update-log-entry svn-status-files-to-commit)
|
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
||||||
(setq svn-status-temp-file-to-remove
|
(when (or svn-log-edit-update-log-entry svn-status-files-to-commit)
|
||||||
(concat svn-status-temp-dir "svn-log-edit.txt" svn-temp-suffix))
|
(setq svn-log-edit-file-name (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))
|
(setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-log-edit-file-name))
|
||||||
(bury-buffer))
|
(write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1))
|
||||||
(if svn-log-edit-update-log-entry
|
(bury-buffer))
|
||||||
(when (y-or-n-p "Update the log entry? ")
|
(if svn-log-edit-update-log-entry
|
||||||
;; svn propset svn:log --revprop -r11672 -F file
|
(when (y-or-n-p "Update the log entry? ")
|
||||||
(svn-run nil t 'propset "propset" "svn:log" "--revprop"
|
;; svn propset svn:log --revprop -r11672 -F file
|
||||||
(concat "-r" svn-log-edit-update-log-entry)
|
(svn-run nil t 'propset "propset" "svn:log" "--revprop"
|
||||||
"-F" svn-status-temp-file-to-remove)
|
(concat "-r" svn-log-edit-update-log-entry)
|
||||||
(save-excursion
|
"-F" svn-log-edit-file-name)
|
||||||
(set-buffer svn-process-buffer-name)
|
(save-excursion
|
||||||
(message "%s" (buffer-substring (point-min) (- (point-max) 1)))))
|
(set-buffer svn-process-buffer-name)
|
||||||
(when svn-status-files-to-commit ; there are files to commit
|
(message "%s" (buffer-substring (point-min) (- (point-max) 1)))))
|
||||||
(setq svn-status-operated-on-dot
|
(when svn-status-files-to-commit ; there are files to commit
|
||||||
(and (= 1 (length svn-status-files-to-commit))
|
(setq svn-status-operated-on-dot
|
||||||
(string= "." (svn-status-line-info->filename (car svn-status-files-to-commit)))))
|
(and (= 1 (length svn-status-files-to-commit))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file ""
|
(string= "." (svn-status-line-info->filename (car svn-status-files-to-commit)))))
|
||||||
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"
|
(svn-run t t 'commit "commit"
|
||||||
(unless svn-status-recursive-commit "--non-recursive")
|
(unless svn-status-recursive-commit "--non-recursive")
|
||||||
"--targets" svn-status-temp-arg-file
|
"--targets" svn-status-temp-arg-file
|
||||||
"-F" svn-status-temp-file-to-remove
|
"-F" svn-log-edit-file-name
|
||||||
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
||||||
'("--encoding" "UTF-8"))
|
'("--encoding" "UTF-8"))
|
||||||
svn-status-default-commit-arguments))
|
svn-status-default-commit-arguments))
|
||||||
(set-window-configuration svn-status-pre-commit-window-configuration)
|
(set-window-configuration svn-status-pre-commit-window-configuration)
|
||||||
(message "svn-log editing done")))
|
(message "svn-log editing done"))))
|
||||||
|
|
||||||
(defun svn-log-edit-svn-diff (arg)
|
(defun svn-log-edit-svn-diff (arg)
|
||||||
"Show the diff we are about to commit.
|
"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))))
|
(let ((buf-size (- (point-max) (point-min))))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (point-min))
|
(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"
|
(insert "## File(s) to commit"
|
||||||
(if svn-status-recursive-commit " recursively" "") ":\n")
|
(if svn-status-recursive-commit " recursively" "") ":\n")
|
||||||
(let ((file-list svn-status-files-to-commit))
|
(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."
|
"Mark the revision at point to be used as diff against revision."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((start-pos)
|
(let ((start-pos)
|
||||||
(point-at-partner-rev))
|
(point-at-partner-rev)
|
||||||
|
(overlay))
|
||||||
(dolist (ov (overlays-in (point-min) (point-max)))
|
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||||
(when (overlay-get ov 'svn-log-partner-revision)
|
(when (overlay-get ov 'svn-log-partner-revision)
|
||||||
(setq point-at-partner-rev (and (>= (point) (overlay-start ov))
|
(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."
|
"Show statistics for the current blame buffer."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((author-map (make-hash-table :test 'equal))
|
(let ((author-map (make-hash-table :test 'equal))
|
||||||
|
(revision-map (make-hash-table :test 'equal))
|
||||||
|
(rev-info)
|
||||||
(author-list)
|
(author-list)
|
||||||
(author))
|
(author)
|
||||||
|
(revision-list)
|
||||||
|
(revision))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(while (not (eobp))
|
(while (not (eobp))
|
||||||
(dolist (ov (overlays-in (svn-point-at-bol) (line-end-position)))
|
(dolist (ov (overlays-in (svn-point-at-bol) (line-end-position)))
|
||||||
(when (overlay-get ov 'svn-blame-line-info)
|
(when (overlay-get ov 'svn-blame-line-info)
|
||||||
(setq author (cadr (overlay-get ov 'rev-info)))
|
(setq rev-info (overlay-get ov 'rev-info))
|
||||||
(svn-puthash author
|
(setq author (cadr rev-info))
|
||||||
(+ (gethash author author-map 0) 1)
|
(setq revision (string-to-number (car rev-info)))
|
||||||
author-map)))
|
(svn-puthash author (+ (gethash author author-map 0) 1) author-map)
|
||||||
|
(svn-puthash revision (+ (gethash revision revision-map 0) 1) revision-map)))
|
||||||
(forward-line))
|
(forward-line))
|
||||||
(maphash '(lambda (key value) (add-to-list 'author-list (list key value))) author-map)
|
(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))))
|
(pop-to-buffer (get-buffer-create (replace-regexp-in-string "svn-blame:" "svn-blame-statistics:" (buffer-name))))
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
|
(insert (propertize "Authors:\n" 'face 'font-lock-function-name-face))
|
||||||
(dolist (line (sort author-list '(lambda (v1 v2) (> (cadr v1) (cadr v2)))))
|
(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 (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)))))
|
(goto-char (point-min)))))
|
||||||
|
|
||||||
(defun svn-blame-highlight-author-field (ov)
|
(defun svn-blame-highlight-author-field (ov)
|
||||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
||||||
1a53a0e72bee0bf814f4da83a9b6a636 subversion-1.6.5.tar.bz2
|
75419159b50661092c4137449940b5cc subversion-1.6.11.tar.bz2
|
||||||
|
|
|
@ -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-----
|
|
|
@ -1,7 +0,0 @@
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAko5swkACgkQCwOubk4kUXwbpQCfT7+XfNkX8nb2HAO0og5Tn8Xu
|
|
||||||
9ukAoPIKZ/+taVMeiPXRC8AX0x24niOr
|
|
||||||
=1vmx
|
|
||||||
-----END PGP SIGNATURE-----
|
|
|
@ -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-----
|
|
|
@ -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-----
|
|
|
@ -0,0 +1,273 @@
|
||||||
|
diff -up svn2cl-0.11/svn2cl.xsl~ svn2cl-0.11/svn2cl.xsl
|
||||||
|
--- svn2cl-0.11/svn2cl.xsl~ 2008-12-21 17:41:20.000000000 +0200
|
||||||
|
+++ svn2cl-0.11/svn2cl.xsl 2009-11-02 22:29:34.000000000 +0200
|
||||||
|
@@ -55,12 +55,6 @@
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
-<!DOCTYPE xsl:stylesheet [
|
||||||
|
- <!ENTITY tab "	">
|
||||||
|
- <!ENTITY newl "&#xA;">
|
||||||
|
- <!ENTITY space " ">
|
||||||
|
-]>
|
||||||
|
-
|
||||||
|
<xsl:stylesheet
|
||||||
|
version="1.0"
|
||||||
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
@@ -119,7 +113,7 @@
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<!-- add newlines at the end of the changelog -->
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- format one entry from the log -->
|
||||||
|
@@ -149,33 +143,33 @@
|
||||||
|
<xsl:if test="($prevdate!=$date) or ($prevauthor!=$author)">
|
||||||
|
<!-- add newline -->
|
||||||
|
<xsl:if test="not(position()=1)">
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<!-- date -->
|
||||||
|
<xsl:value-of select="$date" />
|
||||||
|
<!-- two spaces -->
|
||||||
|
- <xsl:text>&space;&space;</xsl:text>
|
||||||
|
+ <xsl:text>  </xsl:text>
|
||||||
|
<!-- author's name -->
|
||||||
|
<xsl:apply-templates select="author" />
|
||||||
|
<!-- two newlines -->
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
- <xsl:if test="$separate-daylogs!='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
+ <xsl:if test="$separate-daylogs!='yes'"><xsl:text> </xsl:text></xsl:if>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:when>
|
||||||
|
<!-- write the log header -->
|
||||||
|
<xsl:otherwise>
|
||||||
|
<!-- add newline -->
|
||||||
|
<xsl:if test="not(position()=1)">
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<!-- date -->
|
||||||
|
<xsl:apply-templates select="date" />
|
||||||
|
<!-- two spaces -->
|
||||||
|
- <xsl:text>&space;&space;</xsl:text>
|
||||||
|
+ <xsl:text>  </xsl:text>
|
||||||
|
<!-- author's name -->
|
||||||
|
<xsl:apply-templates select="author" />
|
||||||
|
<!-- two newlines -->
|
||||||
|
- <xsl:text>&newl;&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<!-- get paths string -->
|
||||||
|
@@ -187,7 +181,7 @@
|
||||||
|
<xsl:if test="$include-rev='yes'">
|
||||||
|
<xsl:text>[r</xsl:text>
|
||||||
|
<xsl:value-of select="@revision" />
|
||||||
|
- <xsl:text>]&space;</xsl:text>
|
||||||
|
+ <xsl:text>] </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<!-- trim trailing newlines -->
|
||||||
|
@@ -195,7 +189,7 @@
|
||||||
|
<!-- add a line break before the log message -->
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$breakbeforemsg='yes'">
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="number($breakbeforemsg)>0">
|
||||||
|
<xsl:call-template name="newlines">
|
||||||
|
@@ -208,14 +202,14 @@
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:variable>
|
||||||
|
<!-- add newline here if separate-daylogs is in effect -->
|
||||||
|
- <xsl:if test="$groupbyday='yes' and $separate-daylogs='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
|
||||||
|
+ <xsl:if test="$groupbyday='yes' and $separate-daylogs='yes'"><xsl:text> </xsl:text></xsl:if>
|
||||||
|
<!-- first line is indented (other indents are done in wrap template) -->
|
||||||
|
- <xsl:text>&tab;*&space;</xsl:text>
|
||||||
|
+ <xsl:text>	* </xsl:text>
|
||||||
|
<!-- set up the text to wrap -->
|
||||||
|
<xsl:variable name="txt">
|
||||||
|
<xsl:value-of select="$rev" />
|
||||||
|
<xsl:if test="$paths!=''">
|
||||||
|
- <xsl:value-of select="concat($paths,':&space;')" />
|
||||||
|
+ <xsl:value-of select="concat($paths,': ')" />
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:value-of select="$msg" />
|
||||||
|
</xsl:variable>
|
||||||
|
@@ -232,7 +226,7 @@
|
||||||
|
<xsl:value-of select="substring($date,1,10)" />
|
||||||
|
<!-- output time part -->
|
||||||
|
<xsl:if test="$groupbyday!='yes'">
|
||||||
|
- <xsl:text>&space;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<xsl:value-of select="substring($date,12,5)" />
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
@@ -306,7 +300,7 @@
|
||||||
|
<xsl:sort select="normalize-space(.)" data-type="text" />
|
||||||
|
<!-- unless we are the first entry, add a comma -->
|
||||||
|
<xsl:if test="not(position()=1)">
|
||||||
|
- <xsl:text>,&space;</xsl:text>
|
||||||
|
+ <xsl:text>, </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<!-- print the path name -->
|
||||||
|
<xsl:call-template name="printpath">
|
||||||
|
@@ -324,7 +318,7 @@
|
||||||
|
<xsl:sort select="normalize-space(.)" data-type="text" />
|
||||||
|
<!-- unless we are the first entry, add a comma -->
|
||||||
|
<xsl:if test="not(position()=1)">
|
||||||
|
- <xsl:text>,&space;</xsl:text>
|
||||||
|
+ <xsl:text>, </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<!-- print the path name -->
|
||||||
|
<xsl:value-of select="normalize-space(.)" />
|
||||||
|
@@ -382,23 +376,23 @@
|
||||||
|
<xsl:param name="txt" />
|
||||||
|
<xsl:variable name="normtxt" select="normalize-space($txt)" />
|
||||||
|
<xsl:choose>
|
||||||
|
- <xsl:when test="contains($txt,'&newl;')">
|
||||||
|
+ <xsl:when test="contains($txt,' ')">
|
||||||
|
<!-- text contains newlines, do the first line -->
|
||||||
|
<xsl:call-template name="wrap">
|
||||||
|
- <xsl:with-param name="txt" select="substring-before($txt,'&newl;')" />
|
||||||
|
+ <xsl:with-param name="txt" select="substring-before($txt,' ')" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<!-- print tab -->
|
||||||
|
- <xsl:text>&tab;&space;&space;</xsl:text>
|
||||||
|
+ <xsl:text>	  </xsl:text>
|
||||||
|
<!-- wrap the rest of the text -->
|
||||||
|
<xsl:call-template name="wrap">
|
||||||
|
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;')" />
|
||||||
|
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="(string-length($normtxt) < (($linelen)-9)) or not(contains($normtxt,' '))">
|
||||||
|
<!-- this is easy, nothing to do -->
|
||||||
|
<xsl:value-of select="$normtxt" />
|
||||||
|
<!-- add newline -->
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<!-- find the first line -->
|
||||||
|
@@ -420,7 +414,7 @@
|
||||||
|
<!-- print line -->
|
||||||
|
<xsl:value-of select="$line" />
|
||||||
|
<!-- print newline and tab -->
|
||||||
|
- <xsl:text>&newl;&tab;&space;&space;</xsl:text>
|
||||||
|
+ <xsl:text> 	  </xsl:text>
|
||||||
|
<!-- wrap the rest of the text -->
|
||||||
|
<xsl:call-template name="wrap">
|
||||||
|
<xsl:with-param name="txt" select="normalize-space(substring($normtxt,string-length($line)+1))" />
|
||||||
|
@@ -449,26 +443,26 @@
|
||||||
|
<xsl:param name="txt" />
|
||||||
|
<xsl:choose>
|
||||||
|
<!-- find starting newlines -->
|
||||||
|
- <xsl:when test="substring($txt,1,1) = '&newl;'">
|
||||||
|
+ <xsl:when test="substring($txt,1,1) = ' '">
|
||||||
|
<xsl:call-template name="trim-newln">
|
||||||
|
<xsl:with-param name="txt" select="substring($txt,2)" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<!-- find trailing newlines -->
|
||||||
|
- <xsl:when test="substring($txt,string-length($txt),1) = '&newl;'">
|
||||||
|
+ <xsl:when test="substring($txt,string-length($txt),1) = ' '">
|
||||||
|
<xsl:call-template name="trim-newln">
|
||||||
|
<xsl:with-param name="txt" select="substring($txt,1,string-length($txt)-1)" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<!-- if the message has paragrapgs, find the first one -->
|
||||||
|
- <xsl:when test="$reparagraph='yes' and contains($txt,'&newl;&newl;')">
|
||||||
|
+ <xsl:when test="$reparagraph='yes' and contains($txt,' ')">
|
||||||
|
<!-- remove newlines from first paragraph -->
|
||||||
|
- <xsl:value-of select="normalize-space(substring-before($txt,'&newl;&newl;'))" />
|
||||||
|
+ <xsl:value-of select="normalize-space(substring-before($txt,' '))" />
|
||||||
|
<!-- paragraph separator -->
|
||||||
|
- <xsl:text>&newl;&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<!-- do the rest of the text -->
|
||||||
|
<xsl:call-template name="trim-newln">
|
||||||
|
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;&newl;')" />
|
||||||
|
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<!-- remove more single newlines -->
|
||||||
|
@@ -485,7 +479,7 @@
|
||||||
|
<!-- insert a number of newlines -->
|
||||||
|
<xsl:template name="newlines">
|
||||||
|
<xsl:param name="count" />
|
||||||
|
- <xsl:text>&newl;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<xsl:if test="$count>1">
|
||||||
|
<xsl:call-template name="newlines">
|
||||||
|
<xsl:with-param name="count" select="($count)-1" />
|
||||||
|
diff -up svn2cl-0.11/svn2html.xsl~ svn2cl-0.11/svn2html.xsl
|
||||||
|
--- svn2cl-0.11/svn2html.xsl~ 2008-12-21 17:41:20.000000000 +0200
|
||||||
|
+++ svn2cl-0.11/svn2html.xsl 2009-11-02 22:30:11.000000000 +0200
|
||||||
|
@@ -47,11 +47,6 @@
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
-<!DOCTYPE xsl:stylesheet [
|
||||||
|
- <!ENTITY newl "&#xA;">
|
||||||
|
- <!ENTITY space " ">
|
||||||
|
-]>
|
||||||
|
-
|
||||||
|
<xsl:stylesheet
|
||||||
|
version="1.0"
|
||||||
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
|
@@ -134,7 +129,7 @@
|
||||||
|
<li class="changelog_entry">
|
||||||
|
<!-- date -->
|
||||||
|
<span class="changelog_date"><xsl:value-of select="$date" /></span>
|
||||||
|
- <xsl:text>&space;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<!-- author's name -->
|
||||||
|
<span class="changelog_author"><xsl:apply-templates select="author" /></span>
|
||||||
|
</li>
|
||||||
|
@@ -145,7 +140,7 @@
|
||||||
|
<li class="changelog_entry">
|
||||||
|
<!-- date -->
|
||||||
|
<span class="changelog_date"><xsl:apply-templates select="date" /></span>
|
||||||
|
- <xsl:text>&space;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<!-- author's name -->
|
||||||
|
<span class="changelog_author"><xsl:apply-templates select="author" /></span>
|
||||||
|
</li>
|
||||||
|
@@ -167,10 +162,10 @@
|
||||||
|
<span class="changelog_revision">
|
||||||
|
<a id="r{@revision}" href="{$revlink}">[r<xsl:value-of select="@revision" />]</a>
|
||||||
|
</span>
|
||||||
|
- <xsl:text>&space;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<!-- get paths string -->
|
||||||
|
<span class="changelog_files"><xsl:apply-templates select="paths" /></span>
|
||||||
|
- <xsl:text>&space;</xsl:text>
|
||||||
|
+ <xsl:text> </xsl:text>
|
||||||
|
<!-- get message text -->
|
||||||
|
<xsl:variable name="msg">
|
||||||
|
<xsl:call-template name="trim-newln">
|
||||||
|
@@ -189,14 +184,14 @@
|
||||||
|
<xsl:template name="newlinestobr">
|
||||||
|
<xsl:param name="txt" />
|
||||||
|
<xsl:choose>
|
||||||
|
- <xsl:when test="contains($txt,'&newl;')">
|
||||||
|
+ <xsl:when test="contains($txt,' ')">
|
||||||
|
<!-- text contains newlines, do the first line -->
|
||||||
|
- <xsl:value-of select="substring-before($txt,'&newl;')" />
|
||||||
|
+ <xsl:value-of select="substring-before($txt,' ')" />
|
||||||
|
<!-- print new line -->
|
||||||
|
<br />
|
||||||
|
<!-- wrap the rest of the text -->
|
||||||
|
<xsl:call-template name="newlinestobr">
|
||||||
|
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;')" />
|
||||||
|
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
|
@ -3,10 +3,10 @@ The first half of this is certainly upstream-worthy, but the second half is pres
|
||||||
some Fedora-specific KDE packaging thing. It's not obvious how to get
|
some Fedora-specific KDE packaging thing. It's not obvious how to get
|
||||||
kde4-config to report the directory which contains the .so files.
|
kde4-config to report the directory which contains the .so files.
|
||||||
|
|
||||||
--- subversion-1.6.2/build/ac-macros/kwallet.m4.kwallet
|
--- subversion-1.6.6/build/ac-macros/kwallet.m4.kwallet
|
||||||
+++ subversion-1.6.2/build/ac-macros/kwallet.m4
|
+++ subversion-1.6.6/build/ac-macros/kwallet.m4
|
||||||
@@ -45,14 +45,14 @@ AC_DEFUN(SVN_LIB_KWALLET,
|
@@ -47,14 +47,14 @@ AC_DEFUN(SVN_LIB_KWALLET,
|
||||||
CPPFLAGS="$CPPFLAGS $d"
|
fi
|
||||||
done
|
done
|
||||||
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
|
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
|
||||||
- kde_dir="`$kde4_config --prefix`"
|
- kde_dir="`$kde4_config --prefix`"
|
||||||
|
@ -19,7 +19,7 @@ kde4-config to report the directory which contains the .so files.
|
||||||
LIBS="$LIBS $SVN_KWALLET_LIBS"
|
LIBS="$LIBS $SVN_KWALLET_LIBS"
|
||||||
qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
|
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$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_LANG(C++)
|
||||||
AC_LINK_IFELSE([
|
AC_LINK_IFELSE([
|
||||||
#include <kwallet.h>
|
#include <kwallet.h>
|
|
@ -16,21 +16,23 @@
|
||||||
|
|
||||||
Summary: A Modern Concurrent Version Control System
|
Summary: A Modern Concurrent Version Control System
|
||||||
Name: subversion
|
Name: subversion
|
||||||
Version: 1.6.5
|
Version: 1.6.11
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
License: ASL 1.1
|
License: ASL 1.1
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: http://subversion.tigris.org/
|
URL: http://subversion.apache.org/
|
||||||
Source0: http://subversion.tigris.org/downloads/subversion-%{version}.tar.bz2
|
Source0: http://subversion.tigris.org/downloads/subversion-%{version}.tar.bz2
|
||||||
Source1: subversion.conf
|
Source1: subversion.conf
|
||||||
Source3: filter-requires.sh
|
Source3: filter-requires.sh
|
||||||
Source4: http://www.xsteve.at/prg/emacs/psvn.el
|
Source4: http://www.xsteve.at/prg/emacs/psvn.el
|
||||||
Source5: psvn-init.el
|
Source5: psvn-init.el
|
||||||
|
# http://bugs.debian.org/546990
|
||||||
|
Patch0: subversion-1.6.5-newlines.patch
|
||||||
Patch2: subversion-1.6.0-deplibs.patch
|
Patch2: subversion-1.6.0-deplibs.patch
|
||||||
Patch3: subversion-1.6.1-rpath.patch
|
Patch3: subversion-1.6.1-rpath.patch
|
||||||
Patch6: subversion-1.6.0-pie.patch
|
Patch6: subversion-1.6.0-pie.patch
|
||||||
Patch7: subversion-1.1.3-java.patch
|
Patch7: subversion-1.1.3-java.patch
|
||||||
Patch8: subversion-1.6.2-kwallet.patch
|
Patch8: subversion-1.6.6-kwallet.patch
|
||||||
BuildRequires: autoconf, libtool, python, python-devel, texinfo, which
|
BuildRequires: autoconf, libtool, python, python-devel, texinfo, which
|
||||||
BuildRequires: db4-devel >= 4.1.25, swig >= 1.3.24, gettext
|
BuildRequires: db4-devel >= 4.1.25, swig >= 1.3.24, gettext
|
||||||
BuildRequires: apr-devel >= 1.3.0, apr-util-devel >= 1.3.0
|
BuildRequires: apr-devel >= 1.3.0, apr-util-devel >= 1.3.0
|
||||||
|
@ -144,6 +146,9 @@ constructs found in different places.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
cd contrib/client-side/svn2cl
|
||||||
|
%patch0 -p1 -b .newlines
|
||||||
|
cd ../../..
|
||||||
%patch2 -p1 -b .deplibs
|
%patch2 -p1 -b .deplibs
|
||||||
%patch3 -p1 -b .rpath
|
%patch3 -p1 -b .rpath
|
||||||
#patch6 -p1 -b .pie
|
#patch6 -p1 -b .pie
|
||||||
|
@ -158,13 +163,15 @@ sed -i -e 's|-fpie|-fPIE|g' Makefile.in
|
||||||
sed -i -e 's|^XSL="$dir/|XSL="%{_datadir}/svn2cl/|' \
|
sed -i -e 's|^XSL="$dir/|XSL="%{_datadir}/svn2cl/|' \
|
||||||
contrib/client-side/svn2cl/svn2cl.sh
|
contrib/client-side/svn2cl/svn2cl.sh
|
||||||
# Sanity check svn2cl_version
|
# Sanity check svn2cl_version
|
||||||
v=$(contrib/client-side/svn2cl/svn2cl.sh -V | head -n 1 | awk '{ print $2 }')
|
v=$(contrib/client-side/svn2cl/svn2cl.sh -V | sed -n '1{s/.* //;p;}')
|
||||||
if [ "$v" != "%{svn2cl_version}" ]; then
|
if [ "$v" != "%{svn2cl_version}" ]; then
|
||||||
echo -n "ERROR: svn2cl_version not up to date in specfile: "
|
echo -n "ERROR: svn2cl_version not up to date in specfile: "
|
||||||
echo "'$v' <> '%{svn2cl_version}'"
|
echo "'$v' <> '%{svn2cl_version}'"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mv tools/client-side/bash_completion .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Regenerate the buildsystem, so that:
|
# Regenerate the buildsystem, so that:
|
||||||
# 1) patches applied to configure.in take effect
|
# 1) patches applied to configure.in take effect
|
||||||
|
@ -187,7 +194,8 @@ export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS"
|
||||||
--disable-static --with-sasl=%{_prefix} \
|
--disable-static --with-sasl=%{_prefix} \
|
||||||
--disable-neon-version-check \
|
--disable-neon-version-check \
|
||||||
--with-gnome-keyring \
|
--with-gnome-keyring \
|
||||||
--with-kwallet
|
--with-kwallet \
|
||||||
|
--with-berkeley-db || (cat config.log; exit 1)
|
||||||
make %{?_smp_mflags} all
|
make %{?_smp_mflags} all
|
||||||
make swig-py swig-py-lib %{swigdirs}
|
make swig-py swig-py-lib %{swigdirs}
|
||||||
make swig-pl swig-pl-lib swig-rb swig-rb-lib
|
make swig-pl swig-pl-lib swig-rb swig-rb-lib
|
||||||
|
@ -254,10 +262,11 @@ install -m 644 $RPM_SOURCE_DIR/psvn-init.el \
|
||||||
# Rename authz_svn INSTALL doc for docdir
|
# Rename authz_svn INSTALL doc for docdir
|
||||||
ln -f subversion/mod_authz_svn/INSTALL mod_authz_svn-INSTALL
|
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/{
|
sed -i "/^dependency_libs/{
|
||||||
s, -l[^ ']*, ,g;
|
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
|
}" $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||||
|
|
||||||
# Install svn2cl
|
# Install svn2cl
|
||||||
|
@ -269,7 +278,7 @@ install -Dpm 644 svn2cl.1 $RPM_BUILD_ROOT%{_mandir}/man1/svn2cl.1
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# Install bash completion
|
# Install bash completion
|
||||||
install -Dpm 644 tools/client-side/bash_completion \
|
install -Dpm 644 bash_completion \
|
||||||
$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/%{name}
|
$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/%{name}
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
@ -313,8 +322,10 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||||
%doc contrib/client-side/svnmerge/*.{README,py}
|
%doc contrib/client-side/svnmerge/*.{README,py}
|
||||||
%doc contrib/client-side/wcgrep
|
%doc contrib/client-side/wcgrep
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
|
%exclude %{_bindir}/svn2cl
|
||||||
%{_libdir}/libsvn_*.so.*
|
%{_libdir}/libsvn_*.so.*
|
||||||
%{_mandir}/man*/*
|
%{_mandir}/man*/*
|
||||||
|
%exclude %{_mandir}/man1/svn2cl.1*
|
||||||
%{python_sitearch}/svn
|
%{python_sitearch}/svn
|
||||||
%{python_sitearch}/libsvn
|
%{python_sitearch}/libsvn
|
||||||
%{_datadir}/emacs/site-lisp/*.el
|
%{_datadir}/emacs/site-lisp/*.el
|
||||||
|
@ -380,6 +391,38 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||||
%{_mandir}/man1/svn2cl.1*
|
%{_mandir}/man1/svn2cl.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Apr 17 2010 Joe Orton <jorton@redhat.com> - 1.6.11-1
|
||||||
|
- update to 1.6.11
|
||||||
|
|
||||||
|
* Sat Feb 13 2010 Joe Orton <jorton@redhat.com> - 1.6.9-2
|
||||||
|
- fix detection of libkdecore
|
||||||
|
|
||||||
|
* Mon Feb 8 2010 Joe Orton <jorton@redhat.com> - 1.6.9-1
|
||||||
|
- update to 1.6.9 (#561810)
|
||||||
|
- fix comments in subversion.conf (#551484)
|
||||||
|
- update to psvn.el r40299
|
||||||
|
|
||||||
|
* Mon Jan 25 2010 Ville Skyttä <ville.skytta@iki.fi> - 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.
|
||||||
|
|
||||||
|
* Mon Dec 7 2009 Stepan Kasal <skasal@redhat.com> - 1.6.6-4
|
||||||
|
- rebuild against perl 5.10.1
|
||||||
|
|
||||||
|
* Thu Nov 26 2009 Joe Orton <jorton@redhat.com> - 1.6.6-3
|
||||||
|
- rebuild for new db4
|
||||||
|
- trim libsvn_* from dependency_libs in *.la
|
||||||
|
|
||||||
|
* Wed Nov 25 2009 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.6.6-2
|
||||||
|
- rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI)
|
||||||
|
|
||||||
|
* Sun Nov 8 2009 Joe Orton <jorton@redhat.com> - 1.6.6-1
|
||||||
|
- update to 1.6.6
|
||||||
|
|
||||||
|
* Mon Nov 2 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.5-3
|
||||||
|
- Apply svn2cl upstream patch to fix newline issues with libxml2 2.7.4+,
|
||||||
|
see http://bugs.debian.org/546990 for details.
|
||||||
|
|
||||||
* Sat Sep 19 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.5-2
|
* Sat Sep 19 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.5-2
|
||||||
- Ship svn2cl and bash completion (#496456).
|
- Ship svn2cl and bash completion (#496456).
|
||||||
- Add %%defattr to -gnome and -kde.
|
- Add %%defattr to -gnome and -kde.
|
||||||
|
|
Loading…
Reference in New Issue