From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>, git@vger.kernel.org
Subject: Re: [PATCH] Add Documentation/CodingStyle
Date: Wed, 7 Nov 2007 14:54:27 +0000 (GMT) [thread overview]
Message-ID: <Pine.LNX.4.64.0711071451010.4362@racer.site> (raw)
In-Reply-To: <7v640ega5q.fsf@gitster.siamese.dyndns.org>
Hi,
On Tue, 6 Nov 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
> > new file mode 100644
> > index 0000000..622b80b
> > --- /dev/null
> > +++ b/Documentation/CodingStyle
> > @@ -0,0 +1,87 @@
> > +As a popular project, we also have some guidelines to keep to the
> > +code. For git in general, two rough rules are:
> > +
> > + - Most importantly, we never say "It's in POSIX; we'll happily
> > + screw your system that does not conform." We live in the
> > + real world.
> > +
> > + - However, we often say "Let's stay away from that construct,
> > + it's not even in POSIX".
> > +
>
> I am not sure if we want to have CodingStyle document, but the
> above are not CodingStyle issues.
Would you like to call it CodingConventions?
> If we are to write this down, I'd like to have the more
> important third rule, which is:
>
> - In spite of the above two rules, we sometimes say "Although
> this is not in POSIX, it (is so convenient | makes the code
> much more readable | has other good characteristics) and
> practically all the platforms we care about support it, so
> let's use it". Again, we live in the real world, and it is
> sometimes a judgement call, decided based more on real world
> constraints people face than what the paper standard says.
Okay, will add.
> > +For C programs:
> > +
> > + - Use tabs to increment, and interpret tabs as taking up to 8 spaces
>
> What's the character for decrement? DEL? ;-)
Hehe. As you undoubtedly guessed, I meant "indent"...
> > + Double negation is often harder to understand than no negation at
> > + all.
> > +
> > + Some clever tricks, like using the !! operator with arithmetic
> > + constructs, can be extremely confusing to others. Avoid them,
> > + unless there is a compelling reason to use them.
>
> I actually think (!!var) idiom is already established in our
> codebase.
Yep, but when there are easier variants, AFAICT they were preferred.
> > + - Use the API. No, really. We have a strbuf (variable length string),
> > + several arrays with the ALLOC_GROW() macro, a path_list for sorted
> > + string lists, a hash map (mapping struct objects) named
> > + "struct decorate", amongst other things.
>
> - When you come up with an API, document it.
Okay.
> > + - if you are planning a new command, consider writing it in shell or
> > + perl first, so that changes in semantics can be easily changed and
> > + discussed. Many git commands started out like that, and a few are
> > + still scripts.
>
> No Python allowed?
Well, maybe we should allow that again. Although I hoped we are over that
now, as it would complicate the msysGit efforts tremendously.
Ciao,
Dscho
next prev parent reply other threads:[~2007-11-07 14:55 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-06 20:15 [PATCH 0/5] some shell portability fixes Ralf Wildenhues
2007-11-06 20:17 ` [PATCH 1/5] Avoid a few unportable, needlessly nested "...`..." Ralf Wildenhues
2007-11-06 20:17 ` [PATCH 2/5] Fix sed script to work with AIX sed Ralf Wildenhues
2007-11-06 20:18 ` [PATCH 3/5] Replace $((...)) with expr invocations Ralf Wildenhues
2007-11-06 20:26 ` Ralf Wildenhues
2007-11-06 21:06 ` Junio C Hamano
2007-11-06 23:17 ` [PATCH] Add Documentation/CodingStyle Johannes Schindelin
2007-11-07 0:04 ` Andreas Ericsson
2007-11-07 0:40 ` Junio C Hamano
2007-11-07 8:52 ` Andreas Ericsson
2007-11-07 14:59 ` [PATCH v2] " Johannes Schindelin
2007-11-07 21:43 ` Robin Rosenberg
2007-11-07 22:35 ` [PATCH v3] Add Documentation/CodingGuidelines Johannes Schindelin
2007-11-07 23:14 ` Junio C Hamano
2007-11-08 0:33 ` [PATCH v4] " Johannes Schindelin
2007-11-08 0:38 ` Junio C Hamano
2007-11-07 14:54 ` Johannes Schindelin [this message]
2007-11-07 7:53 ` [PATCH] Add Documentation/CodingStyle Wincent Colaiuta
2007-11-07 8:53 ` Andreas Ericsson
2007-11-07 19:40 ` Jon Loeliger
2007-11-07 20:13 ` Johannes Schindelin
2007-11-08 11:29 ` Mike Ralphson
2007-11-06 20:20 ` [PATCH 4/5] Fix sed string regex escaping in module_name Ralf Wildenhues
2007-11-06 20:20 ` [PATCH 5/5] Avoid "test -o" and "test -a" which are not POSIX, only XSI Ralf Wildenhues
2007-11-06 20:46 ` [PATCH 0/5] some shell portability fixes Junio C Hamano
2007-11-06 21:02 ` Mike Hommey
2007-11-06 23:25 ` Johannes Schindelin
2007-11-07 14:17 ` Mike Ralphson
2007-11-07 14:47 ` Johannes Schindelin
2007-11-07 15:30 ` Mike Ralphson
2007-11-07 15:37 ` Johannes Schindelin
2007-11-06 21:09 ` Ralf Wildenhues
2007-11-07 15:58 ` Nguyen Thai Ngoc Duy
2007-11-07 16:05 ` Nguyen Thai Ngoc Duy
2007-11-07 20:42 ` Junio C Hamano
2007-11-08 6:14 ` Ralf Wildenhues
2007-11-12 11:20 ` Nguyen Thai Ngoc Duy
2007-11-10 22:30 ` Miles Bader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0711071451010.4362@racer.site \
--to=johannes.schindelin@gmx.de \
--cc=Ralf.Wildenhues@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).