rpms/subversion/devel psvn.el,1.7,1.8 subversion.spec,1.101,1.102
Joe Orton (jorton)
fedora-extras-commits at redhat.com
Wed Dec 5 19:52:03 UTC 2007
Author: jorton
Update of /cvs/extras/rpms/subversion/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv4354
Modified Files:
psvn.el subversion.spec
Log Message:
* Wed Dec 5 2007 Joe Orton <jorton at redhat.com> 1.4.4-9
- rebuild for OpenLDAP soname bump
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.7 -r 1.8 psvn.el
Index: psvn.el
===================================================================
RCS file: /cvs/extras/rpms/subversion/devel/psvn.el,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- psvn.el 2 Jun 2006 08:48:47 -0000 1.7
+++ psvn.el 5 Dec 2007 19:51:30 -0000 1.8
@@ -1,7 +1,7 @@
;;; psvn.el --- Subversion interface for emacs
-;; Copyright (C) 2002-2006 by Stefan Reichoer
+;; Copyright (C) 2002-2007 by Stefan Reichoer
-;; Author: Stefan Reichoer, <stefan at xsteve.at>
+;; Author: Stefan Reichoer <stefan at xsteve.at>
;; $Id$
;; psvn.el is free software; you can redistribute it and/or modify
@@ -22,7 +22,10 @@
;;; Commentary
;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux,
-;; freebsd5, red hat el3 with svn 1.2.3
+;; freebsd5, red hat el4, ubuntu edgy with svn 1.4.0
+
+;; psvn.el needs at least svn 1.1.0
+;; if you upgrade to a higher version, you need to do a fresh checkout
;; psvn.el is an interface for the revision control tool subversion
;; (see http://subversion.tigris.org)
@@ -51,8 +54,11 @@
;; A - svn-status-add-file-recursively run 'svn add'
;; + - svn-status-make-directory run 'svn mkdir'
;; R - svn-status-mv run 'svn mv'
+;; C - svn-status-cp run 'svn cp'
;; D - svn-status-rm run 'svn rm'
;; M-c - svn-status-cleanup run 'svn cleanup'
+;; k - svn-status-lock run 'svn lock'
+;; K - svn-status-unlock run 'svn unlock'
;; b - svn-status-blame run 'svn blame'
;; X e - svn-status-export run 'svn export'
;; RET - svn-status-find-file-or-examine-directory
@@ -61,13 +67,14 @@
;; E - svn-status-ediff-with-revision
;; X X - svn-status-resolve-conflicts
;; s - svn-status-show-process-buffer
+;; h - svn-status-pop-to-partner-buffer
;; e - svn-status-toggle-edit-cmd-flag
;; ? - svn-status-toggle-hide-unknown
;; _ - svn-status-toggle-hide-unmodified
;; m - svn-status-set-user-mark
;; u - svn-status-unset-user-mark
;; $ - svn-status-toggle-elide
-;; w - svn-status-copy-filename-as-kill
+;; w - svn-status-copy-current-line-info
;; DEL - svn-status-unset-user-mark-backwards
;; * ! - svn-status-unset-all-usermarks
;; * ? - svn-status-mark-unknown
@@ -75,9 +82,12 @@
;; * M - svn-status-mark-modified
;; * D - svn-status-mark-deleted
;; * * - svn-status-mark-changed
+;; * . - svn-status-mark-by-file-ext
+;; * % - svn-status-mark-filename-regexp
;; . - svn-status-goto-root-or-return
;; f - svn-status-find-file
;; o - svn-status-find-file-other-window
+;; C-o - svn-status-find-file-other-window-noselect
;; v - svn-status-view-file-other-window
;; I - svn-status-parse-info
;; V - svn-status-svnversion
@@ -89,9 +99,13 @@
;; P I - svn-status-property-ignore-file-extension
;; P C-i - svn-status-property-edit-svn-ignore
;; P k - svn-status-property-set-keyword-list
+;; P K i - svn-status-property-set-keyword-id
+;; P K d - svn-status-property-set-keyword-date
;; P y - svn-status-property-set-eol-style
;; P x - svn-status-property-set-executable
-;; h - svn-status-use-history
+;; P m - svn-status-property-set-mime-type
+;; H - svn-status-use-history
+;; x - svn-status-update-buffer
;; q - svn-status-bury-buffer
;; C-x C-j - svn-status-dired-jump
@@ -117,7 +131,7 @@
;; The latest version of psvn.el can be found at:
;; 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/psvn psvn
+;; svn co http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs emacs-svn
;; TODO:
;; * shortcut for svn propset svn:keywords "Date" psvn.el
@@ -126,7 +140,6 @@
;; * when editing the command line - offer help from the svn client
;; * finish svn-status-property-set
;; * Add repository browser
-;; * Improve support for svn blame
;; * Get rid of all byte-compiler warnings
;; * SVK working copy support
;; * multiple independent buffers in svn-status-mode
@@ -136,38 +149,42 @@
;; * add implemented
;; * blame implemented
;; * cat implemented
-;; * checkout (co)
+;; * checkout (co) implemented
;; * cleanup implemented
;; * commit (ci) implemented
-;; * copy (cp)
+;; * copy (cp) implemented
;; * delete (del, remove, rm) implemented
;; * diff (di) implemented
;; * export implemented
;; * help (?, h)
-;; * import
+;; * import used (in svn-admin-create-trunk-directory)
;; * info implemented
;; * list (ls) implemented
-;; * lock
+;; * lock implemented
;; * log implemented
;; * merge
;; * mkdir implemented
;; * move (mv, rename, ren) implemented
;; * propdel (pdel) implemented
;; * propedit (pedit, pe) not needed
-;; * propget (pget, pg) used
+;; * propget (pget, pg) used (in svn-status-property-edit)
;; * proplist (plist, pl) implemented
-;; * propset (pset, ps) used
+;; * propset (pset, ps) used (in svn-prop-edit-do-it)
;; * resolved implemented
;; * revert implemented
;; * status (stat, st) implemented
;; * switch (sw)
-;; * unlock
+;; * unlock implemented
;; * update (up) implemented
;; For the not yet implemented commands you should use the command line
;; svn client. If there are user requests for any missing commands I will
;; probably implement them.
+;; There is also limited support for the web-based software project management and bug/issue tracking system trac
+;; Trac ticket links can be enabled in the *svn-log* buffers when using the following:
+;; (setq svn-log-link-handlers '(trac-ticket-short))
+
;; Comments / suggestions and bug reports are welcome!
;; Development notes
@@ -191,6 +208,11 @@
(require 'easymenu)
+(eval-when-compile (require 'dired))
+(eval-when-compile (require 'ediff-util))
+(eval-when-compile (require 'elp))
+(eval-when-compile (require 'pp))
+
(condition-case nil
(progn
(require 'diff-mode))
@@ -201,13 +223,14 @@
;;; user setable variables
(defcustom svn-status-verbose t
- "*Add '-v' to svn status call."
+ "*Add '-v' to svn status call.
+This can be toggled with \\[svn-status-toggle-svn-verbose-flag]."
:type 'boolean
:group 'psvn)
(defcustom svn-log-edit-file-name "++svn-log++"
"*Name of a saved log file.
This can be either absolute, or relative to the default directory
-of the *svn-log-edit* buffer."
+of the `svn-log-edit-buffer-name' buffer."
:type 'file
:group 'psvn)
(put 'svn-log-edit-file-name 'risky-local-variable t)
@@ -221,6 +244,15 @@
This variable takes effect only when psvn.el is being loaded."
:type 'boolean
:group 'psvn)
+(defcustom svn-log-edit-paragraph-start
+ "$\\|[ \t]*$\\|##.*$\\|\\*.*:.*$\\|[ \t]+(.+):.*$"
+ "*Value used for `paragraph-start' in `svn-log-edit-buffer-name' buffer."
+ :type 'regexp
+ :group 'psvn)
+(defcustom svn-log-edit-paragraph-separate "$\\|##.*$"
+ "*Value used for `paragraph-separate' in `svn-log-edit-buffer-name' buffer."
+ :type 'regexp
+ :group 'psvn)
(defcustom svn-status-hide-unknown nil
"*Hide unknown files in `svn-status-buffer-name' buffer.
This can be toggled with \\[svn-status-toggle-hide-unknown]."
@@ -234,13 +266,31 @@
(defcustom svn-status-sort-status-buffer t
[...3820 lines suppressed...]
@@ -4121,14 +5718,14 @@
(erase-buffer)
(insert-buffer-substring result-buffer)
(goto-char (point-min))
- (while (re-search-forward "^<<<<<<< .mine\n" nil t)
+ (while (re-search-forward "^<<<<<<< .\\(mine\\|working\\)\n" nil t)
(setq found t)
(replace-match "")
(if (not (re-search-forward "^=======\n" nil t))
(error "Malformed conflict marker"))
(replace-match "")
(let ((start (point)))
- (if (not (re-search-forward "^>>>>>>> .r[0-9]+\n" nil t))
+ (if (not (re-search-forward "^>>>>>>> .\\(r[0-9]+\\|merge.*\\)\n" nil t))
(error "Malformed conflict marker"))
(delete-region start (point))))
(if (not found)
@@ -4140,12 +5737,12 @@
(erase-buffer)
(insert-buffer-substring result-buffer)
(goto-char (point-min))
- (while (re-search-forward "^<<<<<<< .mine\n" nil t)
+ (while (re-search-forward "^<<<<<<< .\\(mine\\|working\\)\n" nil t)
(let ((start (match-beginning 0)))
(if (not (re-search-forward "^=======\n" nil t))
(error "Malformed conflict marker"))
(delete-region start (point))
- (if (not (re-search-forward "^>>>>>>> .r[0-9]+\n" nil t))
+ (if (not (re-search-forward "^>>>>>>> .\\(r[0-9]+\\|merge.*\\)\n" nil t))
(error "Malformed conflict marker"))
(replace-match "")))
(let ((config (current-window-configuration))
@@ -4199,6 +5796,86 @@
(svn-status-line-info->full-path file-info)))
(error "can not resolve conflicts at this point"))))
+
+;; --------------------------------------------------------------------------------
+;; Working with branches
+;; --------------------------------------------------------------------------------
+
+(defun svn-branch-select (&optional prompt)
+ "Select a branch interactively from `svn-status-branch-list'"
+ (interactive)
+ (unless prompt
+ (setq prompt "Select branch: "))
+ (let* ((branch (funcall svn-status-completing-read-function prompt svn-status-branch-list))
+ (directory)
+ (base-url))
+ (when (string-match "#\\(1#\\)?\\(.+\\)" branch)
+ (setq directory (match-string 2 branch))
+ (setq base-url (concat (svn-status-base-info->repository-root) "/" directory))
+ (save-match-data
+ (svn-status-parse-info t))
+ (if (eq (length (match-string 1 branch)) 0)
+ (setq branch base-url)
+ (let ((svn-status-branch-list (svn-status-ls base-url t)))
+ (setq branch (concat (svn-status-base-info->repository-root) "/"
+ directory "/"
+ (svn-branch-select (format "Select branch from '%s': " directory)))))))
+ branch))
+
+(defun svn-branch-diff (branch1 branch2)
+ "Show the diff between two svn repository urls.
+When called interactively, use `svn-branch-select' to choose two branches from `svn-status-branch-list'."
+ (interactive
+ (let* ((branch1 (svn-branch-select "svn diff branch1: "))
+ (branch2 (svn-branch-select (format "svn diff %s against: " branch1))))
+ (list branch1 branch2)))
+ (svn-run t t 'diff "diff" svn-status-default-diff-arguments branch1 branch2))
+
+;; --------------------------------------------------------------------------------
+;; svnadmin interface
+;; --------------------------------------------------------------------------------
+(defun svn-admin-create (dir)
+ "Run svnadmin create DIR."
+ (interactive (list (expand-file-name
+ (svn-read-directory-name "Create a svn repository at: "
+ svn-admin-default-create-directory nil nil))))
+ (shell-command-to-string (concat "svnadmin create " dir))
+ (setq svn-admin-last-repository-dir (concat "file://" dir))
+ (message "Svn repository created at %s" dir)
+ (run-hooks 'svn-admin-create-hook))
+
+;; - Import an empty directory
+;; cd to an empty directory
+;; svn import -m "Initial import" . file:///home/stefan/svn_repos/WaldiConfig/trunk
+(defun svn-admin-create-trunk-directory ()
+ "Import an empty trunk directory to `svn-admin-last-repository-dir'.
+Set `svn-admin-last-repository-dir' to the new created trunk url."
+ (interactive)
+ (let ((empty-temp-dir-name (make-temp-name svn-status-temp-dir)))
+ (make-directory empty-temp-dir-name t)
+ (setq svn-admin-last-repository-dir (concat svn-admin-last-repository-dir "/trunk"))
+ (svn-run nil t 'import "import" "-m" "Created trunk directory"
+ empty-temp-dir-name svn-admin-last-repository-dir)
+ (delete-directory empty-temp-dir-name)))
+
+(defun svn-admin-start-import ()
+ "Start to import the current working directory in a subversion repository.
+The user is asked to perform the following two steps:
+1. Create a local repository
+2. Add a trunk directory to that repository
+
+After that step the empty base directory (either the root directory or
+the trunk directory of the selected repository) is checked out in the current
+working directory."
+ (interactive)
+ (if (y-or-n-p "Create local repository? ")
+ (progn
+ (call-interactively 'svn-admin-create)
+ (when (y-or-n-p "Add a trunk directory? ")
+ (svn-admin-create-trunk-directory)))
+ (setq svn-admin-last-repository-dir (read-string "Repository Url: ")))
+ (svn-checkout svn-admin-last-repository-dir "."))
+
;; --------------------------------------------------------------------------------
;; svn status profiling
;; --------------------------------------------------------------------------------
@@ -4216,6 +5893,80 @@
(elp-instrument-package "svn-")
(message "Run the desired svn command (e.g. M-x svn-status), then use M-x elp-results."))
+(defun svn-status-last-commands (&optional string-prefix)
+ "Return a string with the last executed svn commands"
+ (interactive)
+ (unless string-prefix
+ (setq string-prefix ""))
+ (with-output-to-string
+ (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))))))
+
+;; --------------------------------------------------------------------------------
+;; reporting bugs
+;; --------------------------------------------------------------------------------
+(defun svn-insert-indented-lines (text)
+ "Helper function to insert TEXT, indented by two characters."
+ (dolist (line (split-string text "\n"))
+ (insert (format " %s\n" line))))
+
+(defun svn-prepare-bug-report ()
+ "Create the buffer *psvn-bug-report*. This buffer can be useful to debug problems with psvn.el"
+ (interactive)
+ (let* ((last-output-buffer-name (or svn-status-last-output-buffer-name svn-process-buffer-name))
+ (last-svn-cmd-output (with-current-buffer last-output-buffer-name
+ (buffer-substring-no-properties (point-min) (point-max)))))
+ (switch-to-buffer "*psvn-bug-report*")
+ (delete-region (point-min) (point-max))
+ (insert "This buffer holds some debug informations for psvn.el\n")
+ (insert "Please enter a description of the observed and the wanted behaviour\n")
+ (insert "and send it to the author (stefan at xsteve.at) to allow easier debugging\n\n")
+ (insert "Revisions:\n")
+ (svn-insert-indented-lines (svn-status-version))
+ (insert "Language environment:\n")
+ (dolist (elem (svn-process-environment))
+ (when (member (car (split-string elem "=")) '("LC_MESSAGES" "LC_ALL" "LANG"))
+ (insert (format " %s\n" elem))))
+ (insert "\nLast svn commands:\n")
+ (svn-insert-indented-lines (svn-status-last-commands))
+ (insert (format "\nContent of the <%s> buffer:\n" last-output-buffer-name))
+ (svn-insert-indented-lines last-svn-cmd-output)
+ (goto-char (point-min))))
+
+;; --------------------------------------------------------------------------------
+;; Make it easier to reload psvn, if a distribution has an older version
+;; Just add the following to your .emacs:
+;; (svn-prepare-for-reload)
+;; (load "/path/to/psvn.el")
+
+;; Note the above will only work, if the loaded psvn.el has already the
+;; function svn-prepare-for-reload
+;; If this is not the case, do the following:
+;; (load "/path/to/psvn.el");;make svn-prepare-for-reload available
+;; (svn-prepare-for-reload)
+;; (load "/path/to/psvn.el");; update the keybindings
+;; --------------------------------------------------------------------------------
+
+(defvar svn-prepare-for-reload-dont-touch-list '() "A list of variables that should not be touched by `svn-prepare-for-reload'")
+(defvar svn-prepare-for-reload-variables-list '(svn-global-keymap svn-status-diff-mode-map svn-global-trac-map svn-status-mode-map
+ svn-status-mode-property-map svn-status-mode-extension-map
+ svn-status-mode-options-map svn-status-mode-trac-map svn-status-mode-branch-map
+ svn-log-edit-mode-map svn-log-view-mode-map
+ svn-log-view-popup-menu-map svn-info-mode-map svn-blame-mode-map svn-process-mode-map)
+ "A list of variables that should be set to nil via M-x `svn-prepare-for-reload'")
+(defun svn-prepare-for-reload ()
+ "This function resets some psvn.el variables to nil.
+It makes reloading a newer version of psvn.el easier, if for example the used
+GNU/Linux distribution uses an older version.
+
+The variables specified in `svn-prepare-for-reload-variables-list' will be reseted by this function.
+
+A variable will keep its value, if it is specified in `svn-prepare-for-reload-dont-touch-list'."
+ (interactive)
+ (dolist (var svn-prepare-for-reload-variables-list)
+ (unless (member var svn-prepare-for-reload-dont-touch-list)
+ (message (format "Resetting value of %s to nil" var)))
+ (set var nil)))
(provide 'psvn)
Index: subversion.spec
===================================================================
RCS file: /cvs/extras/rpms/subversion/devel/subversion.spec,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -r1.101 -r1.102
--- subversion.spec 2 Sep 2007 18:21:51 -0000 1.101
+++ subversion.spec 5 Dec 2007 19:51:30 -0000 1.102
@@ -15,7 +15,7 @@
Summary: Modern Version Control System designed to replace CVS
Name: subversion
Version: 1.4.4
-Release: 7
+Release: 9
License: ASL 1.1
Group: Development/Tools
URL: http://subversion.tigris.org/
@@ -274,6 +274,12 @@
%endif
%changelog
+* Wed Dec 5 2007 Joe Orton <jorton at redhat.com> 1.4.4-9
+- rebuild for OpenLDAP soname bump
+
+* Tue Sep 4 2007 Joe Orton <jorton at redhat.com> 1.4.4-8
+- update to psvn.el r26383 from upstream
+
* Sun Sep 2 2007 Joe Orton <jorton at redhat.com> 1.4.4-7
- rebuild for fixed 32-bit APR
More information about the fedora-extras-commits
mailing list