【问题标题】:Emacs & DSVN: change default commit messageEmacs 和 DSVN:更改默认提交消息
【发布时间】:2017-03-09 16:20:58
【问题描述】:

我目前在 OSX 上的 emacs 24.1.50.1 中使用 DSVN,带有 svn v 1.7.8。

当我从 emacs 运行 svn-status 时,标记几个文件并按 'c' 提交我发现自己在 svn commit 缓冲区中,该缓冲区预先填充了以下内容:

Summary:
Author:

我想遵循不同的约定,如何更改此默认提交消息?

我查看了 svn-commit 的源代码,但看不到这条消息的来源。 This 线程似乎相关,但我不确定我可以使用什么钩子来利用那里提供的信息。

理想情况下,我希望能够根据当前项目的存储库 url 动态地确定消息,但即使只是提示如何将消息更改为静态的东西也会很棒。我该如何更改此消息?

感谢所有帮助。

【问题讨论】:

  • 这些头文件被 Emacs 的代码直接使用:“Summary:”作为提交的第一行,“Author:”根据 VCS 使用的方式传递给 VCS作者信息。如果这些标题中的任何一个为空,则无论如何都会将其删除。
  • 很高兴知道,谢谢!
  • 我认为较新的 emacsen 在这里改变了一些东西,我不得不(remove-hook 'log-edit-hook #'log-edit-insert-message-template)

标签: svn emacs elisp


【解决方案1】:

如果您在 emacs 包中找不到源代码,则该模板可能来自 svn 本身。

看看this,你可以做一个快速测试,看看是否适合你。

如果是这样,您可以使用 emacs 中的 setenv 重新创建那里描述的技巧,或者使用 defadvice svn-commit 根据您的喜好将缓冲区内容替换为您自己的模板(即使模板是不是来自svn)

【讨论】:

  • 我阅读了该答案,但我不确定我是否理解您所说的“快速检查一下是否适合您”的意思。我更喜欢保留在 emacs 中的解决方案,这样我就可以将它与我的 emacs 配置文件的其余部分一起携带。我不知道有缺陷,我想这可能是我正在寻找的 - 我会试一试看看。
  • defadvice 将是我的选择(使用钩子会更好,但似乎没有可用的)。 setenv SVN_EDITOR 技巧对没有 elisp 兴趣/技能的人更有用。通过“快速检查”,我的意思是找出您看到的模板的来源是来自 emacs 还是来自 svn(同样,与 defadvice 无关)
  • 我明白你的意思。谢谢!我会发布任何我想出来的东西
【解决方案2】:

根据 juanleon 使用 defadvice 的建议,这里有一些建议将用静态消息替换 svn commit 缓冲区的内容:

(defadvice svn-commit (after modify-default-commit-message activate) 
  (erasebuffer)
  (insert "custom message")) 

这假设在运行 svn-commit(在我的例子中是 *svn-commit*)之后选择了包含提交消息的缓冲区。

调用“svn info”并将提交消息替换为正则表达式提取值的更动态版本是:

(defadvice svn-commit (after modify-default-commit-message activate) 
  (erase-buffer)  
  (let ((svninfo (shell-command-to-string "svn info")))
    (string-match "^URL: svn://\\(.+\\)" svninfo)   
    (insert (match-string 1 svninfo))                                          
    (insert ": ")      
    )) 

此建议将用 svn url 的主机和路径替换提交消息,后跟“:”,因此如果 svn-commit 从带有 url“svn://host.com/path”的结帐运行提交消息将是“host.com/path:”。如果正则表达式失败,则提交消息将为空。

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 2016-04-23
    • 1970-01-01
    • 2012-11-11
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多