unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Commit netiquette.
@ 2010-02-17 23:44 Óscar Fuentes
  2010-02-18  0:27 ` Glenn Morris
                   ` (2 more replies)
  0 siblings, 3 replies; 34+ messages in thread
From: Óscar Fuentes @ 2010-02-17 23:44 UTC (permalink / raw)
  To: emacs-devel

It would be a Good Thing (TM) to explicitly set good practices for
commits. People is accustomed to CVS and following those customs with
changeset-based systems like Bazaar is counterproductive. VC history,
like code, is written once but read a thousand times, so it is worth to
write it with some care. A correct VC history can be exploited by tools
that traverses it doing useful things (i.e. `bisect').

Let's look at one example:

revno: 99513
committer: Mark A. Hershberger <mah@everybody.org>
branch nick: local
timestamp: Wed 2010-02-17 16:39:21 -0500
message:
  2010-02-17  Mark A. Hershberger  <mah@everybody.org>
  
  	* vc-bzr.el: fix typo in Known Bugs section.
  
  	* isearch.el (isearch-update-post-hook): New hook
  	(isearch-update): Use the new hook.
modified:
  lisp/ChangeLog
  lisp/isearch.el
  lisp/vc-bzr.el

The Committer used the full Changelog entry as the commit message, so on
interfaces that just shows the first line of the commit (like the
emacs-diffs mailing list or the output of `bzr log --short' or `qlog')
you see

2010-02-17  Mark A. Hershberger  <mah@everybody.org>

which is hardly indicative of the change.

Ideally, the commit message should be made of a first line indicating
the *purpose* of the change plus a longer text with a more complete
explanation. Usually the changelog entry is good enough as the complete
explanation (without the changelog's entry header!). If the changelog
entry contains only one line and it is descriptive of the purpose of the
change, it can be used as the commit message. In this case, it is
preferable to remove the leading asterisk because it just adds noise and
some text-based tools use asterisks for denoting nodes on the DAG.

Another very important thing is to realize that a changeset-based VCS
presents a view of the progress as a series of atomic steps that changes
the content of the project. This is good because it allows to
unambiguously establish the state of the project at certain point and
identify the steps that caused that state. For this to be really useful,
it is very important to not divide a change among several commits
(i.e. by doing a commit for each edited file) and to not mix different
changes on the same commit, as the case above.





^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2010-02-23 22:57 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-17 23:44 Commit netiquette Óscar Fuentes
2010-02-18  0:27 ` Glenn Morris
2010-02-18  0:51   ` Óscar Fuentes
2010-02-18  5:35     ` Glenn Morris
2010-02-18  7:13       ` Chong Yidong
2010-02-18 15:11         ` Mark A. Hershberger
2010-02-18 14:45 ` Alfred M. Szmidt
2010-02-18 15:12   ` Juanma Barranquero
2010-02-18 16:14     ` Stefan Monnier
2010-02-19  3:42       ` David Reitter
2010-02-19  5:32         ` Stefan Monnier
2010-02-19  8:17       ` Alfred M. Szmidt
2010-02-19 18:19         ` Stefan Monnier
2010-02-20 11:02           ` Chong Yidong
2010-02-20 11:06         ` Chong Yidong
2010-02-23 19:25           ` Alfred M. Szmidt
2010-02-19  8:17     ` Alfred M. Szmidt
2010-02-19  8:39       ` Juanma Barranquero
2010-02-20 12:37         ` Alfred M. Szmidt
2010-02-20 14:13           ` Miles Bader
2010-02-20 14:23             ` Eli Zaretskii
2010-02-22  2:17               ` Miles Bader
2010-02-22  4:14                 ` Eli Zaretskii
2010-02-23 16:37                   ` Stefan Monnier
2010-02-23 19:25               ` Alfred M. Szmidt
2010-02-20 18:55           ` Juanma Barranquero
2010-02-23 19:25             ` Alfred M. Szmidt
2010-02-23 20:28               ` Juanma Barranquero
2010-02-23 22:09                 ` David Kastrup
2010-02-23 22:57                   ` Juanma Barranquero
2010-02-18 15:40   ` Óscar Fuentes
2010-02-19  0:22     ` Stephen J. Turnbull
2010-02-19  7:53   ` Miles Bader
2010-02-18 15:15 ` Mark A. Hershberger

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).