vc-dir可以设置为显示最新文件吗?

时间:2011-02-24 14:59:57

标签: emacs

是否可以将最新文件放回*vc-dir*缓冲区?到目前为止,我一直在使用psvn.el(在cvs-examine之前),它们都有一个命令,可以让我看到树的完整内容/状态。

如果*vc-dir*中存在类似内容,我无法找到它。

如果没有,你们男孩和女孩如何使用它?


所以看起来功能还没有,现在我认为这个问题已经从程序员正确地转移到了stackoverflow:它不是关于工具本身,而是如何扩展它。

我查看了源代码,我认为我需要一个函数来递归一个子目录,只包括那些已知受版本控制的文件。如果此函数存在并被称为vc-dir-find-versioned-child-files,则解决方案将接近于此:

     (define-key map [follow-link] 'mouse-face)
     (define-key map "x" 'vc-dir-hide-up-to-date)
+    (define-key map "X" 'vc-dir-show-child-files)
     (define-key map "S" 'vc-dir-search) ;; FIXME: Maybe use A like dired?
     (define-key map "Q" 'vc-dir-query-replace-regexp)

 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) ""))))

+(defun vc-dir-show-child-files ()
+  "expand the directory under the cursor"
+  (interactive)
+  (let ((files (vc-dir-find-versioned-child-files (vc-dir-current-file)))
+        fileentries)
+    (when files
+      (dolist (crt files)
+        (push (list (file-relative-name crt) (vc-state crt))
+              fileentries))
+      (vc-dir-update fileentries (current-buffer)))))

 (defun vc-dir-show-fileentry (file)

关闭,但不完全正确,因为状态未正确计算,现在提供nil

我在vc-dir中仍然遗漏的信息是谁做了最后一次提交以及每个条目的修订号(最好是本地和远程)。但我不够好与LISP互动。


如果vc-dir不能满足我的需求,那么ecb呢?

1 个答案:

答案 0 :(得分:2)

vc-dir似乎是硬编码来隐藏最新文件。有一个函数vc-dir-hide-up-to-date与你想要的相反,而且由于vc-dir使用ewoc,因此镜像它不应该太难。如果没有人有更好的想法,我可以稍后再试一试。