• R/O
  • SSH
  • HTTPS

fsvn: Commit


Commit MetaInfo

Revision318 (tree)
Time2015-02-08 22:49:54
Authormhayashi1120

Log Message

improve

Change Summary

Incremental Difference

--- trunk/fsvn-deps.el (revision 317)
+++ trunk/fsvn-deps.el (revision 318)
@@ -351,7 +351,7 @@
351351
352352 (defun fsvn-svn-proper-command (&optional flat-args)
353353 (cond
354- ((member (car-safe flat-args) '("upgrade"))
354+ ((member (car-safe flat-args) '("upgrade" "export"))
355355 fsvn-svn-command-internal)
356356 ((condition-case err
357357 (fsvn-let*
--- trunk/ChangeLog (revision 317)
+++ trunk/ChangeLog (revision 318)
@@ -1,3 +1,9 @@
1+2015-01-28 Masahiro Hayashi (林 雅博) <mhayashi1120@gmail.com>
2+
3+ * Add: copy revisioned url when sibling buffer.
4+
5+ * Fix: Do not check svn proper command when export
6+
17 2014-12-10 Masahiro Hayashi (林 雅博) <mhayashi1120@gmail.com>
28
39 * Fix: Work around for peg (revisioned) filename.
--- trunk/fsvn-browse.el (revision 317)
+++ trunk/fsvn-browse.el (revision 318)
@@ -405,10 +405,9 @@
405405 (insert event)))
406406
407407 (defun fsvn-browse-ls-insert-wc-directory (directory)
408- (let* (file-entries status-entries status-entry entries)
409- (setq file-entries (fsvn-browse-ls-directory-files directory))
410- (setq status-entries (fsvn-get-directory-files-status directory))
411- (setq entries (fsvn-browse-ls-merge-wc-entries directory file-entries status-entries))
408+ (let* ((file-entries (fsvn-browse-ls-directory-files directory))
409+ (status-entries (fsvn-get-directory-files-status directory))
410+ (entries (fsvn-browse-ls-merge-wc-entries directory file-entries status-entries)))
412411 (fsvn-browse-draw-path directory)
413412 (mapc
414413 (lambda (entry)
@@ -416,26 +415,27 @@
416415 entries)))
417416
418417 (defun fsvn-browse-ls-merge-wc-entries (directory file-entries status-entries)
419- (let (status-hash key ret status path)
420- ;; create hash for a lot of files.
421- ;; 3000 files 82sec -> 13sec.
422- (setq status-hash (make-hash-table :test 'equal))
418+ (let (;; create hash for a lot of files.
419+ ;; 3000 files 82sec -> 13sec.
420+ (status-hash (make-hash-table :test 'equal))
421+ ret)
423422 (mapc
424423 (lambda (status-entry)
425- (setq key (fsvn-file-absolute-name (fsvn-xml-status->target->entry.path status-entry)))
426- (puthash key status-entry status-hash))
424+ (let* ((path (fsvn-xml-status->target->entry.path status-entry))
425+ (key (fsvn-file-absolute-name path)))
426+ (puthash key status-entry status-hash)))
427427 status-entries)
428428 (mapc
429429 (lambda (file)
430- (setq key (fsvn-file-absolute-name file))
431- (setq status (gethash key status-hash))
432- (setq ret (cons (cons file status) ret)))
430+ (let* ((key (fsvn-file-absolute-name file))
431+ (status (gethash key status-hash)))
432+ (setq ret (cons (cons file status) ret))))
433433 file-entries)
434434 (mapc
435435 (lambda (status-entry)
436- (setq path (fsvn-xml-status->target->entry.path status-entry))
437- (unless (or (fsvn-file= path directory) (fsvn-file-assoc path ret))
438- (setq ret (cons (cons path status-entry) ret))))
436+ (let ((path (fsvn-xml-status->target->entry.path status-entry)))
437+ (unless (or (fsvn-file= path directory) (fsvn-file-assoc path ret))
438+ (setq ret (cons (cons path status-entry) ret)))))
439439 status-entries)
440440 (sort ret fsvn-browse-ls-comparer)))
441441
--- trunk/fsvn-logview.el (revision 317)
+++ trunk/fsvn-logview.el (revision 318)
@@ -501,9 +501,9 @@
501501 (setq fsvn-default-window-configuration (current-window-configuration)))
502502
503503 (defun fsvn-log-list-revision-path (root path rev)
504- (let ((found (fsvn-log-list-find-path rev path)))
505- ;; todo found is path. currently this is works
506- (fsvn-url-urlrev (fsvn-expand-url (fsvn-urlrev-url found) root) rev)))
504+ (let* ((path (fsvn-log-list-find-path rev path))
505+ (url (fsvn-expand-url path root)))
506+ (fsvn-url-urlrev url rev)))
507507
508508 (defun fsvn-log-list-repository-url ()
509509 (fsvn-expand-url fsvn-log-list-target-path (fsvn-buffer-repos-root)))
@@ -1014,6 +1014,7 @@
10141014 (define-key map "l" 'fsvn-log-sibling-log-this)
10151015 (define-key map "n" 'fsvn-log-sibling-next-line)
10161016 (define-key map "p" 'fsvn-log-sibling-previous-line)
1017+ (define-key map "w" 'fsvn-log-sibling-copy-urlrev)
10171018 (define-key map "zl" 'fsvn-log-sibling-log-this)
10181019 (define-key map "zp" 'fsvn-log-sibling-propview-this)
10191020
@@ -1068,7 +1069,9 @@
10681069 (setq buffer-undo-list t)
10691070 (fsvn-make-buffer-variables fsvn-log-sibling-buffer-local-variables)
10701071 (remove-overlays (point-min) (point-max))
1071- (add-hook 'post-command-hook 'fsvn-log-sibling-show-details nil t)
1072+ ;; FIXME TODO: currently show-details is working when moving line,
1073+ ;; but move from other buffer
1074+ ;; (add-hook 'post-command-hook 'fsvn-log-sibling-show-details nil t)
10721075 (run-mode-hooks 'fsvn-log-sibling-mode-hook))
10731076
10741077 (defmacro fsvn-log-sibling-only-file (&rest form)
@@ -1225,12 +1228,11 @@
12251228 (defun fsvn-log-sibling-show-details ()
12261229 (let ((entry (fsvn-log-sibling-point-entry))
12271230 (message-log-max))
1228- (if (and entry
1229- (not (string= (fsvn-xml-log->logentry->path.copyfrom-path entry) "")))
1230- (message "Copy from %s@%s"
1231- (fsvn-xml-log->logentry->path.copyfrom-path entry)
1232- (fsvn-xml-log->logentry->paths->path.copyfrom-rev entry))
1233- (message nil))))
1231+ (when (and entry
1232+ (not (string= (fsvn-xml-log->logentry->path.copyfrom-path entry) "")))
1233+ (message "Copy from %s@%s"
1234+ (fsvn-xml-log->logentry->path.copyfrom-path entry)
1235+ (fsvn-xml-log->logentry->paths->path.copyfrom-rev entry)))))
12341236
12351237 (defun fsvn-log-sibling-cmd-read-copy-file ()
12361238 (let ((from (fsvn-log-sibling-point-urlrev))
@@ -1294,12 +1296,14 @@
12941296 (defun fsvn-log-sibling-next-line (&optional arg)
12951297 "Move to next line."
12961298 (interactive "p")
1297- (forward-line arg))
1299+ (forward-line arg)
1300+ (fsvn-log-sibling-show-details))
12981301
12991302 (defun fsvn-log-sibling-previous-line (&optional arg)
13001303 "Move to previous line."
13011304 (interactive "p")
1302- (forward-line (- arg)))
1305+ (forward-line (- arg))
1306+ (fsvn-log-sibling-show-details))
13031307
13041308 (defun fsvn-log-sibling-log-this (urlrev)
13051309 "Open file log by `fsvn-log-list-mode'."
@@ -1336,6 +1340,13 @@
13361340 (interactive (fsvn-log-sibling-cmd-read-this-local-file))
13371341 (fsvn-working-copy (file-name-directory filename)))
13381342
1343+(defun fsvn-log-sibling-copy-urlrev ()
1344+ "Copy url at point."
1345+ (interactive)
1346+ (let ((urlrev (fsvn-log-sibling-cmd-this-urlrev)))
1347+ (kill-new urlrev)
1348+ (message urlrev)))
1349+
13391350 (defun fsvn-log-sibling-copy-this (src-urlrev dest-file &optional args)
13401351 "Execute `copy' from SRC-URLREV to DEST-FILE.
13411352 Optional ARGS (with \\[universal-argument]) means read svn subcommand arguments.
@@ -1605,7 +1616,8 @@
16051616 ["Ediff Previous" fsvn-log-sibling-ediff-previous t]
16061617 )
16071618 ("Other"
1608- ["" fsvn-log-sibling-copy-this t]
1619+ ["Copy" fsvn-log-sibling-copy-this t]
1620+ ["Copy Filename" fsvn-log-sibling-copy-urlrev t]
16091621 )
16101622 ))
16111623
Show on old repository browser