automake-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] {maint} repo: don't commit generated files in the git reposi


From: Jim Meyering
Subject: Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore
Date: Fri, 09 Dec 2011 21:35:54 +0100

Stefano Lattarini wrote:
> I went for a middle-ground solution (sorta), by having the differences
> generated on-the-fly.  This entails a decise slowdown, which is
> however absolutely bearable even on my slow desktop.  See the attached
> patch.
>
> The code is a little more complicated than I'd like, but since this
> is an optional, maintainer-only hack, with no impact on the build
> system proper, that's not a big deal IMHO.

Hi Stefano,

That looks like a fine solution, though I haven't tried it yet.

> What I'm not satisfied with is the explanation of the change I've given
> in the ChangeLog entry, which seems cumbersome and confusing.  But I
> haven't been able to come up with anything better so far :-(
>
> Comments and suggestions would be appreciated.
...
> Subject: [PATCH] devel: help in comparing Makefile.in from different commits
>
> Now that the generated Makefile.in, configure and aclocal.m4 files
> are no longer committed in Automake's git repository, we won't be

Try to use "anymore" less.

s/we.*"shows"/a simple "git diff" or "git log" no longer shows/

> able anymore to see with a simple "git diff" or "git log" if and
> how a change in Automake reflects in changes to the Makefile.in

s/reflects/results/

> files and/or configure script of its own build system.  Still, the
> ability to peek so easily at such differences had proved itself
> quite useful in the past, often revealing inconsistencies and
> blunders, and sometimes even bugs; so it would be a pity to loose

s/loose/lose/

> that altogether.
>
> With this change, we add a new maintainer recipe that re-introduce

s/$/s/

> to a good degree such capability, by generating and comparing on

s/to a good degree such/much of that/

And all of that is duplicated in the ChangeLog file diffs below.

Are you interested in generating ChangeLog from git logs?

> the fly the Makefile.in, configure and aclocal.m4 derived from two
> arbitrary commits of the Automake repository.
>
> * Makefile.am (autodiffs, compare-autodiffs): New phony targets.
> ---
>  ChangeLog   |   18 +++++++++++++++
>  Makefile.am |   69 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 87 insertions(+), 0 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 5c07354..7bc6b00 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,5 +1,23 @@
>  2011-12-09  Stefano Lattarini  <address@hidden>
>
> +     devel: help in comparing Makefile.in from different commits
> +     Now that the generated Makefile.in, configure and aclocal.m4 files
> +     are no longer committed in Automake's git repository, we won't be
> +     able anymore to see with a simple "git diff" or "git log" if and
> +     how a change in Automake reflects in changes to the Makefile.in
> +     files and/or configure script of its own build system.  Still, the
> +     ability to peek so easily at such differences had proved itself
> +     quite useful in the past, often revealing inconsistencies and
> +     blunders, and sometimes even bugs; so it would be a pity to loose
> +     that altogether.
> +     With this change, we add a new maintainer recipe that re-introduce
> +     to a good degree such capability, by generating and comparing on
> +     the fly the Makefile.in, configure and aclocal.m4 derived from two
> +     arbitrary commits of the Automake repository.
> +     * Makefile.am (autodiffs, compare-autodiffs): New phony targets.
> +
> +2011-12-09  Stefano Lattarini  <address@hidden>
> +
>       repo: don't commit generated files in the git repository anymore
>       It has been quite some time since autoconf and libtool have stopped
>       committing the generated autotools files in their git repositories,
> diff --git a/Makefile.am b/Makefile.am
> index 51eeb23..4e8d13e 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -604,6 +604,75 @@ path-check: distdir
>         rm -rf $(distdir); \
>         exit $$estatus
>
> +## Visually comparnig differences between the Makefile.in files in the

comparing

> +## automake's own build system as generated in two different branches
> +## might help to catch bugs and blunders.  This has already happened few

s/few/a few/

> +## times in the past, when we used to keep the generated Makefile.in
> +## committed into the automake's git repository.

s/the.*repository/version-control Makefile.in/

> +autodiffs:
> +     @set -u; \
> +      NEW_COMMIT=$${NEW_COMMIT-"HEAD"}; \
> +      OLD_COMMIT=$${OLD_COMMIT-"HEAD~1"}; \
> +      am_gitdir='$(abs_top_srcdir)/.git'; \
> +      get_autofiles_from_rev () \
> +      { \
> +          rev=$$1 dir=$$2 \
> +            && echo "$@: will get files from revision $$rev" \
> +            && git clone -q --depth 1 "$$am_gitdir" tmp \
> +            && cd tmp \
> +            && git checkout -q "$$rev" \
> +            && echo "$@: bootstrapping $$rev" \
> +            && $(SHELL) ./bootstrap \
> +            && echo "$@: copying files from $$rev" \
> +            && makefile_ins=`find . -name Makefile.in` \
> +            && (tar cf - configure aclocal.m4 $$makefile_ins) | \
> +               (cd .. && cd "$$dir" && tar xf -) \
> +            && cd .. \
> +            && rm -rf tmp; \
> +      }; \
> +      address@hidden \
> +        && git --git-dir="$$am_gitdir" describe $$OLD_COMMIT >/dev/null \
> +        && git --git-dir="$$am_gitdir" describe $$NEW_COMMIT >/dev/null \
> +        && rm -rf $$outdir \
> +        && mkdir $$outdir \
> +        && cd $$outdir \
> +        && mkdir new old \
> +        && get_autofiles_from_rev $$OLD_COMMIT old \
> +        && get_autofiles_from_rev $$NEW_COMMIT new \
> +        && exit 0
> +## With lots of eye candy; we like out developers pampered and spoiled :-)

s/out/our/

> +compare-autodiffs: autodiffs
...



reply via email to

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