[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: attribute warn_unused_result

From: Eli Zaretskii
Subject: Re: attribute warn_unused_result
Date: Fri, 04 Feb 2011 10:18:09 +0200

> Date: Thu, 03 Feb 2011 13:58:40 -0800
> From: Paul Eggert <address@hidden>
> CC: Chad Brown <address@hidden>, address@hidden
> 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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]