diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-02-14 10:28:55 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-02-14 10:28:55 -0800 |
commit | 07203d6b6cde4f084f5977e2a781f8194d6cb581 (patch) | |
tree | c727a717db7068079c2dd921ee400dbe7f87f151 /Documentation/CodingGuidelines | |
parent | d3354cde33e2674493969a1870c9771ea0921084 (diff) | |
parent | c5e366b1f8dd72d7516cf0029fd4bb1a7ec616a9 (diff) | |
download | git-07203d6b6cde4f084f5977e2a781f8194d6cb581.tar.gz |
Merge branch 'tz/perl-styles'
Add coding guidelines for writing Perl scripts for Git.
* tz/perl-styles:
Update CodingGuidelines for Perl
Diffstat (limited to 'Documentation/CodingGuidelines')
-rw-r--r-- | Documentation/CodingGuidelines | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index 9eb2d9fe7e..b1bfff630f 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -18,6 +18,7 @@ code. For Git in general, three rough rules are: judgement call, the decision based more on real world constraints people face than what the paper standard says. +Make your code readable and sensible, and don't try to be clever. As for more concrete guidelines, just imitate the existing code (this is a good guideline, no matter which project you are @@ -179,6 +180,47 @@ For C programs: - Use Git's gettext wrappers to make the user interface translatable. See "Marking strings for translation" in po/README. +For Perl programs: + + - Most of the C guidelines above apply. + + - We try to support Perl 5.8 and later ("use Perl 5.008"). + + - use strict and use warnings are strongly preferred. + + - Don't overuse statement modifiers unless using them makes the + result easier to follow. + + ... do something ... + do_this() unless (condition); + ... do something else ... + + is more readable than: + + ... do something ... + unless (condition) { + do_this(); + } + ... do something else ... + + *only* when the condition is so rare that do_this() will be almost + always called. + + - We try to avoid assignments inside "if ()" conditions. + + - Learn and use Git.pm if you need that functionality. + + - For Emacs, it's useful to put the following in + GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode: + + ;; note the first part is useful for C editing, too + ((nil . ((indent-tabs-mode . t) + (tab-width . 8) + (fill-column . 80))) + (cperl-mode . ((cperl-indent-level . 8) + (cperl-extra-newline-before-brace . nil) + (cperl-merge-trailing-else . t)))) + For Python scripts: - We follow PEP-8 (http://www.python.org/dev/peps/pep-0008/). |