Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1ffd880319 | ||
|
30b78cbd38 | ||
|
67de2a23a6 | ||
|
9ed68e6f0b | ||
|
e4d05ada55 | ||
|
d70e5cbaae | ||
|
7ad4c57b3e | ||
|
186f09165d | ||
|
677efb833a | ||
|
b890c23a06 | ||
|
6582f04ca6 | ||
|
7070cb2024 | ||
|
6f0019a636 |
0
.cvsignore → .gitignore
vendored
0
.cvsignore → .gitignore
vendored
22
Makefile
22
Makefile
@ -1,22 +0,0 @@
|
|||||||
# Makefile for source rpm: subversion
|
|
||||||
# $Id: Makefile,v 1.3 2004/09/30 10:49:48 jorton Exp $
|
|
||||||
NAME := subversion
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
UPSTREAM_CHECKS := asc
|
|
||||||
|
|
||||||
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
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attempt a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(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 @@
|
|||||||
32014fe70397357fa1e0ef8f937a0232 subversion-1.6.1.tar.gz
|
75419159b50661092c4137449940b5cc subversion-1.6.11.tar.bz2
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
Libraries should be linked with -rpath $libdir but programs should not.
|
|
||||||
Doing so for the latter means that a redundant RPATH entry of $libdir
|
|
||||||
will end up in the binaries.
|
|
||||||
|
|
||||||
The redundant RPATH can also cause obscure build failures by causing
|
|
||||||
in-build binaries to pick up libraries from the system environment,
|
|
||||||
which libtool will otherwise avoid.
|
|
||||||
|
|
||||||
--- subversion-1.6.0/build/generator/gen_base.py.rpath
|
|
||||||
+++ subversion-1.6.0/build/generator/gen_base.py
|
|
||||||
@@ -455,6 +455,9 @@ class TargetLib(TargetLinked):
|
|
||||||
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
|
|
||||||
self.msvc_export = options.get('msvc-export', '').split()
|
|
||||||
|
|
||||||
+ ### hmm. this is Makefile-specific
|
|
||||||
+ self.link_cmd = '$(LINK_LIB)'
|
|
||||||
+
|
|
||||||
class TargetApacheMod(TargetLib):
|
|
||||||
|
|
||||||
def __init__(self, name, options, gen_obj):
|
|
||||||
--- subversion-1.6.0/Makefile.in.rpath
|
|
||||||
+++ subversion-1.6.0/Makefile.in
|
|
||||||
@@ -184,6 +184,7 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
|
|
||||||
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
|
|
||||||
COMPILE_JAVAHL_JAVAH = $(JAVAH)
|
|
||||||
|
|
||||||
+LINK_LIB = $(LINK) -rpath $(libdir)
|
|
||||||
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
|
|
||||||
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAknClnUACgkQCwOubk4kUXzzrwCeP6g1IJ5tC/dcTaSon+AFeH0V
|
|
||||||
zNYAoKY0ZhzX0oLmSdNDeZb5IbE0/BMl
|
|
||||||
=cV+A
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (FreeBSD)
|
|
||||||
|
|
||||||
iEYEABECAAYFAknCqHAACgkQ/P1jBZgh97LYHQCdFFNSRiPWNFaHf00fzTUJRVHI
|
|
||||||
ZdwAn0SIV4WEu2ek8PWYjY9Dfs1SOgEo
|
|
||||||
=DXbN
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAknCqzUACgkQokEGqRcG/W6M6wCcDH7uBuRCRRSp/MozjJJ+P1RZ
|
|
||||||
l0sAn2pLD/nyYTKMofWAG1Ce5B6rAWMg
|
|
||||||
=rhHR
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAknDRyEACgkQvJ27E9sAokjuQACfSPnJdzy7XV9PuFTl7y9R4nCV
|
|
||||||
fawAnjZdVWUBYwi6boWYlltmxHPDVk1O
|
|
||||||
=LYDm
|
|
||||||
-----END PGP SIGNATURE-----
|
|
54
subversion-1.6.1-rpath.patch
Normal file
54
subversion-1.6.1-rpath.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
Libraries should be linked with -rpath $libdir but programs should not.
|
||||||
|
Doing so for the latter means that a redundant RPATH entry of $libdir
|
||||||
|
will end up in the binaries.
|
||||||
|
|
||||||
|
The redundant RPATH can also cause obscure build failures by causing
|
||||||
|
in-build binaries to pick up libraries from the system environment,
|
||||||
|
which libtool will otherwise avoid.
|
||||||
|
|
||||||
|
--- subversion-1.6.1/build.conf.rpath
|
||||||
|
+++ subversion-1.6.1/build.conf
|
||||||
|
@@ -472,7 +472,7 @@ type = swig_lib
|
||||||
|
lang = python
|
||||||
|
path = subversion/bindings/swig/python/libsvn_swig_py
|
||||||
|
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr
|
||||||
|
-link-cmd = $(LINK) $(SWIG_PY_LIBS)
|
||||||
|
+link-cmd = $(LINK_LIB) $(SWIG_PY_LIBS)
|
||||||
|
install = swig-py-lib
|
||||||
|
# need special build rule to include -DSWIGPYTHON
|
||||||
|
compile-cmd = $(COMPILE_SWIG_PY)
|
||||||
|
@@ -495,7 +495,7 @@ type = swig_lib
|
||||||
|
lang = ruby
|
||||||
|
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
|
||||||
|
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr
|
||||||
|
-link-cmd = $(LINK) $(SWIG_RB_LIBS)
|
||||||
|
+link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS)
|
||||||
|
install = swig-rb-lib
|
||||||
|
# need special build rule to include
|
||||||
|
compile-cmd = $(COMPILE_SWIG_RB)
|
||||||
|
--- subversion-1.6.1/build/generator/gen_base.py.rpath
|
||||||
|
+++ subversion-1.6.1/build/generator/gen_base.py
|
||||||
|
@@ -455,6 +455,10 @@ class TargetLib(TargetLinked):
|
||||||
|
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
|
||||||
|
self.msvc_export = options.get('msvc-export', '').split()
|
||||||
|
|
||||||
|
+ ### hmm. this is Makefile-specific
|
||||||
|
+ if self.link_cmd == '$(LINK)':
|
||||||
|
+ self.link_cmd = '$(LINK_LIB)'
|
||||||
|
+
|
||||||
|
class TargetApacheMod(TargetLib):
|
||||||
|
|
||||||
|
def __init__(self, name, options, gen_obj):
|
||||||
|
--- subversion-1.6.1/Makefile.in.rpath
|
||||||
|
+++ subversion-1.6.1/Makefile.in
|
||||||
|
@@ -184,7 +184,8 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
|
||||||
|
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
|
||||||
|
COMPILE_JAVAHL_JAVAH = $(JAVAH)
|
||||||
|
|
||||||
|
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||||
|
+LINK_LIB = $(LINK) -rpath $(libdir)
|
||||||
|
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||||
|
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||||
|
|
||||||
|
# special link rule for mod_dav_svn
|
@ -1,28 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAknc50kACgkQCwOubk4kUXx2xACfUCx724/5r494oVGpnYpfg9nq
|
|
||||||
Y/YAoIHPysjMeCwcWWiDs/S8VgTmgcxF
|
|
||||||
=z1DJ
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v2.0.11 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAkndpNYACgkQYM9qgQ/zOWNawQCeLMiNS/PHZ4MiS2wml5itHfTO
|
|
||||||
MmkAoJ/3tWr/mFuX31ayPCsmRrGKMIv/
|
|
||||||
=YCH0
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
|
||||||
|
|
||||||
iEYEABECAAYFAkndmZIACgkQ9o1G+2zNQDjclACcCaL6NxFd+QIJ7PwD8IRdc3Jy
|
|
||||||
i4wAoJJ+M5COafJaw8xOhli8XVEJOr0I
|
|
||||||
=4Vb5
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.4.9 (FreeBSD)
|
|
||||||
|
|
||||||
iEYEABECAAYFAkneHZ4ACgkQ/P1jBZgh97LShQCfWUV36nwHJxGLf9xb9zBDpEAf
|
|
||||||
Jc4Anjk7Xg4xQiPYiGPVkylKm3Rru2kk
|
|
||||||
=4kOK
|
|
||||||
-----END PGP SIGNATURE-----
|
|
273
subversion-1.6.5-newlines.patch
Normal file
273
subversion-1.6.5-newlines.patch
Normal file
@ -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>
|
25
subversion-1.6.6-kwallet.patch
Normal file
25
subversion-1.6.6-kwallet.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
The first half of this is certainly upstream-worthy, but the second half is presumably
|
||||||
|
some Fedora-specific KDE packaging thing. It's not obvious how to get
|
||||||
|
kde4-config to report the directory which contains the .so files.
|
||||||
|
|
||||||
|
--- subversion-1.6.6/build/ac-macros/kwallet.m4.kwallet
|
||||||
|
+++ subversion-1.6.6/build/ac-macros/kwallet.m4
|
||||||
|
@@ -47,14 +47,14 @@ AC_DEFUN(SVN_LIB_KWALLET,
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
|
||||||
|
- kde_dir="`$kde4_config --prefix`"
|
||||||
|
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
|
||||||
|
+ kde_include_dirs="-I`$kde4_config --path include`"
|
||||||
|
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs $kde_include_dirs"
|
||||||
|
qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
|
||||||
|
SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
|
||||||
|
CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
|
||||||
|
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$libdir/kde4/devel"
|
||||||
|
AC_LANG(C++)
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
#include <kwallet.h>
|
192
subversion.spec
192
subversion.spec
@ -12,27 +12,33 @@
|
|||||||
|
|
||||||
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||||
|
|
||||||
|
%global svn2cl_version 0.11
|
||||||
|
|
||||||
Summary: A Modern Concurrent Version Control System
|
Summary: A Modern Concurrent Version Control System
|
||||||
Name: subversion
|
Name: subversion
|
||||||
Version: 1.6.1
|
Version: 1.6.11
|
||||||
Release: 3
|
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/tarballs/subversion-%{version}.tar.gz
|
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.0-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.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
|
||||||
BuildRequires: neon-devel >= 0:0.24.7-1, cyrus-sasl-devel
|
BuildRequires: neon-devel >= 0:0.24.7-1, cyrus-sasl-devel
|
||||||
BuildRequires: sqlite-devel >= 3.4.0
|
BuildRequires: sqlite-devel >= 3.4.0
|
||||||
|
BuildRequires: gnome-keyring-devel, dbus-devel, kdelibs-devel >= 4.0.0
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Provides: svn = %{version}-%{release}
|
Provides: svn = %{version}-%{release}
|
||||||
Requires: apr >= 1.3.0
|
Requires: apr >= 1.3.0
|
||||||
@ -60,6 +66,24 @@ The subversion-devel package includes the static libraries and
|
|||||||
include files for developers interacting with the subversion
|
include files for developers interacting with the subversion
|
||||||
package.
|
package.
|
||||||
|
|
||||||
|
%package gnome
|
||||||
|
Group: Development/Tools
|
||||||
|
Summary: GNOME Keyring support for Subversion
|
||||||
|
Requires: subversion = %{version}-%{release}
|
||||||
|
|
||||||
|
%description gnome
|
||||||
|
The subversion-gnome package adds support for storing Subversion
|
||||||
|
passwords in the GNOME Keyring.
|
||||||
|
|
||||||
|
%package kde
|
||||||
|
Group: Development/Tools
|
||||||
|
Summary: KDE Wallet support for Subversion
|
||||||
|
Requires: subversion = %{version}-%{release}
|
||||||
|
|
||||||
|
%description kde
|
||||||
|
The subversion-kde package adds support for storing Subversion
|
||||||
|
passwords in the KDE Wallet.
|
||||||
|
|
||||||
%package -n mod_dav_svn
|
%package -n mod_dav_svn
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
Summary: Apache httpd module for Subversion server
|
Summary: Apache httpd module for Subversion server
|
||||||
@ -103,8 +127,28 @@ Requires: ruby(abi) = 1.8
|
|||||||
%description ruby
|
%description ruby
|
||||||
This package includes the Ruby bindings to the Subversion libraries.
|
This package includes the Ruby bindings to the Subversion libraries.
|
||||||
|
|
||||||
|
%package svn2cl
|
||||||
|
Group: Development/Tools
|
||||||
|
Summary: Create a ChangeLog from a Subversion log
|
||||||
|
License: BSD
|
||||||
|
# -5: fake release for the Obsoletes to work
|
||||||
|
Provides: svn2cl = %{svn2cl_version}-5
|
||||||
|
Obsoletes: svn2cl < 0.11-4
|
||||||
|
BuildArch: noarch
|
||||||
|
Requires: libxslt
|
||||||
|
Requires: subversion = %{version}
|
||||||
|
|
||||||
|
%description svn2cl
|
||||||
|
svn2cl is a simple XSL transformation and shell script wrapper for
|
||||||
|
generating a classic GNU-style ChangeLog from a subversion repository
|
||||||
|
log. It is made from several changelog-like scripts using common XSLT
|
||||||
|
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
|
||||||
@ -114,6 +158,19 @@ This package includes the Ruby bindings to the Subversion libraries.
|
|||||||
%ifarch sparc64
|
%ifarch sparc64
|
||||||
sed -i -e 's|-fpie|-fPIE|g' Makefile.in
|
sed -i -e 's|-fpie|-fPIE|g' Makefile.in
|
||||||
%endif
|
%endif
|
||||||
|
%patch8 -p1 -b .kwallet
|
||||||
|
|
||||||
|
sed -i -e 's|^XSL="$dir/|XSL="%{_datadir}/svn2cl/|' \
|
||||||
|
contrib/client-side/svn2cl/svn2cl.sh
|
||||||
|
# Sanity check svn2cl_version
|
||||||
|
v=$(contrib/client-side/svn2cl/svn2cl.sh -V | sed -n '1{s/.* //;p;}')
|
||||||
|
if [ "$v" != "%{svn2cl_version}" ]; then
|
||||||
|
echo -n "ERROR: svn2cl_version not up to date in specfile: "
|
||||||
|
echo "'$v' <> '%{svn2cl_version}'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv tools/client-side/bash_completion .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Regenerate the buildsystem, so that:
|
# Regenerate the buildsystem, so that:
|
||||||
@ -129,13 +186,16 @@ export svn_cv_ruby_link="%{__cc} -shared"
|
|||||||
export svn_cv_ruby_sitedir_libsuffix=""
|
export svn_cv_ruby_sitedir_libsuffix=""
|
||||||
export svn_cv_ruby_sitedir_archsuffix=""
|
export svn_cv_ruby_sitedir_archsuffix=""
|
||||||
|
|
||||||
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS -fPIE"
|
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS"
|
||||||
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
|
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
|
||||||
--with-swig --with-neon=%{_prefix} \
|
--with-swig --with-neon=%{_prefix} \
|
||||||
--with-ruby-sitedir=%{ruby_sitearch} \
|
--with-ruby-sitedir=%{ruby_sitearch} \
|
||||||
--with-apxs=%{_sbindir}/apxs --disable-mod-activation \
|
--with-apxs=%{_sbindir}/apxs --disable-mod-activation \
|
||||||
--disable-static --with-sasl=%{_prefix} \
|
--disable-static --with-sasl=%{_prefix} \
|
||||||
--disable-neon-version-check
|
--disable-neon-version-check \
|
||||||
|
--with-gnome-keyring \
|
||||||
|
--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
|
||||||
@ -165,6 +225,13 @@ install -m 644 $RPM_SOURCE_DIR/subversion.conf ${RPM_BUILD_ROOT}%{_sysconfdir}/h
|
|||||||
rm -rf ${RPM_BUILD_ROOT}%{_includedir}/subversion-*/*.txt \
|
rm -rf ${RPM_BUILD_ROOT}%{_includedir}/subversion-*/*.txt \
|
||||||
${RPM_BUILD_ROOT}%{python_sitearch}/*/*.{a,la}
|
${RPM_BUILD_ROOT}%{python_sitearch}/*/*.{a,la}
|
||||||
|
|
||||||
|
# The SVN build system is broken w.r.t. DSO support; it treats
|
||||||
|
# normal libraries as DSOs and puts them in $libdir, whereas they
|
||||||
|
# should go in some subdir somewhere, and be linked using -module,
|
||||||
|
# etc. So, forcibly nuke the .so's for libsvn_auth_{gnome,kde},
|
||||||
|
# since nothing should ever link against them directly.
|
||||||
|
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libsvn_auth_*.so
|
||||||
|
|
||||||
# remove stuff produced with Perl modules
|
# remove stuff produced with Perl modules
|
||||||
find $RPM_BUILD_ROOT -type f \
|
find $RPM_BUILD_ROOT -type f \
|
||||||
-a \( -name .packlist -o \( -name '*.bs' -a -empty \) \) \
|
-a \( -name .packlist -o \( -name '*.bs' -a -empty \) \) \
|
||||||
@ -195,17 +262,33 @@ 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
|
||||||
|
pushd contrib/client-side/svn2cl
|
||||||
|
install -Dpm 755 svn2cl.sh $RPM_BUILD_ROOT%{_bindir}/svn2cl
|
||||||
|
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/svn2cl
|
||||||
|
install -pm 644 *.xsl $RPM_BUILD_ROOT%{_datadir}/svn2cl
|
||||||
|
install -Dpm 644 svn2cl.1 $RPM_BUILD_ROOT%{_mandir}/man1/svn2cl.1
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Install bash completion
|
||||||
|
install -Dpm 644 bash_completion \
|
||||||
|
$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/%{name}
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
%if %{make_check}
|
%if %{make_check}
|
||||||
%check
|
%check
|
||||||
export LANG=C LC_ALL=C
|
export LANG=C LC_ALL=C
|
||||||
|
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}
|
||||||
|
export MALLOC_PERTURB_=171 MALLOC_CHECK_=3
|
||||||
|
export LIBC_FATAL_STDERR_=1
|
||||||
make check check-swig-pl check-swig-py CLEANUP=yes
|
make check check-swig-pl check-swig-py CLEANUP=yes
|
||||||
# check-swig-rb omitted: it runs svnserve
|
# check-swig-rb omitted: it runs svnserve
|
||||||
%endif
|
%endif
|
||||||
@ -239,17 +322,30 @@ 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
|
||||||
%{_datadir}/xemacs/site-packages/lisp/*.el
|
%{_datadir}/xemacs/site-packages/lisp/*.el
|
||||||
|
%{_sysconfdir}/bash_completion.d
|
||||||
%dir %{_sysconfdir}/subversion
|
%dir %{_sysconfdir}/subversion
|
||||||
%exclude %{_libdir}/libsvn_swig_perl*
|
%exclude %{_libdir}/libsvn_swig_perl*
|
||||||
%exclude %{_libdir}/libsvn_swig_ruby*
|
%exclude %{_libdir}/libsvn_swig_ruby*
|
||||||
|
%exclude %{_libdir}/libsvn_auth_kwallet*
|
||||||
|
%exclude %{_libdir}/libsvn_auth_gnome*
|
||||||
%exclude %{_mandir}/man*/*::*
|
%exclude %{_mandir}/man*/*::*
|
||||||
|
|
||||||
|
%files gnome
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libsvn_auth_gnome_keyring-*.so.*
|
||||||
|
|
||||||
|
%files kde
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libsvn_auth_kwallet-*.so.*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_includedir}/subversion-1
|
%{_includedir}/subversion-1
|
||||||
@ -285,7 +381,85 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_javadir}/svn-javahl.jar
|
%{_javadir}/svn-javahl.jar
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%files svn2cl
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc contrib/client-side/svn2cl/NEWS contrib/client-side/svn2cl/README
|
||||||
|
%doc contrib/client-side/svn2cl/TODO contrib/client-side/svn2cl/authors.xml
|
||||||
|
%doc contrib/client-side/svn2cl/svn2html.css
|
||||||
|
%{_bindir}/svn2cl
|
||||||
|
%{_datadir}/svn2cl/
|
||||||
|
%{_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
|
||||||
|
- Ship svn2cl and bash completion (#496456).
|
||||||
|
- Add %%defattr to -gnome and -kde.
|
||||||
|
|
||||||
|
* Sun Aug 23 2009 Joe Orton <jorton@redhat.com> 1.6.5-1
|
||||||
|
- update to 1.6.5
|
||||||
|
|
||||||
|
* Tue Aug 18 2009 Joe Orton <jorton@redhat.com> 1.6.4-4
|
||||||
|
- rebuild
|
||||||
|
|
||||||
|
* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.4-3
|
||||||
|
- Use bzipped upstream tarball.
|
||||||
|
|
||||||
|
* Fri Aug 7 2009 Joe Orton <jorton@redhat.com> 1.6.4-2
|
||||||
|
- update to 1.6.4
|
||||||
|
|
||||||
|
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 23 2009 Joe Orton <jorton@redhat.com> 1.6.3-2
|
||||||
|
- remove -devel dependency on -gnome, -kde (#513313)
|
||||||
|
|
||||||
|
* Tue Jun 23 2009 Joe Orton <jorton@redhat.com> 1.6.3-1
|
||||||
|
- update to 1.6.3
|
||||||
|
|
||||||
|
* Sun Jun 14 2009 Joe Orton <jorton@redhat.com> 1.6.2-3
|
||||||
|
- add -gnome, -kde subpackages
|
||||||
|
|
||||||
|
* Mon Jun 1 2009 Joe Orton <jorton@redhat.com> 1.6.2-2
|
||||||
|
- enable KWallet, gnome-keyring support
|
||||||
|
|
||||||
|
* Fri May 15 2009 Joe Orton <jorton@redhat.com> 1.6.2-1
|
||||||
|
- update to 1.6.2
|
||||||
|
|
||||||
|
* Wed Apr 15 2009 Joe Orton <jorton@redhat.com> 1.6.1-4
|
||||||
|
- really disable PIE
|
||||||
|
|
||||||
* Tue Apr 14 2009 Joe Orton <jorton@redhat.com> 1.6.1-3
|
* Tue Apr 14 2009 Joe Orton <jorton@redhat.com> 1.6.1-3
|
||||||
- update to 1.6.1; disable PIE patch for the time being
|
- update to 1.6.1; disable PIE patch for the time being
|
||||||
|
|
||||||
|
2776
upstream-key.gpg
2776
upstream-key.gpg
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user