unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: yandros@MIT.EDU, emacs-devel@gnu.org
Subject: Re: attribute warn_unused_result
Date: Fri, 04 Feb 2011 10:18:09 +0200	[thread overview]
Message-ID: <83k4hgb4ce.fsf@gnu.org> (raw)
In-Reply-To: <4D4B2510.8060002@cs.ucla.edu>

> Date: Thu, 03 Feb 2011 13:58:40 -0800
> From: Paul Eggert <eggert@cs.ucla.edu>
> CC: Chad Brown <yandros@MIT.EDU>, emacs-devel@gnu.org
> 
> Before, I was pretty cautious, and checked out everything
> separately, doing a complete build and "make dist" and so forth,
> before committing a change.
> 
> However, I was told I was being overly conservative
> and inefficient, that this caution was getting in the way
> making it convenient to do the Windows port,
> and that it's better to just do a bzr merge
> without the final check.  So I started doing that today;
> but I broke things because I forgot to do a "bzr add"
> before the merge.
> 
> Perhaps I should go back to being cautious.  :-)

Cautious, yes, but I don't think extreme measures such as "make dist"
are required (and how would that tell you that texinfo.tex is being
part of the merge commit, anyway?).

Here's what I normally do after I finish development (and testing) of
some change on a branch, and before I merge onto the trunk:

  . Run "bzr status".

  . Review every file marked "modified", "added", "removed",
    "renamed", and "kind changed", and make sure all of them are meant
    to be part of the changeset.

  . Review every file marked "unknown", and make sure none of them
    should be "bzr add"ed.

  . Make sure that every directory that has any of the above files has
    also a ChangeLog that is "modified" and is part of the changeset.

  . Run "bzr diff -rsubmit:", and review the diffs to make sure the
    changes I'm about to merge are what I expect.

  . If several local commits to the branch were done since the last
    merge, run "bzr log --line" to see their commit messages, and make
    sure all of them are indeed parts of a single changeset.

  . Merge, run "configure && make", test, and make sure everything
    builds and works on the trunk as well.

This procedure takes only a few moments, and is very efficient in
catching mistakes before they are propagated to the remote
repository.  In some rare cases, the remote repository gets commits
while I build and test the merged code, and I need a "bzr up" before
committing.  But the changes are usually in unrelated places, so no
additional testing is required, and I can proceed with an immediate
commit of my own.  (To eliminate almost all possible conflicts in
ChangeLog files, I use the changelog_merge plugin.)

IOW, it isn't about being over-cautious, it's about using efficiently
the tools we have at hand.  Granted, I wasn't born with the above
knowledge; it took some time to learn and get used to these
facilities.  I post it here in the hope this procedure will be useful
to others.



  parent reply	other threads:[~2011-02-04  8:18 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-03 14:57 attribute warn_unused_result Eli Zaretskii
2011-02-03 18:53 ` Stefan Monnier
2011-02-03 19:33   ` Paul Eggert
2011-02-03 20:42     ` Chad Brown
2011-02-03 21:30       ` Eli Zaretskii
2011-02-03 21:58         ` Paul Eggert
2011-02-04  0:17           ` Lennart Borgman
2011-02-04  8:18           ` Eli Zaretskii [this message]
2011-02-05 16:30             ` Chong Yidong
2011-02-03 21:40       ` Paul Eggert
2011-02-04  8:41         ` Eli Zaretskii
2011-02-04  8:51           ` Paul Eggert
2011-02-04 21:05         ` Stefan Monnier
2011-02-05  8:50           ` Eli Zaretskii
2011-02-03 21:47       ` Lennart Borgman
2011-02-04 21:08         ` Stefan Monnier
2011-02-04 21:15           ` Lennart Borgman
2011-02-05  9:03             ` Eli Zaretskii
2011-02-05  8:59           ` Eli Zaretskii
2011-02-03 22:08       ` Andy Moreton
2011-02-03 23:00         ` Paul Eggert
2011-02-03 21:16     ` Eli Zaretskii
2011-02-03 21:14   ` Eli Zaretskii
2011-02-04  0:57     ` Paul Eggert
2011-02-04  8:29       ` Eli Zaretskii
2011-02-04 15:50         ` Tom Tromey
2011-02-04 16:38           ` Eli Zaretskii
2011-02-04 17:12             ` Tom Tromey
2011-02-05  0:11             ` Paul Eggert
2011-02-05  9:18               ` Eli Zaretskii
     [not found]               ` <yyxvd0yxwv1.fsf@fencepost.gnu.org>
2011-02-06  1:34                 ` Paul Eggert
2011-02-06  4:07                   ` Eli Zaretskii
2011-02-06  7:04                     ` Paul Eggert
2011-02-06 10:21                       ` Eli Zaretskii
2011-02-06 18:58                         ` Paul Eggert
2011-02-06 19:27                           ` Eli Zaretskii
2011-02-06 20:11                             ` Paul Eggert
2011-02-06 21:26                               ` Eli Zaretskii
2011-02-04 21:14         ` Stefan Monnier
2011-02-05  8:57           ` Eli Zaretskii
2011-02-05 16:01             ` Stefan Monnier

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83k4hgb4ce.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=eggert@cs.ucla.edu \
    --cc=emacs-devel@gnu.org \
    --cc=yandros@MIT.EDU \
    /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.
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).