Compare commits
316 Commits
subversion
...
rawhide
Author | SHA1 | Date | |
---|---|---|---|
|
d5d79903b7 | ||
|
a369b2c68c | ||
|
3ef9dd2eb3 | ||
|
28a8371292 | ||
|
66f78b6f0b | ||
|
dfc31038ae | ||
|
786c0a870c | ||
|
55cb565526 | ||
|
8936f2a567 | ||
|
9928155ef9 | ||
|
6a438d0695 | ||
|
230cf0ba53 | ||
|
fc99096be2 | ||
|
af1f9fda49 | ||
|
295a35219d | ||
|
7da0927bea | ||
|
5683ab8094 | ||
|
3a98fb6357 | ||
|
467f0d7692 | ||
|
9972e74622 | ||
|
0fda095229 | ||
|
b84c8bd57c | ||
|
9e1c54f621 | ||
|
fcaaaff855 | ||
|
499cd8e83d | ||
|
eeb81e6a40 | ||
|
3d5f8d900a | ||
|
665f365e99 | ||
|
7625a18e28 | ||
|
98a6fa5e22 | ||
|
e8ea94364e | ||
|
3ebdabd841 | ||
|
c9e6813bbd | ||
|
620cccab98 | ||
|
b0d36c8372 | ||
|
a324bcd12d | ||
|
c8b62eed2a | ||
|
5deb44b230 | ||
|
d4cfdbde97 | ||
|
f8836c5c33 | ||
|
7f9b0e8ee8 | ||
|
775848c5c0 | ||
|
8ee227cefc | ||
|
880dc2d088 | ||
|
15003a7b63 | ||
|
dba71be6b7 | ||
|
9feed5d046 | ||
|
8a826512a3 | ||
|
3751cb1185 | ||
|
60ad19a1c4 | ||
|
7cd62e93ad | ||
|
0e0c958468 | ||
|
3bff10eb40 | ||
|
e210879fdd | ||
|
dde0722d8b | ||
|
282e2f908f | ||
|
4dacd0cc9a | ||
|
fb7f2749f3 | ||
|
44728be640 | ||
|
37f54c869d | ||
|
df7a8d4302 | ||
|
b92333397b | ||
|
1009d9c401 | ||
|
7a2266fa94 | ||
|
d3d820b4ed | ||
|
f5c1dc7ba6 | ||
|
a25a62dd94 | ||
|
5ad5346643 | ||
|
c5a1e6a57b | ||
|
57362d6ecd | ||
|
064aa48b41 | ||
|
6c3bff4b0c | ||
|
69fda208d9 | ||
|
90f80dcf5f | ||
|
02f5184175 | ||
|
784b518a86 | ||
|
4df5cd53fb | ||
|
ac4378f0e5 | ||
|
d06508e65b | ||
|
a6aa7f6ff5 | ||
|
26d2f416ea | ||
|
165709cbf9 | ||
|
aaba982dde | ||
|
8c2c8c9b5b | ||
|
7417b32a9b | ||
|
730bad37b5 | ||
|
5d1d84ed52 | ||
|
28a2e483e9 | ||
|
13ecf2b759 | ||
|
80ac0e0da3 | ||
|
fdcd0773c4 | ||
|
1a45152b26 | ||
|
2e3dd3de30 | ||
|
5ac98aab34 | ||
|
98ddd79d86 | ||
|
193e2e3a7d | ||
|
826f2c3689 | ||
|
0006eb7232 | ||
|
f71da83290 | ||
|
a2f1b0bc3e | ||
|
65bb8921ac | ||
|
368c5a91e6 | ||
|
729170108e | ||
|
ddb4d58f79 | ||
|
63c8e7d81d | ||
|
8fefc4d3ae | ||
|
cf4f0b2340 | ||
|
d7124a3c1f | ||
|
3ea10e4bad | ||
|
6225a77f14 | ||
|
5b21ca64df | ||
|
a52dae1fd4 | ||
|
fa677f6a83 | ||
|
0114678efc | ||
|
3ccba7dffd | ||
|
f4b58f8836 | ||
|
684d60f4c9 | ||
|
4f24860076 | ||
|
470c32c558 | ||
|
567b1233b0 | ||
|
2c175edca3 | ||
|
cf5ce10eef | ||
|
8b7160d5ae | ||
|
a2b9f7990d | ||
|
5f5fc2fff9 | ||
|
ae530f1de4 | ||
|
a8b52ca121 | ||
|
f9f97b2487 | ||
|
39e1e2ef8f | ||
|
f24891a459 | ||
|
83917310da | ||
|
683bd34be9 | ||
|
43cb7cd92b | ||
|
5dedbe2642 | ||
|
a647369260 | ||
|
9c77a54c51 | ||
|
081fa7e906 | ||
|
fdc9874194 | ||
|
3b7e840817 | ||
|
2157a2c792 | ||
|
98de9c6e86 | ||
|
fc7f48ab63 | ||
|
c36f77c125 | ||
|
6a142b792e | ||
|
856d71750c | ||
|
962179d29e | ||
|
3de07540b7 | ||
|
f2b92773c4 | ||
|
42181af8e7 | ||
|
c19bd09743 | ||
|
0624185906 | ||
|
ace894fcdd | ||
|
855d57b75c | ||
|
31859da2f7 | ||
|
0d19e6bada | ||
|
7e293c5596 | ||
|
d46c2c15c8 | ||
|
0a70261bb1 | ||
|
b89ac102f3 | ||
|
3064333c67 | ||
|
389c7486ad | ||
|
02cf076710 | ||
|
56ef4a666b | ||
|
95a7555199 | ||
|
facc4d363d | ||
|
5785136d94 | ||
|
0aafcfdfdc | ||
|
db6a750dc2 | ||
|
b73dd8d18a | ||
|
1ec24d0013 | ||
|
3ae86f55f6 | ||
|
9fef6333f5 | ||
|
f3c95b624b | ||
|
7fad3e53b9 | ||
|
e4cb5b45ca | ||
|
cc5db16cb4 | ||
|
f96159c11d | ||
|
c6fc6f5dbd | ||
|
2fcfd109eb | ||
|
260cfa25de | ||
|
8fecbab208 | ||
|
253c84ac54 | ||
|
2e00506699 | ||
|
fe1ae3d4ec | ||
|
5ed5d9f677 | ||
|
11039e7d6e | ||
|
45b051edd1 | ||
|
d25854b52d | ||
|
cd81c66f93 | ||
|
3ac1914e80 | ||
|
4d4e94a5ab | ||
|
da76088dbf | ||
|
5e04a2c47a | ||
|
073f1eabc1 | ||
|
4e09ee7e82 | ||
|
25383aa5f0 | ||
|
0764e57af4 | ||
|
7bad70a905 | ||
|
5324cf799f | ||
|
4d6de3b2bb | ||
|
cf226578fa | ||
|
5f612c9ef9 | ||
|
b3a52efdbf | ||
|
83f457fbef | ||
|
2d9bfc5de0 | ||
|
0aff876c83 | ||
|
bf858c512b | ||
|
eaa8715820 | ||
|
e15ed24b56 | ||
|
423e8da9ea | ||
|
741adf9dba | ||
|
7a5b6b9916 | ||
|
d9a7f5f597 | ||
|
3e37f78f24 | ||
|
7efe6ae259 | ||
|
d47b5d6c52 | ||
|
c527ae69a5 | ||
|
d633e560e3 | ||
|
4dd4180de2 | ||
|
3be5242bc4 | ||
|
fdfc8e1c34 | ||
|
642a42e5ae | ||
|
f525aae7df | ||
|
d510ec3feb | ||
|
8a2548890d | ||
|
9350f61924 | ||
|
88c922219d | ||
|
2cfa41d072 | ||
|
de106c6ac6 | ||
|
0caf5ab92a | ||
|
bc0273b5f5 | ||
|
8bc4866090 | ||
|
96c0dce4da | ||
|
061c4e0e93 | ||
|
696a60d5ac | ||
|
cf9cd946d8 | ||
|
3ee8fd7773 | ||
|
47a13c0606 | ||
|
f89e89ba89 | ||
|
856c4a9f8a | ||
|
052327b622 | ||
|
51d0a3b38f | ||
|
a6a338f92a | ||
|
542cd5bd10 | ||
|
e805758439 | ||
|
957fb58449 | ||
|
167d3d2dd5 | ||
|
7c2b6640c1 | ||
|
f787d3dc53 | ||
|
b9a743cd23 | ||
|
d9257f6c5e | ||
|
1bfb4ba3bd | ||
|
4d30986a91 | ||
|
7dacfa74b3 | ||
|
72a39f6395 | ||
|
2953a390d1 | ||
|
7fbff7dd7a | ||
|
4d6de6da6f | ||
|
14f6ae3688 | ||
|
1c7f325d37 | ||
|
215a29df4e | ||
|
ad3e5e0233 | ||
|
a8b558c4e7 | ||
|
ee588b3111 | ||
|
d882fd1d57 | ||
|
6264eabccb | ||
|
b60c078aa2 | ||
|
c4444b4cbe | ||
|
55db97a19b | ||
|
caa3c5a2d6 | ||
|
a3c03d56bf | ||
|
f598f3d4c6 | ||
|
41a6b204af | ||
|
84ce3d5836 | ||
|
4ea09c491c | ||
|
cdf5e0d71f | ||
|
83638c4128 | ||
|
e89dfaff32 | ||
|
5d570fa978 | ||
|
e9cc4c898f | ||
|
85a35a5f40 | ||
|
69857115be | ||
|
b2eee59779 | ||
|
bab987a2fb | ||
|
bc55ea1a17 | ||
|
77997e46fe | ||
|
fd283cda3b | ||
|
a960fbc241 | ||
|
2490d2caaf | ||
|
f31cdf6cf6 | ||
|
4132eef877 | ||
|
de42b54d86 | ||
|
47e89b610a | ||
|
2df1e85ead | ||
|
17c7655427 | ||
|
9f9154686d | ||
|
60a65b1119 | ||
|
d9d021d68b | ||
|
4e0d1d395d | ||
|
2bc69a90b7 | ||
|
9eab564366 | ||
|
ddb0f1c6d0 | ||
|
014c3d1faf | ||
|
916dd2a222 | ||
|
b8f401e198 | ||
|
3833e0558c | ||
|
f41b0b2b4c | ||
|
c3f2f9e55f | ||
|
5aceb4bb45 | ||
|
ab5874983b | ||
|
87d0a24c91 | ||
|
9c992a151a | ||
|
8e97de4a09 | ||
|
55ca5fbc61 | ||
|
3f94a11832 | ||
|
955cfbf8e1 |
@ -1,2 +0,0 @@
|
|||||||
subversion-1.6.5.tar.bz2
|
|
||||||
subversion-1.6.6.tar.bz2
|
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/subversion-*.tar.bz2
|
||||||
|
/subversion-1\.[0-9]*\.[0-9]*/
|
||||||
|
/results_subversion/
|
22
Makefile
22
Makefile
@ -1,22 +0,0 @@
|
|||||||
# Makefile for source rpm: subversion
|
|
||||||
# $Id: Makefile,v 1.4 2007/10/15 19:24:42 notting 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 $$d/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)
|
|
27
clog2markdown
Executable file
27
clog2markdown
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
version=$1
|
||||||
|
|
||||||
|
echo "This update includes the latest stable release of _Apache Subversion_, version **${1}**".
|
||||||
|
echo
|
||||||
|
|
||||||
|
curl --silent -n "http://svn.apache.org/repos/asf/subversion/tags/$1/CHANGES" | \
|
||||||
|
sed -n "
|
||||||
|
/^#/d;
|
||||||
|
/^Version ${1/-rc*/}/,/^Version /{
|
||||||
|
/, from \/branches/d;
|
||||||
|
/repos\/asf\/subversion\/tags/d;
|
||||||
|
s,#\([0-9]*\),[SVN-\1](https://issues.apache.org/jira/browse/SVN-\1),;
|
||||||
|
s/(r[0-9, retal]+)\*//g;
|
||||||
|
s/^ *//;
|
||||||
|
s/ +/ /g;
|
||||||
|
s/^ *- \(.*\)$/#### \1/;
|
||||||
|
s/\(.*visible changes.*:\)$/### \1/;
|
||||||
|
/^ *$/d;
|
||||||
|
/Windows/d
|
||||||
|
/^Version /d
|
||||||
|
s,(r1.*),,g
|
||||||
|
s,\(@[0-9]*\),\\\1,g
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
" -
|
303
psvn.el
303
psvn.el
@ -1,8 +1,9 @@
|
|||||||
;;; psvn.el --- Subversion interface for emacs
|
;;; psvn.el --- Subversion interface for emacs
|
||||||
;; Copyright (C) 2002-2009 by Stefan Reichoer
|
;; Copyright (C) 2002-2015 by Stefan Reichoer
|
||||||
|
|
||||||
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
||||||
;; $Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $
|
;; Note: This version is currently not under svn control
|
||||||
|
;; For the revision date see svn-psvn-revision below
|
||||||
|
|
||||||
;; 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 +23,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 intrepid with svn 1.5.1
|
;; freebsd5, red hat el4, ubuntu 11.10 with svn 1.6.12
|
||||||
|
|
||||||
;; 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
|
||||||
@ -137,8 +138,6 @@
|
|||||||
|
|
||||||
;; The latest version of psvn.el can be found at:
|
;; The latest version of psvn.el can be found at:
|
||||||
;; http://www.xsteve.at/prg/emacs/psvn.el
|
;; http://www.xsteve.at/prg/emacs/psvn.el
|
||||||
;; Or you can check it out from the subversion repository:
|
|
||||||
;; svn co http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs emacs-svn
|
|
||||||
|
|
||||||
;; TODO:
|
;; TODO:
|
||||||
;; * shortcut for svn propset svn:keywords "Date" psvn.el
|
;; * shortcut for svn propset svn:keywords "Date" psvn.el
|
||||||
@ -242,6 +241,9 @@
|
|||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(defconst svn-psvn-revision "2015-07-20, 21:42:00" "The revision date of psvn.")
|
||||||
|
|
||||||
|
|
||||||
(require 'easymenu)
|
(require 'easymenu)
|
||||||
|
|
||||||
(eval-when-compile (require 'dired))
|
(eval-when-compile (require 'dired))
|
||||||
@ -256,8 +258,6 @@
|
|||||||
(require 'diff-mode))
|
(require 'diff-mode))
|
||||||
(error nil))
|
(error nil))
|
||||||
|
|
||||||
(defconst svn-psvn-revision "$Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $"
|
|
||||||
"The revision number of psvn.")
|
|
||||||
|
|
||||||
;;; user setable variables
|
;;; user setable variables
|
||||||
(defcustom svn-status-verbose t
|
(defcustom svn-status-verbose t
|
||||||
@ -360,6 +360,11 @@ Possible values are: commit, revert."
|
|||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'psvn)
|
:group 'psvn)
|
||||||
|
|
||||||
|
(defcustom svn-status-indentation 2
|
||||||
|
"*Indenation per directory level in the `svn-status-buffer-name' buffer."
|
||||||
|
:type 'integer
|
||||||
|
:group 'psvn)
|
||||||
|
|
||||||
(defcustom svn-status-negate-meaning-of-arg-commands '()
|
(defcustom svn-status-negate-meaning-of-arg-commands '()
|
||||||
"*List of operations that should use a negated meaning of the prefix argument.
|
"*List of operations that should use a negated meaning of the prefix argument.
|
||||||
The supported functions are `svn-status' and `svn-status-set-user-mark'."
|
The supported functions are `svn-status' and `svn-status-set-user-mark'."
|
||||||
@ -666,7 +671,7 @@ See psvn.el for an example function.")
|
|||||||
(defvar svn-process-cmd nil)
|
(defvar svn-process-cmd nil)
|
||||||
(defvar svn-status-info nil)
|
(defvar svn-status-info nil)
|
||||||
(defvar svn-status-filename-to-buffer-position-cache (make-hash-table :test 'equal :weakness t))
|
(defvar svn-status-filename-to-buffer-position-cache (make-hash-table :test 'equal :weakness t))
|
||||||
(defvar svn-status-base-info nil "The parsed result from the svn info command.")
|
(defvar svn-status-base-info nil "The parsed result from the svn info command as a plist.")
|
||||||
(defvar svn-status-initial-window-configuration nil)
|
(defvar svn-status-initial-window-configuration nil)
|
||||||
(defvar svn-status-default-column 23)
|
(defvar svn-status-default-column 23)
|
||||||
(defvar svn-status-default-revision-width 4)
|
(defvar svn-status-default-revision-width 4)
|
||||||
@ -696,14 +701,16 @@ This is nil if the log entry is for a new commit.")
|
|||||||
(defvar svn-status-update-previous-process-output nil)
|
(defvar svn-status-update-previous-process-output nil)
|
||||||
(defvar svn-pre-run-asynch-recent-keys nil)
|
(defvar svn-pre-run-asynch-recent-keys nil)
|
||||||
(defvar svn-pre-run-mode-line-process nil)
|
(defvar svn-pre-run-mode-line-process nil)
|
||||||
|
(defvar svn-arg-file-content nil)
|
||||||
(defvar svn-status-temp-dir
|
(defvar svn-status-temp-dir
|
||||||
(expand-file-name
|
(file-name-as-directory
|
||||||
(or
|
(expand-file-name
|
||||||
(when (boundp 'temporary-file-directory) temporary-file-directory) ;emacs
|
(or
|
||||||
;; XEmacs 21.4.17 can return "/tmp/kalle" from (temp-directory).
|
(when (boundp 'temporary-file-directory) temporary-file-directory) ;emacs
|
||||||
;; `file-name-as-directory' adds a slash so we can append a file name.
|
;; XEmacs 21.4.17 can return "/tmp/kalle" from (temp-directory).
|
||||||
(when (fboundp 'temp-directory) (file-name-as-directory (temp-directory)))
|
;; `file-name-as-directory' adds a slash so we can append a file name.
|
||||||
"/tmp/")) "The directory that is used to store temporary files for psvn.")
|
(when (fboundp 'temp-directory) (temp-directory))
|
||||||
|
"/tmp/"))) "The directory that is used to store temporary files for psvn.")
|
||||||
;; Because `temporary-file-directory' is not a risky local variable in
|
;; Because `temporary-file-directory' is not a risky local variable in
|
||||||
;; GNU Emacs 22.0.51, we don't mark `svn-status-temp-dir' as such either.
|
;; GNU Emacs 22.0.51, we don't mark `svn-status-temp-dir' as such either.
|
||||||
(defvar svn-temp-suffix (make-temp-name "."))
|
(defvar svn-temp-suffix (make-temp-name "."))
|
||||||
@ -1112,12 +1119,18 @@ inside loops."
|
|||||||
(defun svn-checkout (repos-url path)
|
(defun svn-checkout (repos-url path)
|
||||||
"Run svn checkout REPOS-URL PATH."
|
"Run svn checkout REPOS-URL PATH."
|
||||||
(interactive (list (read-string "Checkout from repository Url: ")
|
(interactive (list (read-string "Checkout from repository Url: ")
|
||||||
(svn-read-directory-name "Checkout to directory: ")))
|
(expand-file-name
|
||||||
|
(svn-read-directory-name "Checkout to directory: "))))
|
||||||
(svn-run t t 'checkout "checkout" repos-url (expand-file-name path)))
|
(svn-run t t 'checkout "checkout" repos-url (expand-file-name path)))
|
||||||
|
|
||||||
;;;###autoload (defalias 'svn-examine 'svn-status)
|
;;;###autoload (defalias 'svn-examine 'svn-status)
|
||||||
(defalias 'svn-examine 'svn-status)
|
(defalias 'svn-examine 'svn-status)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun svn-version-controlled-dir-p (dir)
|
||||||
|
"Return t if DIR is part of a Subversion workarea."
|
||||||
|
(= 0 (call-process svn-status-svn-executable nil nil nil "info" dir)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun svn-status (dir &optional arg)
|
(defun svn-status (dir &optional arg)
|
||||||
"Examine the status of Subversion working copy in directory DIR.
|
"Examine the status of Subversion working copy in directory DIR.
|
||||||
@ -1127,20 +1140,17 @@ For every other non nil ARG pass the -u argument to `svn status', which
|
|||||||
asks svn to connect to the repository and check to see if there are updates
|
asks svn to connect to the repository and check to see if there are updates
|
||||||
there.
|
there.
|
||||||
|
|
||||||
If there is no .svn directory, examine if there is CVS and run
|
If DIR is not an SVN working copy, examine if there is CVS and run
|
||||||
`cvs-examine'. Otherwise ask if to run `dired'."
|
`cvs-examine'. Otherwise ask if to run `dired'."
|
||||||
(interactive (list (svn-read-directory-name "SVN status directory: "
|
(interactive (list (expand-file-name
|
||||||
nil default-directory nil)
|
(svn-read-directory-name "SVN status directory: "
|
||||||
|
nil default-directory nil))
|
||||||
current-prefix-arg))
|
current-prefix-arg))
|
||||||
(let ((svn-dir (format "%s%s"
|
|
||||||
(file-name-as-directory dir)
|
|
||||||
(svn-wc-adm-dir-name)))
|
|
||||||
(cvs-dir (format "%sCVS" (file-name-as-directory dir))))
|
|
||||||
(cond
|
(cond
|
||||||
((file-directory-p svn-dir)
|
((svn-version-controlled-dir-p (expand-file-name dir))
|
||||||
(setq arg (svn-status-possibly-negate-meaning-of-arg arg 'svn-status))
|
(setq arg (svn-status-possibly-negate-meaning-of-arg arg 'svn-status))
|
||||||
(svn-status-1 dir arg))
|
(svn-status-1 dir arg))
|
||||||
((and (file-directory-p cvs-dir)
|
((and (file-directory-p (concat (file-name-as-directory dir) "CVS"))
|
||||||
(fboundp 'cvs-examine))
|
(fboundp 'cvs-examine))
|
||||||
(cvs-examine dir nil))
|
(cvs-examine dir nil))
|
||||||
(t
|
(t
|
||||||
@ -1153,7 +1163,7 @@ If there is no .svn directory, examine if there is CVS and run
|
|||||||
"Run dired instead? ")
|
"Run dired instead? ")
|
||||||
dir
|
dir
|
||||||
(svn-wc-adm-dir-name)))
|
(svn-wc-adm-dir-name)))
|
||||||
(dired dir))))))
|
(dired dir)))))
|
||||||
|
|
||||||
(defvar svn-status-display-new-status-buffer nil)
|
(defvar svn-status-display-new-status-buffer nil)
|
||||||
(defun svn-status-1 (dir &optional arg)
|
(defun svn-status-1 (dir &optional arg)
|
||||||
@ -1189,7 +1199,6 @@ If there is no .svn directory, examine if there is CVS and run
|
|||||||
(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)
|
|
||||||
(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))
|
||||||
@ -1289,16 +1298,15 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
|||||||
(setq svn-pre-run-mode-line-process mode-line-process)
|
(setq svn-pre-run-mode-line-process mode-line-process)
|
||||||
(setq mode-line-process 'svn-status-mode-line-process))
|
(setq mode-line-process 'svn-status-mode-line-process))
|
||||||
(setq svn-status-pre-run-svn-buffer (current-buffer))
|
(setq svn-status-pre-run-svn-buffer (current-buffer))
|
||||||
(let* ((proc-buf (get-buffer-create svn-process-buffer-name))
|
(let* ((pre-run-buffer-default-directory default-directory)
|
||||||
|
(proc-buf (get-buffer-create svn-process-buffer-name))
|
||||||
(svn-exe svn-status-svn-executable)
|
(svn-exe svn-status-svn-executable)
|
||||||
(svn-proc))
|
(svn-proc))
|
||||||
(when (listp (car arglist))
|
(when (listp (car arglist))
|
||||||
(setq arglist (car arglist)))
|
(setq arglist (car arglist)))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(set-buffer proc-buf)
|
(set-buffer proc-buf)
|
||||||
(unless (file-executable-p default-directory)
|
(setq default-directory pre-run-buffer-default-directory)
|
||||||
(message "psvn: workaround in %s needed: %s no longer exists" (current-buffer) default-directory)
|
|
||||||
(cd (expand-file-name "~")))
|
|
||||||
(setq buffer-read-only nil)
|
(setq buffer-read-only nil)
|
||||||
(buffer-disable-undo)
|
(buffer-disable-undo)
|
||||||
(fundamental-mode)
|
(fundamental-mode)
|
||||||
@ -1310,7 +1318,9 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
|||||||
(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)
|
||||||
(save-excursion (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 svn-arg-file-content))
|
||||||
|
(setq svn-arg-file-content nil)
|
||||||
|
(setq svn-process-handle-error-msg nil)
|
||||||
(if run-asynchron
|
(if run-asynchron
|
||||||
(progn
|
(progn
|
||||||
;;(message "running asynchron: %s %S" svn-exe arglist)
|
;;(message "running asynchron: %s %S" svn-exe arglist)
|
||||||
@ -1508,11 +1518,11 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
|||||||
When this function resets `svn-process-handle-error-msg' to nil, the default error handling
|
When this function resets `svn-process-handle-error-msg' to nil, the default error handling
|
||||||
(just show the error message) is not executed.")
|
(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))
|
(setq svn-process-handle-error-msg error-msg)
|
||||||
(when (functionp svn-handle-error-function)
|
(when (functionp svn-handle-error-function)
|
||||||
(funcall svn-handle-error-function error-msg))
|
(funcall svn-handle-error-function error-msg))
|
||||||
(when svn-process-handle-error-msg
|
(when svn-process-handle-error-msg
|
||||||
(electric-helpify 'svn-process-help-with-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)
|
||||||
@ -2884,8 +2894,8 @@ Symbolic links to directories count as directories (see `file-directory-p')."
|
|||||||
dir-name))
|
dir-name))
|
||||||
'svn-status-directory-face)
|
'svn-status-directory-face)
|
||||||
;; showing all files, so add indentation
|
;; showing all files, so add indentation
|
||||||
(make-string (* 2 (svn-status-count-/
|
(make-string (* svn-status-indentation (svn-status-count-/
|
||||||
(svn-status-line-info->filename line-info)))
|
(svn-status-line-info->filename line-info)))
|
||||||
32))
|
32))
|
||||||
;;symlinks get a different face
|
;;symlinks get a different face
|
||||||
(let ((target (svn-status-line-info->symlink-p line-info)))
|
(let ((target (svn-status-line-info->symlink-p line-info)))
|
||||||
@ -3082,32 +3092,27 @@ non-interactive use."
|
|||||||
(defun svn-status-parse-info-result ()
|
(defun svn-status-parse-info-result ()
|
||||||
"Parse the result from the svn info command.
|
"Parse the result from the svn info command.
|
||||||
Put the found values in `svn-status-base-info'."
|
Put the found values in `svn-status-base-info'."
|
||||||
(let ((url)
|
(save-excursion
|
||||||
(repository-root)
|
(setq svn-status-base-info ())
|
||||||
(last-changed-author))
|
(set-buffer svn-process-buffer-name)
|
||||||
(save-excursion
|
(goto-char (point-min))
|
||||||
(set-buffer svn-process-buffer-name)
|
(let ((case-fold-search t)
|
||||||
(goto-char (point-min))
|
(key)
|
||||||
(let ((case-fold-search t))
|
(val))
|
||||||
(search-forward "url: ")
|
(loop while (looking-at "\\(.*?\\)\\s-*:\\s-*\\(.*\\)$")
|
||||||
(setq url (buffer-substring-no-properties (point) (svn-point-at-eol)))
|
do (setq key (intern (concat ":" (downcase (subst-char-in-string ?\ ?- (match-string 1))))))
|
||||||
(when (search-forward "repository root: " nil t)
|
(setq val (match-string 2))
|
||||||
(setq repository-root (buffer-substring-no-properties (point) (svn-point-at-eol))))
|
(setq svn-status-base-info (plist-put svn-status-base-info
|
||||||
(when (search-forward "last changed author: " nil t)
|
key val))
|
||||||
(setq last-changed-author (buffer-substring-no-properties (point) (svn-point-at-eol))))))
|
until (< 0 (forward-line))))))
|
||||||
(setq svn-status-base-info `((url ,url) (repository-root ,repository-root) (last-changed-author ,last-changed-author)))))
|
|
||||||
|
|
||||||
(defun svn-status-base-info->url ()
|
(defun svn-status-base-info->url ()
|
||||||
"Extract the url part from `svn-status-base-info'."
|
"Extract the url part from `svn-status-base-info'."
|
||||||
(if svn-status-base-info
|
(plist-get svn-status-base-info :url))
|
||||||
(cadr (assoc 'url svn-status-base-info))
|
|
||||||
""))
|
|
||||||
|
|
||||||
(defun svn-status-base-info->repository-root ()
|
(defun svn-status-base-info->repository-root ()
|
||||||
"Extract the repository-root part from `svn-status-base-info'."
|
"Extract the repository-root part from `svn-status-base-info'."
|
||||||
(if svn-status-base-info
|
(plist-get svn-status-base-info :repository-root))
|
||||||
(cadr (assoc 'repository-root svn-status-base-info))
|
|
||||||
""))
|
|
||||||
|
|
||||||
(defun svn-status-checkout-prefix-path ()
|
(defun svn-status-checkout-prefix-path ()
|
||||||
"When only a part of the svn repository is checked out, return the file path for this checkout."
|
"When only a part of the svn repository is checked out, return the file path for this checkout."
|
||||||
@ -3643,20 +3648,18 @@ if no files have been marked."
|
|||||||
svn-status-ui-information))
|
svn-status-ui-information))
|
||||||
|
|
||||||
|
|
||||||
(defun svn-status-create-arg-file (file-name prefix file-info-list postfix)
|
(defun svn-status-create-arg-file (file-info-list)
|
||||||
"Create an svn client argument file"
|
"Create an svn client argument file"
|
||||||
;; create the arg file on the remote host when we will run svn on this host!
|
;; 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))
|
(let ((file-name (svn-expand-filename-for-remote-access svn-status-temp-arg-file)))
|
||||||
;; (message "svn-status-create-arg-file %s: %s" default-directory 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)
|
(let ((st-info file-info-list))
|
||||||
(let ((st-info file-info-list))
|
(while st-info
|
||||||
(while st-info
|
(insert (svn-status-line-info->filename (car st-info)))
|
||||||
(insert (svn-status-line-info->filename (car st-info)))
|
(insert "\n")
|
||||||
(insert "\n")
|
(setq st-info (cdr st-info)))
|
||||||
(setq st-info (cdr st-info)))
|
(setq svn-arg-file-content (buffer-substring-no-properties (point-min) (point-max)))))))
|
||||||
|
|
||||||
(insert postfix))))
|
|
||||||
|
|
||||||
(defun svn-status-show-process-buffer-internal (&optional scroll-to-top)
|
(defun svn-status-show-process-buffer-internal (&optional scroll-to-top)
|
||||||
(let ((cur-buff (current-buffer)))
|
(let ((cur-buff (current-buffer)))
|
||||||
@ -3722,7 +3725,7 @@ See `svn-status-marked-files' for what counts as selected."
|
|||||||
(let ((switches (svn-status-svn-log-switches arg))
|
(let ((switches (svn-status-svn-log-switches arg))
|
||||||
(svn-status-get-line-information-for-file t))
|
(svn-status-get-line-information-for-file t))
|
||||||
;; (message "svn-status-show-svn-log %S" arg)
|
;; (message "svn-status-show-svn-log %S" arg)
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
|
(svn-status-create-arg-file (svn-status-marked-files))
|
||||||
(svn-run t t 'log "log" "--targets" svn-status-temp-arg-file switches)))
|
(svn-run t t 'log "log" "--targets" svn-status-temp-arg-file switches)))
|
||||||
|
|
||||||
(defun svn-status-version ()
|
(defun svn-status-version ()
|
||||||
@ -3739,7 +3742,7 @@ The version number of the client is cached in `svn-client-version'."
|
|||||||
(with-current-buffer svn-status-last-output-buffer-name
|
(with-current-buffer svn-status-last-output-buffer-name
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(setq svn-client-version
|
(setq svn-client-version
|
||||||
(when (re-search-forward "svn, version \\([0-9\.]+\\) " nil t)
|
(when (re-search-forward "svn, version \\([0-9\.]+\\)" nil t)
|
||||||
(mapcar 'string-to-number (split-string (match-string 1) "\\."))))
|
(mapcar 'string-to-number (split-string (match-string 1) "\\."))))
|
||||||
(let ((buffer-read-only nil))
|
(let ((buffer-read-only nil))
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
@ -3751,11 +3754,16 @@ The version number of the client is cached in `svn-client-version'."
|
|||||||
(set-window-configuration window-conf)
|
(set-window-configuration window-conf)
|
||||||
version-string))))
|
version-string))))
|
||||||
|
|
||||||
|
(defun svn-compute-svn-client-version ()
|
||||||
|
"Ensure that svn-client-version is available."
|
||||||
|
(unless svn-client-version
|
||||||
|
(svn-status-version)))
|
||||||
|
|
||||||
(defun svn-status-info ()
|
(defun svn-status-info ()
|
||||||
"Run `svn info' on all selected files.
|
"Run `svn info' on all selected files.
|
||||||
See `svn-status-marked-files' for what counts as selected."
|
See `svn-status-marked-files' for what counts as selected."
|
||||||
(interactive)
|
(interactive)
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
|
(svn-status-create-arg-file (svn-status-marked-files))
|
||||||
(svn-run t t 'info "info" "--targets" svn-status-temp-arg-file))
|
(svn-run t t 'info "info" "--targets" svn-status-temp-arg-file))
|
||||||
|
|
||||||
(defun svn-status-info-for-path (path)
|
(defun svn-status-info-for-path (path)
|
||||||
@ -3962,7 +3970,7 @@ See `svn-status-marked-files' for what counts as selected.
|
|||||||
When this function is called with a prefix argument, use the actual file instead."
|
When this function is called with a prefix argument, use the actual file instead."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(message "adding: %S" (svn-status-get-file-list-names (not arg)))
|
(message "adding: %S" (svn-status-get-file-list-names (not arg)))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-get-file-list (not arg)) "")
|
(svn-status-create-arg-file (svn-status-get-file-list (not arg)))
|
||||||
(svn-run t t 'add "add" "--targets" svn-status-temp-arg-file))
|
(svn-run t t 'add "add" "--targets" svn-status-temp-arg-file))
|
||||||
|
|
||||||
(defun svn-status-add-file (arg)
|
(defun svn-status-add-file (arg)
|
||||||
@ -3973,7 +3981,7 @@ See `svn-status-marked-files' for what counts as selected.
|
|||||||
When this function is called with a prefix argument, use the actual file instead."
|
When this function is called with a prefix argument, use the actual file instead."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(message "adding: %S" (svn-status-get-file-list-names (not arg)))
|
(message "adding: %S" (svn-status-get-file-list-names (not arg)))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-get-file-list (not arg)) "")
|
(svn-status-create-arg-file (svn-status-get-file-list (not arg)))
|
||||||
(svn-run t t 'add "add" "--non-recursive" "--targets" svn-status-temp-arg-file))
|
(svn-run t t 'add "add" "--non-recursive" "--targets" svn-status-temp-arg-file))
|
||||||
|
|
||||||
(defun svn-status-lock (arg)
|
(defun svn-status-lock (arg)
|
||||||
@ -3981,7 +3989,7 @@ When this function is called with a prefix argument, use the actual file instead
|
|||||||
See `svn-status-marked-files' for what counts as selected."
|
See `svn-status-marked-files' for what counts as selected."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(message "locking: %S" (svn-status-get-file-list-names t))
|
(message "locking: %S" (svn-status-get-file-list-names t))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-get-file-list t) "")
|
(svn-status-create-arg-file (svn-status-get-file-list t))
|
||||||
(svn-run t t 'lock "lock" "--targets" svn-status-temp-arg-file))
|
(svn-run t t 'lock "lock" "--targets" svn-status-temp-arg-file))
|
||||||
|
|
||||||
(defun svn-status-unlock (arg)
|
(defun svn-status-unlock (arg)
|
||||||
@ -3989,7 +3997,7 @@ See `svn-status-marked-files' for what counts as selected."
|
|||||||
See `svn-status-marked-files' for what counts as selected."
|
See `svn-status-marked-files' for what counts as selected."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(message "unlocking: %S" (svn-status-get-file-list-names t))
|
(message "unlocking: %S" (svn-status-get-file-list-names t))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-get-file-list t) "")
|
(svn-status-create-arg-file (svn-status-get-file-list t))
|
||||||
(svn-run t t 'unlock "unlock" "--targets" svn-status-temp-arg-file))
|
(svn-run t t 'unlock "unlock" "--targets" svn-status-temp-arg-file))
|
||||||
|
|
||||||
(defun svn-status-make-directory (dir)
|
(defun svn-status-make-directory (dir)
|
||||||
@ -4047,9 +4055,10 @@ user can enter a new file name, or an existing directory: this is used as the ar
|
|||||||
(svn-status-line-info->full-path (car marked-files))))
|
(svn-status-line-info->full-path (car marked-files))))
|
||||||
;;TODO: (when file-exists-p but-no-dir-p dest (error "%s already exists" dest))
|
;;TODO: (when file-exists-p but-no-dir-p dest (error "%s already exists" dest))
|
||||||
;;multiple files selected, so prompt for existing directory to mv them into.
|
;;multiple files selected, so prompt for existing directory to mv them into.
|
||||||
(setq dest (svn-read-directory-name
|
(setq dest (expand-file-name
|
||||||
(format "%s %d files to directory: " manyprompt num-of-files)
|
(svn-read-directory-name
|
||||||
(svn-status-directory-containing-point t) nil t))
|
(format "%s %d files to directory: " manyprompt num-of-files)
|
||||||
|
(svn-status-directory-containing-point t) nil t)))
|
||||||
(unless (file-directory-p dest)
|
(unless (file-directory-p dest)
|
||||||
(error "%s is not a directory" dest)))
|
(error "%s is not a directory" dest)))
|
||||||
(when (string= dest "")
|
(when (string= dest "")
|
||||||
@ -4155,7 +4164,7 @@ See `svn-status-marked-files' for what counts as selected."
|
|||||||
(format "Revert %s? " (svn-status-line-info->filename (car marked-files)))
|
(format "Revert %s? " (svn-status-line-info->filename (car marked-files)))
|
||||||
(format "Revert %d files? " num-of-files)))
|
(format "Revert %d files? " num-of-files)))
|
||||||
(message "reverting: %S" (svn-status-marked-file-names))
|
(message "reverting: %S" (svn-status-marked-file-names))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
|
(svn-status-create-arg-file (svn-status-marked-files))
|
||||||
(svn-run t t 'revert "revert" "--targets" svn-status-temp-arg-file))))
|
(svn-run t t 'revert "revert" "--targets" svn-status-temp-arg-file))))
|
||||||
|
|
||||||
(defun svn-file-revert ()
|
(defun svn-file-revert ()
|
||||||
@ -4178,7 +4187,7 @@ Forcing the deletion can also be used to delete files not under svn control."
|
|||||||
(format "%sRemove %s? " (if force "Force " "") (svn-status-line-info->filename (car marked-files)))
|
(format "%sRemove %s? " (if force "Force " "") (svn-status-line-info->filename (car marked-files)))
|
||||||
(format "%sRemove %d files? " (if force "Force " "") num-of-files)))
|
(format "%sRemove %d files? " (if force "Force " "") num-of-files)))
|
||||||
(message "removing: %S" (svn-status-marked-file-names))
|
(message "removing: %S" (svn-status-marked-file-names))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
|
(svn-status-create-arg-file (svn-status-marked-files))
|
||||||
(if force
|
(if force
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(svn-run t t 'rm "rm" "--force" "--targets" svn-status-temp-arg-file)
|
(svn-run t t 'rm "rm" "--force" "--targets" svn-status-temp-arg-file)
|
||||||
@ -4202,8 +4211,7 @@ When called with a negative prefix argument, only update the selected files."
|
|||||||
(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-compute-svn-client-version)
|
||||||
(svn-status-version))
|
|
||||||
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 5))
|
(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 "--non-interactive")) ;; svn version < 1.5
|
||||||
(setq update-extra-arg (list "--accept" "postpone"))) ;; svn version >= 1.5
|
(setq update-extra-arg (list "--accept" "postpone"))) ;; svn version >= 1.5
|
||||||
@ -4313,7 +4321,7 @@ See `svn-status-marked-files' for what counts as selected."
|
|||||||
(format "Resolve %s? " (svn-status-line-info->filename (car marked-files)))
|
(format "Resolve %s? " (svn-status-line-info->filename (car marked-files)))
|
||||||
(format "Resolve %d files? " num-of-files)))
|
(format "Resolve %d files? " num-of-files)))
|
||||||
(message "resolving: %S" (svn-status-marked-file-names))
|
(message "resolving: %S" (svn-status-marked-file-names))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
|
(svn-status-create-arg-file (svn-status-marked-files))
|
||||||
(svn-run t t 'resolved "resolved" "--targets" svn-status-temp-arg-file))))
|
(svn-run t t 'resolved "resolved" "--targets" svn-status-temp-arg-file))))
|
||||||
|
|
||||||
|
|
||||||
@ -4566,9 +4574,12 @@ names are relative to the directory where `svn-status' was run."
|
|||||||
(progn
|
(progn
|
||||||
(message "Getting revision %s of %s, target: %s" revision file-name
|
(message "Getting revision %s of %s, target: %s" revision file-name
|
||||||
(expand-file-name(concat default-directory file-name-with-revision)))
|
(expand-file-name(concat default-directory file-name-with-revision)))
|
||||||
|
(svn-compute-svn-client-version)
|
||||||
(let ((content
|
(let ((content
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
(if (string= revision "BASE")
|
(if (and (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 7))
|
||||||
|
(string= revision "BASE"))
|
||||||
|
;; Shortcut: Take the file from the file system when using svn client < v1.7
|
||||||
(insert-file-contents (concat (svn-wc-adm-dir-name)
|
(insert-file-contents (concat (svn-wc-adm-dir-name)
|
||||||
"/text-base/"
|
"/text-base/"
|
||||||
(file-name-nondirectory file-name)
|
(file-name-nondirectory file-name)
|
||||||
@ -5066,8 +5077,7 @@ Commands:
|
|||||||
(setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-propedit-file-name))
|
(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-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
|
||||||
@ -5194,7 +5204,7 @@ Commands:
|
|||||||
(setq svn-status-operated-on-dot
|
(setq svn-status-operated-on-dot
|
||||||
(and (= 1 (length svn-status-files-to-commit))
|
(and (= 1 (length svn-status-files-to-commit))
|
||||||
(string= "." (svn-status-line-info->filename (car svn-status-files-to-commit)))))
|
(string= "." (svn-status-line-info->filename (car svn-status-files-to-commit)))))
|
||||||
(svn-status-create-arg-file svn-status-temp-arg-file "" svn-status-files-to-commit "")
|
(svn-status-create-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
|
||||||
@ -5802,9 +5812,6 @@ Currently is the output from the svn update command known."
|
|||||||
"Toggle svn blame minor mode.
|
"Toggle svn blame minor mode.
|
||||||
With ARG, turn svn blame minor mode on if ARG is positive, off otherwise.
|
With ARG, turn svn blame minor mode on if ARG is positive, off otherwise.
|
||||||
|
|
||||||
Note: This mode does not yet work on XEmacs...
|
|
||||||
It is probably because the revisions are in 'before-string properties of overlays
|
|
||||||
|
|
||||||
Key bindings:
|
Key bindings:
|
||||||
\\{svn-blame-mode-map}"
|
\\{svn-blame-mode-map}"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
@ -5834,12 +5841,12 @@ The current buffer must contain a valid output from svn blame"
|
|||||||
;; (when (overlay-get ov 'svn-blame-line-info)
|
;; (when (overlay-get ov 'svn-blame-line-info)
|
||||||
;; (delete-overlay ov)))
|
;; (delete-overlay ov)))
|
||||||
(while (and (not (eobp)) (< (point) limit))
|
(while (and (not (eobp)) (< (point) limit))
|
||||||
|
(setq s (buffer-substring-no-properties (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col)))
|
||||||
|
(delete-region (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col))
|
||||||
(setq ov (make-overlay (point) (point)))
|
(setq ov (make-overlay (point) (point)))
|
||||||
(overlay-put ov 'svn-blame-line-info t)
|
(overlay-put ov 'svn-blame-line-info t)
|
||||||
(setq s (buffer-substring-no-properties (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col)))
|
|
||||||
(overlay-put ov 'before-string (propertize s 'face 'svn-status-blame-rev-number-face))
|
(overlay-put ov 'before-string (propertize s 'face 'svn-status-blame-rev-number-face))
|
||||||
(overlay-put ov 'rev-info (delete "" (split-string s " ")))
|
(overlay-put ov 'rev-info (delete "" (split-string s " ")))
|
||||||
(delete-region (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col))
|
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(setq line (1+ line)))))
|
(setq line (1+ line)))))
|
||||||
(let* ((buf-name (format "*svn-blame: %s <%s>*"
|
(let* ((buf-name (format "*svn-blame: %s <%s>*"
|
||||||
@ -6009,18 +6016,12 @@ You can send raw data to the process via \\[svn-process-send-string]."
|
|||||||
(with-current-buffer (get-buffer-create svn-process-buffer-name)
|
(with-current-buffer (get-buffer-create svn-process-buffer-name)
|
||||||
(setq old-process-default-dir default-directory)
|
(setq old-process-default-dir default-directory)
|
||||||
(setq default-directory directory)) ;; update the default-directory for the *svn-process* buffer
|
(setq default-directory directory)) ;; update the default-directory for the *svn-process* buffer
|
||||||
(svn-run nil t 'parse-info "info" ".")
|
(svn-status-parse-info t)
|
||||||
(with-current-buffer svn-process-buffer-name
|
(or (plist-get svn-status-base-info :repository-root)
|
||||||
;; (message "svn-status-repo-for-path: %s: default-directory: %s directory: %s old-process-default-dir: %s" svn-process-buffer-name default-directory directory old-process-default-dir)
|
(if (plist-get svn-status-base-info :repository-uuid)
|
||||||
(setq default-directory old-process-default-dir)
|
(concat "Svn Repo UUID: " (plist-get svn-status-base-info :repository-uuid))
|
||||||
(goto-char (point-min))
|
|
||||||
(let ((case-fold-search t))
|
|
||||||
(if (search-forward "repository root: " nil t)
|
|
||||||
(buffer-substring-no-properties (point) (svn-point-at-eol))
|
|
||||||
(when (search-forward "repository uuid: " nil t)
|
|
||||||
(message "psvn.el: Detected an old svn working copy in '%s'. Please check it out again to get a 'Repository Root' entry in the svn info output."
|
(message "psvn.el: Detected an old svn working copy in '%s'. Please check it out again to get a 'Repository Root' entry in the svn info output."
|
||||||
default-directory)
|
default-directory)))))
|
||||||
(concat "Svn Repo UUID: " (buffer-substring-no-properties (point) (svn-point-at-eol)))))))))
|
|
||||||
|
|
||||||
(defun svn-status-base-dir (&optional start-directory)
|
(defun svn-status-base-dir (&optional start-directory)
|
||||||
"Find the svn root directory for the current working copy.
|
"Find the svn root directory for the current working copy.
|
||||||
@ -6031,31 +6032,61 @@ Return nil, if not in a svn working copy."
|
|||||||
(if (not (eq base-dir 'not-found))
|
(if (not (eq base-dir 'not-found))
|
||||||
base-dir
|
base-dir
|
||||||
;; (message "calculating base-dir for %s" start-dir)
|
;; (message "calculating base-dir for %s" start-dir)
|
||||||
(unless svn-client-version
|
(svn-compute-svn-client-version)
|
||||||
(svn-status-version))
|
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
|
||||||
(let* ((base-dir start-dir)
|
(cond
|
||||||
(repository-root (svn-status-repo-for-path base-dir))
|
((and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
|
||||||
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
|
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir))) ;; svn version < 1.3
|
||||||
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
|
((and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 7))
|
||||||
(dir-below (expand-file-name base-dir)))
|
(setq base-dir (svn-status-base-dir-for-old-svn-client start-dir))) ;; svn version < 1.7
|
||||||
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
|
(t
|
||||||
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
|
(setq base-dir (svn-status-base-dir-1 start-dir))))
|
||||||
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir)) ;; svn version < 1.3
|
(when base-dir
|
||||||
(while (when (and dir-below (file-exists-p dot-svn-dir))
|
(svn-puthash start-dir base-dir svn-status-base-dir-cache))
|
||||||
(setq base-dir (file-name-directory dot-svn-dir))
|
(svn-status-message 7 "svn-status-base-dir %s => %s" start-dir base-dir)
|
||||||
(string-match "\\(.+/\\).+/" dir-below)
|
base-dir)))
|
||||||
(setq dir-below
|
|
||||||
(and (string-match "\\(.*/\\)[^/]+/" dir-below)
|
(defun svn-status-base-dir-1 (&optional start-directory)
|
||||||
(match-string 1 dir-below)))
|
"Find the svn root directory for the current working copy.
|
||||||
;; (message "base-dir: %s, dir-below: %s, dot-svn-dir: %s in-tree: %s" base-dir dir-below dot-svn-dir in-tree)
|
Return nil, if not in a svn working copy.
|
||||||
(when dir-below
|
This function is used for svn clients version 1.7 and up."
|
||||||
(if (string= (svn-status-repo-for-path dir-below) repository-root)
|
(let ((default-directory (if start-directory
|
||||||
(setq dot-svn-dir (concat dir-below (svn-wc-adm-dir-name)))
|
(expand-file-name start-directory)
|
||||||
(setq dir-below nil)))))
|
(symbol-value 'default-directory)))
|
||||||
(setq base-dir (and in-tree base-dir)))
|
parent
|
||||||
(svn-puthash start-dir base-dir svn-status-base-dir-cache)
|
wc-root)
|
||||||
(svn-status-message 7 "svn-status-base-dir %s => %s" start-dir base-dir)
|
(when (svn-version-controlled-dir-p default-directory)
|
||||||
base-dir))))
|
(svn-status-parse-info t)
|
||||||
|
(setq wc-root (file-name-as-directory (plist-get svn-status-base-info :working-copy-root-path)))
|
||||||
|
(when wc-root
|
||||||
|
;; traversing up the hierarchy shortens the path name. Stop if
|
||||||
|
;; it doesn't, e.g we reached / already.
|
||||||
|
(setq parent (expand-file-name (concat wc-root "..")))
|
||||||
|
(or (and (< (length parent) (length wc-root))
|
||||||
|
(svn-status-base-dir-1 (expand-file-name (concat wc-root ".."))))
|
||||||
|
wc-root)))))
|
||||||
|
|
||||||
|
(defun svn-status-base-dir-for-old-svn-client (&optional start-directory)
|
||||||
|
"Find the svn root directory for the current working copy.
|
||||||
|
Return nil, if not in a svn working copy.
|
||||||
|
This function is used for svn clients version 1.6 and below."
|
||||||
|
(let* ((base-dir (expand-file-name (or start-directory default-directory)))
|
||||||
|
(repository-root (svn-status-repo-for-path base-dir))
|
||||||
|
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
|
||||||
|
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
|
||||||
|
(dir-below (expand-file-name base-dir)))
|
||||||
|
(while (when (and dir-below (file-exists-p dot-svn-dir))
|
||||||
|
(setq base-dir (file-name-directory dot-svn-dir))
|
||||||
|
(string-match "\\(.+/\\).+/" dir-below)
|
||||||
|
(setq dir-below
|
||||||
|
(and (string-match "\\(.*/\\)[^/]+/" dir-below)
|
||||||
|
(match-string 1 dir-below)))
|
||||||
|
;; (message "base-dir: %s, dir-below: %s, dot-svn-dir: %s in-tree: %s" base-dir dir-below dot-svn-dir in-tree)
|
||||||
|
(when dir-below
|
||||||
|
(if (string= (svn-status-repo-for-path dir-below) repository-root)
|
||||||
|
(setq dot-svn-dir (concat dir-below (svn-wc-adm-dir-name)))
|
||||||
|
(setq dir-below nil)))))
|
||||||
|
(and in-tree base-dir)))
|
||||||
|
|
||||||
(defun svn-status-base-dir-for-ancient-svn-client (&optional start-directory)
|
(defun svn-status-base-dir-for-ancient-svn-client (&optional start-directory)
|
||||||
"Find the svn root directory for the current working copy.
|
"Find the svn root directory for the current working copy.
|
||||||
@ -6447,7 +6478,11 @@ working directory."
|
|||||||
(setq string-prefix ""))
|
(setq string-prefix ""))
|
||||||
(with-output-to-string
|
(with-output-to-string
|
||||||
(dolist (e (ring-elements svn-last-cmd-ring))
|
(dolist (e (ring-elements svn-last-cmd-ring))
|
||||||
(princ (format "%s%s: svn %s <%s>\n" string-prefix (nth 0 e) (mapconcat 'concat (nth 1 e) " ") (nth 2 e))))))
|
(princ (format "%s%s: svn %s <%s>\n" string-prefix (nth 0 e) (mapconcat 'concat (nth 1 e) " ") (nth 2 e)))
|
||||||
|
(when (nth 3 e)
|
||||||
|
(princ (format "%s<arg-file-content>\n" string-prefix))
|
||||||
|
(princ (nth 3 e))
|
||||||
|
(princ (format "%s</arg-file-content>\n" string-prefix))))))
|
||||||
|
|
||||||
;; --------------------------------------------------------------------------------
|
;; --------------------------------------------------------------------------------
|
||||||
;; reporting bugs
|
;; reporting bugs
|
||||||
@ -6474,6 +6509,9 @@ working directory."
|
|||||||
(dolist (elem (svn-process-environment))
|
(dolist (elem (svn-process-environment))
|
||||||
(when (member (car (split-string elem "=")) '("LC_MESSAGES" "LC_ALL" "LANG"))
|
(when (member (car (split-string elem "=")) '("LC_MESSAGES" "LC_ALL" "LANG"))
|
||||||
(insert (format " %s\n" elem))))
|
(insert (format " %s\n" elem))))
|
||||||
|
(when svn-process-handle-error-msg
|
||||||
|
(insert "\nsvn client error message:\n")
|
||||||
|
(svn-insert-indented-lines svn-process-handle-error-msg))
|
||||||
(insert "\nLast svn commands:\n")
|
(insert "\nLast svn commands:\n")
|
||||||
(svn-insert-indented-lines (svn-status-last-commands))
|
(svn-insert-indented-lines (svn-status-last-commands))
|
||||||
(insert (format "\nContent of the <%s> buffer:\n" last-output-buffer-name))
|
(insert (format "\nContent of the <%s> buffer:\n" last-output-buffer-name))
|
||||||
@ -6519,5 +6557,6 @@ A variable will keep its value, if it is specified in `svn-prepare-for-reload-do
|
|||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
;; indent-tabs-mode: nil
|
;; indent-tabs-mode: nil
|
||||||
|
;; time-stamp-pattern: "300/(defconst svn-psvn-revision \"%:y-%02m-%02d, %02H:%02M:%02S\" \"The revision date of psvn.\")$"
|
||||||
;; End:
|
;; End:
|
||||||
;;; psvn.el ends here
|
;;; psvn.el ends here
|
||||||
|
53
pullrev.sh
Executable file
53
pullrev.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "What?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
repo="https://svn.apache.org/repos/asf/subversion/trunk"
|
||||||
|
#repo="https://svn.apache.org/repos/asf/subversion/branches/1.11.x"
|
||||||
|
prefix=`rpmspec -q --queryformat='%{name}-%{version}\n' ./subversion.spec | sed 1q`
|
||||||
|
suffix="r$1${2:++}"
|
||||||
|
fn="${prefix}-${suffix}.patch"
|
||||||
|
vcurl="http://svn.apache.org/viewvc?view=revision&revision="
|
||||||
|
|
||||||
|
if test -f ${fn}; then
|
||||||
|
mv -v -f ${fn} ${fn}\~
|
||||||
|
echo "# $0 $*" > ${fn}
|
||||||
|
sed '1{/#.*pullrev/d;};/^--- /,$d' < ${fn}\~ >> ${fn}
|
||||||
|
else
|
||||||
|
echo "# $0 $*" > ${fn}
|
||||||
|
fi
|
||||||
|
|
||||||
|
new=0
|
||||||
|
for r in $*; do
|
||||||
|
if ! grep -q "${vcurl}${r}" ${fn}; then
|
||||||
|
echo "${vcurl}${r}"
|
||||||
|
new=1
|
||||||
|
fi
|
||||||
|
done >> ${fn}
|
||||||
|
|
||||||
|
[ $new -eq 0 ] || echo >> ${fn}
|
||||||
|
|
||||||
|
prev=/dev/null
|
||||||
|
for r in $*; do
|
||||||
|
echo "+ fetching ${r}"
|
||||||
|
this=`mktemp /tmp/pullrevXXXXXX`
|
||||||
|
svn diff -c ${r} ${repo} | filterdiff --remove-timestamps --clean -x 'CHANGES' -x 'next-number' -x 'STATUS' \
|
||||||
|
--addprefix="${prefix}/" > ${this}
|
||||||
|
next=`mktemp /tmp/pullrevXXXXXX`
|
||||||
|
combinediff --quiet ${prev} ${this} > ${next}
|
||||||
|
rm -f "${this}"
|
||||||
|
[ "${prev}" = "/dev/null" ] || rm -f "${prev}"
|
||||||
|
prev=${next}
|
||||||
|
done
|
||||||
|
|
||||||
|
cat ${prev} >> ${fn}
|
||||||
|
|
||||||
|
vi "${fn}"
|
||||||
|
echo "+ git add ${fn}"
|
||||||
|
git add "${fn}"
|
||||||
|
echo "+ spec template:"
|
||||||
|
echo "PatchN: ${fn}"
|
||||||
|
echo "%patchN -p1 -b .${suffix}"
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
75419159b50661092c4137449940b5cc subversion-1.6.11.tar.bz2
|
SHA512 (subversion-1.14.2.tar.bz2) = 20ada4688ca07d9fb8da4b7d53b5084568652a3b9418c65e688886bae950a16a3ff37710fcfc9c29ef14a89e75b2ceec4e9cf35d5876a7896ebc2b512cfb9ecc
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- subversion-1.4.3/build/ac-macros/java.m4.java
|
|
||||||
+++ subversion-1.4.3/build/ac-macros/java.m4
|
|
||||||
@@ -82,7 +82,7 @@
|
|
||||||
if test "$os_arch" = "Darwin"; then
|
|
||||||
AC_MSG_WARN([You may need to install the latest Java Development package from http://connect.apple.com/. Apple no longer includes the JNI header files by default on Java updates.])
|
|
||||||
fi
|
|
||||||
- JDK_SUITABLE=no
|
|
||||||
+ JDK_SUITABLE=yes
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT([$JDK_SUITABLE])
|
|
||||||
|
|
84
subversion-1.12.0-linking.patch
Normal file
84
subversion-1.12.0-linking.patch
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
|
||||||
|
Fix the way libtool is used to match standard practice:
|
||||||
|
|
||||||
|
a) link ONLY libraries using -rpath $(libdir), not executables
|
||||||
|
.. this avoids adding an RPATH for $libdir to executables
|
||||||
|
b) link non-installable test binaries using -no-install
|
||||||
|
.. only for convenience but should speed up builds slightly(?)
|
||||||
|
|
||||||
|
--- subversion-1.12.0/build.conf.linking
|
||||||
|
+++ subversion-1.12.0/build.conf
|
||||||
|
@@ -572,7 +572,7 @@
|
||||||
|
path = subversion/bindings/swig/python/libsvn_swig_py
|
||||||
|
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
|
||||||
|
apriconv apr python swig
|
||||||
|
-link-cmd = $(LINK)
|
||||||
|
+link-cmd = $(LINK_LIB)
|
||||||
|
install = swig-py-lib
|
||||||
|
# need special build rule to include -DSWIGPYTHON
|
||||||
|
compile-cmd = $(COMPILE_SWIG_PY)
|
||||||
|
@@ -598,7 +598,7 @@
|
||||||
|
lang = ruby
|
||||||
|
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
|
||||||
|
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig
|
||||||
|
-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)
|
||||||
|
@@ -769,6 +769,7 @@
|
||||||
|
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
|
||||||
|
msvc-static = yes
|
||||||
|
undefined-lib-symbols = yes
|
||||||
|
+link-cmd = $(LINK_TEST_LIB)
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Tests for libsvn_fs_base
|
||||||
|
--- subversion-1.12.0/build/generator/gen_base.py.linking
|
||||||
|
+++ subversion-1.12.0/build/generator/gen_base.py
|
||||||
|
@@ -599,7 +599,7 @@
|
||||||
|
self.install = options.get('install')
|
||||||
|
self.compile_cmd = options.get('compile-cmd')
|
||||||
|
self.sources = options.get('sources', '*.c *.cpp')
|
||||||
|
- self.link_cmd = options.get('link-cmd', '$(LINK)')
|
||||||
|
+ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
|
||||||
|
|
||||||
|
self.external_lib = options.get('external-lib')
|
||||||
|
self.external_project = options.get('external-project')
|
||||||
|
@@ -659,6 +659,14 @@
|
||||||
|
|
||||||
|
self.msvc_force_static = options.get('msvc-force-static') == 'yes'
|
||||||
|
|
||||||
|
+ if self.install in ['test', 'bdb-test', 'sub-test', ]:
|
||||||
|
+ self.link_cmd = '$(LINK_TEST)'
|
||||||
|
+ elif self.install in ['bin', 'tools']:
|
||||||
|
+ self.link_cmd = '$(LINK_EXE)'
|
||||||
|
+ elif self.link_cmd == '$(LINK_LIB)':
|
||||||
|
+ raise GenError('ERROR: Unknown executable link type for ' + self.name + \
|
||||||
|
+ ': ' + self.link_cmd + ' (' + self.install + ')')
|
||||||
|
+
|
||||||
|
def add_dependencies(self):
|
||||||
|
TargetLinked.add_dependencies(self)
|
||||||
|
|
||||||
|
--- subversion-1.12.0/Makefile.in.linking
|
||||||
|
+++ subversion-1.12.0/Makefile.in
|
||||||
|
@@ -268,11 +268,14 @@
|
||||||
|
COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c
|
||||||
|
COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c
|
||||||
|
|
||||||
|
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||||
|
-LINK_LIB = $(LINK) $(LT_SO_VERSION)
|
||||||
|
-LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||||
|
-LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
|
||||||
|
-LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS)
|
||||||
|
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||||
|
+LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
|
||||||
|
+LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
|
||||||
|
+LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
|
||||||
|
+LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS) -no-install
|
||||||
|
+LINK_TEST = $(LINK) -no-install
|
||||||
|
+LINK_TEST_LIB = $(LINK_TEST) -avoid-version
|
||||||
|
+LINK_EXE = $(LINK)
|
||||||
|
|
||||||
|
# special link rule for mod_dav_svn
|
||||||
|
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared
|
14
subversion-1.14.0-testwarn.patch
Normal file
14
subversion-1.14.0-testwarn.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
Suppress gcc 10 warning.
|
||||||
|
|
||||||
|
--- subversion-1.14.0/subversion/tests/svn_test.h.testwarn
|
||||||
|
+++ subversion-1.14.0/subversion/tests/svn_test.h
|
||||||
|
@@ -128,7 +128,7 @@
|
||||||
|
return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, \
|
||||||
|
"Strings not equal\n Expected: '%s'\n Found: '%s'" \
|
||||||
|
"\n at %s:%d", \
|
||||||
|
- tst_str2, tst_str1, __FILE__, __LINE__); \
|
||||||
|
+ tst_str2 ? tst_str2 : "(NULL)", tst_str1 ? tst_str1 : "(NULL)", __FILE__, __LINE__); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
/** Handy macro for testing integer equality.
|
30
subversion-1.14.1-fixjavatests.patch
Normal file
30
subversion-1.14.1-fixjavatests.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
See upstream dev@subversion thread. Fixes intermittent failure of
|
||||||
|
javahl tests, particularly reproducible on aarch64.
|
||||||
|
|
||||||
|
Message-ID: <11de5f5c-5059-b973-95a1-385e7913a63a@syntevo.com>
|
||||||
|
From: Alexandr Miloslavskiy
|
||||||
|
|
||||||
|
--- subversion-1.14.1/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java.fixjavatests
|
||||||
|
+++ subversion-1.14.1/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
|
||||||
|
@@ -4676,7 +4676,19 @@
|
||||||
|
// RuntimeException("Test exception") is expected here
|
||||||
|
}
|
||||||
|
|
||||||
|
- tunnelAgent.joinAndTest();
|
||||||
|
+ // In this test, there is a race condition that sometimes results in
|
||||||
|
+ // IOException when 'WAIT_TUNNEL' tries to read from a pipe that
|
||||||
|
+ // already has its read end closed. This is not an error, but
|
||||||
|
+ // it's hard to distinguish this case from other IOException which
|
||||||
|
+ // indicate a problem. To reproduce, simply wrap this test's body in
|
||||||
|
+ // a loop. The workaround is to ignore any detected IOException.
|
||||||
|
+ //
|
||||||
|
+ // tunnelAgent.joinAndTest();
|
||||||
|
+ try {
|
||||||
|
+ tunnelAgent.join();
|
||||||
|
+ } catch (InterruptedException e) {
|
||||||
|
+ e.printStackTrace ();
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
14
subversion-1.14.1-python-3.11-build.patch
Normal file
14
subversion-1.14.1-python-3.11-build.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use read_file instead of deprecated readfp - removed in Python 3.11
|
||||||
|
|
||||||
|
diff -ur subversion-1.14.1/build/generator/gen_base.py subversion-1.14.1-patched/build/generator/gen_base.py
|
||||||
|
--- subversion-1.14.1/build/generator/gen_base.py 2019-11-04 06:59:36.000000000 +0100
|
||||||
|
+++ subversion-1.14.1-patched/build/generator/gen_base.py 2021-12-15 14:04:50.041649320 +0100
|
||||||
|
@@ -76,7 +76,7 @@
|
||||||
|
|
||||||
|
# Now read and parse build.conf
|
||||||
|
parser = configparser.ConfigParser()
|
||||||
|
- parser.readfp(open(fname))
|
||||||
|
+ parser.read_file(open(fname))
|
||||||
|
|
||||||
|
self.conf = build_path(os.path.abspath(fname))
|
||||||
|
|
14
subversion-1.14.1-testnomagic.patch
Normal file
14
subversion-1.14.1-testnomagic.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
Fix intermittent failures when "svn add" guesses a near-empty file is binary and hence
|
||||||
|
the output is different.
|
||||||
|
|
||||||
|
--- subversion-1.14.1/subversion/tests/cmdline/svntest/main.py.testnoautoprops
|
||||||
|
+++ subversion-1.14.1/subversion/tests/cmdline/svntest/main.py
|
||||||
|
@@ -691,6 +691,7 @@
|
||||||
|
|
||||||
|
[miscellany]
|
||||||
|
interactive-conflicts = false
|
||||||
|
+enable-magic-file = no
|
||||||
|
"""
|
||||||
|
if exclusive_wc_locks:
|
||||||
|
config_contents += """
|
23
subversion-1.14.2-soversion.patch
Normal file
23
subversion-1.14.2-soversion.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
Subversion libraries don't get properly versioned so the library
|
||||||
|
names are always "libsvn_foo-1.so.0.0.0". Provide proper
|
||||||
|
versioning information to libtool *without* changing the soname
|
||||||
|
for compatibility with upstream, so on-disk filenames are
|
||||||
|
unique across different releases.
|
||||||
|
|
||||||
|
--- subversion-1.14.2/configure.ac.soversion
|
||||||
|
+++ subversion-1.14.2/configure.ac
|
||||||
|
@@ -112,7 +112,12 @@
|
||||||
|
SVN_APR_MAJOR_VERSION=1
|
||||||
|
fi
|
||||||
|
AC_SUBST(SVN_APR_MAJOR_VERSION)
|
||||||
|
-SVN_LT_SOVERSION="-version-info $svn_lib_ver"
|
||||||
|
+
|
||||||
|
+m4_define([svn_ver_minor], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.\([0-9]*\)\.[0-9]*], [\1]))
|
||||||
|
+m4_define([svn_ver_patch], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.[0-9]*\.\([0-9]*\)], [\1]))
|
||||||
|
+svn_ver_current="`expr $svn_lib_ver + svn_ver_minor`"
|
||||||
|
+
|
||||||
|
+SVN_LT_SOVERSION="-version-info $svn_ver_current:svn_ver_patch:svn_ver_minor"
|
||||||
|
AC_SUBST(SVN_LT_SOVERSION)
|
||||||
|
AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
|
||||||
|
[Subversion library major verson])
|
@ -1,30 +0,0 @@
|
|||||||
--- subversion-1.6.0/build/ac-macros/apr.m4.deplibs
|
|
||||||
+++ subversion-1.6.0/build/ac-macros/apr.m4
|
|
||||||
@@ -76,9 +76,9 @@ AC_DEFUN(SVN_LIB_APR,
|
|
||||||
|
|
||||||
dnl When APR stores the dependent libs in the .la file, we don't need
|
|
||||||
dnl --libs.
|
|
||||||
- SVN_APR_LIBS="`$apr_config --link-libtool --libs`"
|
|
||||||
+ SVN_APR_LIBS="`$apr_config --link-libtool`"
|
|
||||||
if test $? -ne 0; then
|
|
||||||
- AC_MSG_ERROR([apr-config --link-libtool --libs failed])
|
|
||||||
+ AC_MSG_ERROR([apr-config --link-libtool failed])
|
|
||||||
fi
|
|
||||||
|
|
||||||
SVN_APR_EXPORT_LIBS="`$apr_config --link-ld --libs`"
|
|
||||||
--- subversion-1.6.0/build/ac-macros/aprutil.m4.deplibs
|
|
||||||
+++ subversion-1.6.0/build/ac-macros/aprutil.m4
|
|
||||||
@@ -77,11 +77,9 @@ AC_DEFUN(SVN_LIB_APRUTIL,
|
|
||||||
AC_MSG_ERROR([apu-config --prefix failed])
|
|
||||||
fi
|
|
||||||
|
|
||||||
- dnl When APR stores the dependent libs in the .la file, we don't need
|
|
||||||
- dnl --libs.
|
|
||||||
- SVN_APRUTIL_LIBS="`$apu_config --link-libtool --libs`"
|
|
||||||
+ SVN_APRUTIL_LIBS="`$apu_config --link-libtool`"
|
|
||||||
if test $? -ne 0; then
|
|
||||||
- AC_MSG_ERROR([apu-config --link-libtool --libs failed])
|
|
||||||
+ AC_MSG_ERROR([apu-config --link-libtool failed])
|
|
||||||
fi
|
|
||||||
|
|
||||||
SVN_APRUTIL_EXPORT_LIBS="`$apu_config --link-ld --libs`"
|
|
@ -1,62 +0,0 @@
|
|||||||
--- subversion-1.6.0/build.conf.pie
|
|
||||||
+++ subversion-1.6.0/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.0/build/generator/gen_base.py.pie
|
|
||||||
+++ subversion-1.6.0/build/generator/gen_base.py
|
|
||||||
@@ -413,6 +413,9 @@ class TargetExe(TargetLinked):
|
|
||||||
self.manpages = options.get('manpages', '')
|
|
||||||
self.testing = options.get('testing')
|
|
||||||
|
|
||||||
+ if self.install == 'test' or self.install == 'bdb-test':
|
|
||||||
+ self.link_cmd = '$(LINK_TEST)'
|
|
||||||
+
|
|
||||||
def add_dependencies(self):
|
|
||||||
TargetLinked.add_dependencies(self)
|
|
||||||
|
|
||||||
@@ -455,8 +458,11 @@ 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)'
|
|
||||||
+ ### more Makefile-specific stuff:
|
|
||||||
+ if self.install == 'test':
|
|
||||||
+ self.link_cmd = '$(LINK_TEST_LIB)'
|
|
||||||
+ elif self.link_cmd == '$(LINK)':
|
|
||||||
+ self.link_cmd = '$(LINK_LIB)'
|
|
||||||
|
|
||||||
class TargetApacheMod(TargetLib):
|
|
||||||
|
|
||||||
--- subversion-1.6.0/Makefile.in.pie
|
|
||||||
+++ subversion-1.6.0/Makefile.in
|
|
||||||
@@ -184,8 +185,11 @@ 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)
|
|
||||||
+BASE_LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
|
|
||||||
+LINK = $(BASE_LINK) -pie
|
|
||||||
+LINK_TEST = $(BASE_LINK) -no-install
|
|
||||||
+LINK_LIB = $(BASE_LINK) -rpath $(libdir)
|
|
||||||
+LINK_TEST_LIB = $(BASE_LINK)
|
|
||||||
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
|
||||||
|
|
||||||
# special link rule for mod_dav_svn
|
|
@ -1,54 +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.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,273 +0,0 @@
|
|||||||
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>
|
|
@ -1,25 +0,0 @@
|
|||||||
|
|
||||||
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>
|
|
24
subversion-1.8.0-rubybind.patch
Normal file
24
subversion-1.8.0-rubybind.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
Try a little harder to avoid svnserve() bind failures.
|
||||||
|
|
||||||
|
--- subversion-1.8.0/subversion/bindings/swig/ruby/test/util.rb.rubybind
|
||||||
|
+++ subversion-1.8.0/subversion/bindings/swig/ruby/test/util.rb
|
||||||
|
@@ -39,7 +39,8 @@ module SvnTestUtil
|
||||||
|
@realm = "sample realm"
|
||||||
|
|
||||||
|
@svnserve_host = "127.0.0.1"
|
||||||
|
- @svnserve_ports = (64152..64282).collect{|x| x.to_s}
|
||||||
|
+ sport = (50000 + rand(100) * 100)
|
||||||
|
+ @svnserve_ports = (sport..sport + 99).collect{|x| x.to_s}
|
||||||
|
|
||||||
|
@tmp_path = Dir.mktmpdir
|
||||||
|
@wc_path = File.join(@tmp_path, "wc")
|
||||||
|
@@ -252,6 +253,8 @@ realm = #{@realm}
|
||||||
|
"--listen-port", port,
|
||||||
|
"-d", "--foreground")
|
||||||
|
}
|
||||||
|
+ # wait a while for svnserve to attempt a bind() and possibly fail
|
||||||
|
+ sleep(1)
|
||||||
|
pid, status = Process.waitpid2(@svnserve_pid, Process::WNOHANG)
|
||||||
|
if status and status.exited?
|
||||||
|
if $DEBUG
|
16
subversion-1.8.5-swigplWall.patch
Normal file
16
subversion-1.8.5-swigplWall.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
Don't drop -Wall in the swig Perl bindings, otherwise building with
|
||||||
|
e.g. -Wformat-security might break.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1037341
|
||||||
|
|
||||||
|
--- subversion-1.8.5/subversion/bindings/swig/perl/native/Makefile.PL.in.swigplWall
|
||||||
|
+++ subversion-1.8.5/subversion/bindings/swig/perl/native/Makefile.PL.in
|
||||||
|
@@ -54,7 +54,6 @@ my $includes = ' -I/usr/include/apr-1
|
||||||
|
# SWIG is using C++ style comments in an extern "C" code.
|
||||||
|
$cflags =~ s/-ansi\s+//g;
|
||||||
|
$cflags =~ s/-std=c89\s+//g;
|
||||||
|
-$cflags =~ s/-Wall//g;
|
||||||
|
$cflags =~ s/-Wunused//g;
|
||||||
|
$cflags =~ s/-Wshadow//g;
|
||||||
|
$cflags =~ s/-Wstrict-prototypes//g;
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
LoadModule dav_svn_module modules/mod_dav_svn.so
|
LoadModule dav_svn_module modules/mod_dav_svn.so
|
||||||
LoadModule authz_svn_module modules/mod_authz_svn.so
|
LoadModule authz_svn_module modules/mod_authz_svn.so
|
||||||
|
LoadModule dontdothat_module modules/mod_dontdothat.so
|
||||||
|
|
||||||
#
|
#
|
||||||
# Example configuration to enable HTTP access for a directory
|
# Example configuration to enable HTTP access for a directory
|
||||||
@ -9,7 +10,7 @@ LoadModule authz_svn_module modules/mod_authz_svn.so
|
|||||||
#
|
#
|
||||||
# a) readable and writable by the 'apache' user, and
|
# a) readable and writable by the 'apache' user, and
|
||||||
#
|
#
|
||||||
# b) labelled with the 'http_sys_content_rw_t' context if using
|
# b) labelled with the 'httpd_sys_content_t' context if using
|
||||||
# SELinux
|
# SELinux
|
||||||
#
|
#
|
||||||
|
|
||||||
@ -19,8 +20,8 @@ LoadModule authz_svn_module modules/mod_authz_svn.so
|
|||||||
#
|
#
|
||||||
# # cd /var/www/svn
|
# # cd /var/www/svn
|
||||||
# # svnadmin create stuff
|
# # svnadmin create stuff
|
||||||
# # chown -R apache.apache stuff
|
# # chown -R apache:apache stuff
|
||||||
# # chcon -R -t -t http_sys_content_rw_t stuff
|
# # chcon -R -t httpd_sys_content_t stuff
|
||||||
#
|
#
|
||||||
|
|
||||||
#<Location /repos>
|
#<Location /repos>
|
||||||
|
1466
subversion.spec
1466
subversion.spec
File diff suppressed because it is too large
Load Diff
13
svnserve.service
Normal file
13
svnserve.service
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Subversion protocol daemon
|
||||||
|
After=syslog.target network.target
|
||||||
|
Documentation=man:svnserve(8)
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
EnvironmentFile=/etc/sysconfig/svnserve
|
||||||
|
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
|
||||||
|
PrivateTmp=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
4
svnserve.sysconf
Normal file
4
svnserve.sysconf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# OPTIONS is used to pass command-line arguments to svnserve.
|
||||||
|
#
|
||||||
|
# Specify the repository location in -r parameter:
|
||||||
|
OPTIONS="-r /var/svn"
|
1
svnserve.tmpfiles
Normal file
1
svnserve.tmpfiles
Normal file
@ -0,0 +1 @@
|
|||||||
|
D /run/svnserve 0700 root root -
|
1097
upstream-key.gpg
1097
upstream-key.gpg
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user