如何在Sublime中强制执行50个字符的提交摘要行?

塔拉·罗伊斯(Tara Roys)

作为一个自然健谈的灵魂,我的摘要行几乎总是超过50个字符。如何为提交消息和仅提交消息在崇高中的标题行上强制限制50个字符?是否可以自定义设置?

sublime-text-git这样的插件将对git commit消息进行软包装

{
  "rulers": [70]
}

但这适用于所有行,而不仅仅是第一行。

您可以修改该插件以在键入时更改颜色(但这需要一些python编程);这就是像vim这样的编辑器的作用

http://kparal.files.wordpress.com/2011/08/git-vim-commit.png?w=595

请记住,对于以前的冗长消息,您可以通过LESS选项以适当的长度查看它们。请参阅“如何包装git commit注释? ”。


否则,评论larsks,一个commit-msg像这样的一个钩子(从阿扎姆哈代,在python)是真正唯一的解决办法强制执行该政策。

#!/usr/bin/python

import sys, os
from subprocess import call

print os.environ.get('EDITOR')

if os.environ.get('EDITOR') != 'none':
  editor = os.environ['EDITOR']
else:
  editor = "vim"

message_file = sys.argv[1]

def check_format_rules(lineno, line):
    real_lineno = lineno + 1
    if lineno == 0:
        if len(line) > 50:
            return "Error %d: First line should be less than 50 characters " \
                    "in length." % (real_lineno,)
    if lineno == 1:
        if line:
            return "Error %d: Second line should be empty." % (real_lineno,)
    if not line.startswith('#'):
        if len(line) > 72:
            return "Error %d: No line should be over 72 characters long." % (
                    real_lineno,)
    return False


while True:
    commit_msg = list()
    errors = list()
    with open(message_file) as commit_fd:
        for lineno, line in enumerate(commit_fd):
            stripped_line = line.strip()
            commit_msg.append(line)
            e = check_format_rules(lineno, stripped_line)
            if e:
                errors.append(e)
    if errors:
        with open(message_file, 'w') as commit_fd:
            commit_fd.write('%s\n' % '# GIT COMMIT MESSAGE FORMAT ERRORS:')
            for error in errors:
                commit_fd.write('#    %s\n' % (error,))
            for line in commit_msg:
                commit_fd.write(line)
        re_edit = raw_input('Invalid git commit message format.  Press y to edit and n to cancel the commit. [y/n]')
        if re_edit.lower() in ('n','no'):
            sys.exit(1)
        call('%s %s' % (editor, message_file), shell=True)
        continue
    break

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

来自分类Dev

如何在视图上强制执行约束,以确保在MSSQL中返回0行

来自分类Dev

如何在.Net中强制执行OutOfMemoryException

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

如何在Chrome中强制执行504错误

来自分类Dev

如何在vb.net中调试强制执行?

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

如何在Java中强制执行构造函数

来自分类Dev

如何在GNOME Web中强制执行大文本?

来自分类Dev

如何在Jenkins DSL中强制执行参数排序?

来自分类Dev

如何在matplotlib中的网格内强制执行图?

来自分类Dev

如何在 Antlr 中强制执行某些规则

来自分类Dev

如何在 Java <= 8 中强制执行模块边界

来自分类Dev

如何在vim中向左移动一个字符宽度的行?

来自分类Dev

如何在Linux中获取正好3个字符的文件行

来自分类Dev

如何在100行中显示线程,每行长度为100个字符

来自分类Dev

如何在Markdown中以80个字符换行?

来自分类Dev

如何在Sublime中替换两个字符之间的字符串

来自分类Dev

小于50个字符的行的Regec

来自分类Dev

如何显示文本的前50个字符

来自分类Dev

如何在一行中第一个字符后匹配字符串

来自分类Dev

如何在Java中轻松地打印出10行的10个字符(或字符串)

来自分类Dev

如何在长行中每四个字符插入一个空格?

来自分类Dev

如何在html输入字段中的2个字符和3个字符之后插入空格?

来自分类Dev

如何在Golang的字符串中每X个字符插入一个字符?

来自分类Dev

$ uibModal尝试强制执行我的表单中的提交

来自分类Dev

如何在Firebird上执行超过32767个字符的查询?

来自分类Dev

如何在Firebird上执行超过32767个字符的查询?

来自分类Dev

如何在列表中每个字符串的末尾添加一个字符?

Related 相关文章

  1. 1

    如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

  2. 2

    如何在视图上强制执行约束,以确保在MSSQL中返回0行

  3. 3

    如何在.Net中强制执行OutOfMemoryException

  4. 4

    如何在Perl中强制执行long double

  5. 5

    如何在Chrome中强制执行504错误

  6. 6

    如何在vb.net中调试强制执行?

  7. 7

    如何在Perl中强制执行long double

  8. 8

    如何在Java中强制执行构造函数

  9. 9

    如何在GNOME Web中强制执行大文本?

  10. 10

    如何在Jenkins DSL中强制执行参数排序?

  11. 11

    如何在matplotlib中的网格内强制执行图?

  12. 12

    如何在 Antlr 中强制执行某些规则

  13. 13

    如何在 Java <= 8 中强制执行模块边界

  14. 14

    如何在vim中向左移动一个字符宽度的行?

  15. 15

    如何在Linux中获取正好3个字符的文件行

  16. 16

    如何在100行中显示线程,每行长度为100个字符

  17. 17

    如何在Markdown中以80个字符换行?

  18. 18

    如何在Sublime中替换两个字符之间的字符串

  19. 19

    小于50个字符的行的Regec

  20. 20

    如何显示文本的前50个字符

  21. 21

    如何在一行中第一个字符后匹配字符串

  22. 22

    如何在Java中轻松地打印出10行的10个字符(或字符串)

  23. 23

    如何在长行中每四个字符插入一个空格?

  24. 24

    如何在html输入字段中的2个字符和3个字符之后插入空格?

  25. 25

    如何在Golang的字符串中每X个字符插入一个字符?

  26. 26

    $ uibModal尝试强制执行我的表单中的提交

  27. 27

    如何在Firebird上执行超过32767个字符的查询?

  28. 28

    如何在Firebird上执行超过32767个字符的查询?

  29. 29

    如何在列表中每个字符串的末尾添加一个字符?

热门标签

归档