[Top][All Lists]
[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 22:25:45 +0100 |
Stefano Lattarini wrote:
...
>> And all of that is duplicated in the ChangeLog file diffs below.
>>
>> Are you interested in generating ChangeLog from git logs?
>>
> Absolutely, but that's for a later change. Also, before going down that
Glad to hear it.
> road, I'd like to have a vim syntax file able to highlight GNU-like
> ChangeLog syntax in git messages (so, without "date + author" lines and
> without leading tabs). I might hack one up myself as a "last resort",
> but I'd rather steal something pre-existing :-)
>
>> > diff --git a/Makefile.am b/Makefile.am
>> > index 51eeb23..4e8d13e 100644
>> > --- a/Makefile.am
>> > +++ b/Makefile.am
>
> [SNIP] more suggestions I've followed.
>
>> > +## 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/
>>
> You mean "version-controlled Makefile.in"?
No. I meant to remove the "keep", too. See below.
> 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, a simple
> "git diff" or "git log" no longer shows if and how a change in
> Automake results 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
s/had/has/
> in the past, often revealing inconsistencies and blunders, and
> sometimes even bugs; so it would be a pity to lose that altogether.
>
> With this change, we add a new maintainer recipe that re-introduces
> much of that 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.
> ---
> ChangeLog | 17 ++++++++++++++
> Makefile.am | 69
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 86 insertions(+), 0 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 5c07354..99b1248 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,5 +1,22 @@
> 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, a simple
> + "git diff" or "git log" no longer shows if and how a change in
> + Automake results 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 lose that altogether.
> + With this change, we add a new maintainer recipe that re-introduces
> + much of that 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..b7fa29a 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -604,6 +604,75 @@ path-check: distdir
> rm -rf $(distdir); \
> exit $$estatus
>
> +## Visually comparing differences between the Makefile.in files in the
s/ the//
> +## automake's own build system as generated in two different branches might
> +## help to catch bugs and blunders. This has already happened a few times
> +## in the past, when we used to keep version-control Makefile.in.
Change the preceding line to this: (s/keep //)
## in the past, when we used to 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 \
> +## Before proceeding, ensure the specified revisions truly exist.
> + && 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
> + @set -u; \
> + : $${COLORDIFF=colordiff} $${DIFF=diff}; \
> + dir=autodiffs.dir; \
> + if test ! -d "$$dir"; then \
> + echo "$@: $$dir: Not a directory" >&2; \
> + exit 1; \
> + fi; \
> + mydiff=false mypager=false; \
> + if test -t 1; then \
> + if ($$COLORDIFF -r . .) </dev/null >/dev/null 2>&1; then \
> + mydiff=$$COLORDIFF; \
> + mypager="less -R"; \
> + else \
> + mypager=less; \
> + fi; \
> + else \
> + mypager=cat; \
> + fi; \
> + if test "$$mydiff" = false; then \
> + if ($$DIFF -r -u . .); then \
> + mydiff=$$DIFF; \
> + else \
> + echo "$@: no good-enough diff program specified" >&2; \
> + exit 1; \
> + fi; \
> + fi; \
> + st=0; $$mydiff -r -u $$dir/old $$dir/new | $$mypager || st=$$?; \
> + rm -rf $$dir; \
> + exit $$st
> +.PHONY: autodiffs compare-autodiffs
> +
> ## Program to use to fetch files.
> WGET = wget
> WGET_SV_CVS = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, (continued)
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Jim Meyering, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Jim Meyering, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore,
Jim Meyering <=
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/09
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/22
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Stefano Lattarini, 2011/12/10
- Re: [PATCH] {maint} repo: don't commit generated files in the git repository anymore, Jim Meyering, 2011/12/10