diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-05 22:17:20 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-06 21:29:16 -0700 |
commit | d79073922fcb8c8a0bd57112817a2154f1ed05c1 (patch) | |
tree | 0f9efd55ac6f893f8801a9b8321b20fd21b24923 | |
parent | 63b4b7a7ed657f406eb274f88a7e2c61fd6fe958 (diff) | |
download | git-d79073922fcb8c8a0bd57112817a2154f1ed05c1.tar.gz git-d79073922fcb8c8a0bd57112817a2154f1ed05c1.tar.xz |
Documentation: tighten dependency for git.{html,txt}
Every time _any_ documentation page changed, cmds-*.txt files
were regenerated, which caused git.{html,txt} to be remade. Try
not to update cmds-*.txt files if their new contents match the
old ones.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Documentation/Makefile | 7 | ||||
-rwxr-xr-x | Documentation/cmd-list.perl | 14 |
2 files changed, 17 insertions, 4 deletions
diff --git a/Documentation/Makefile b/Documentation/Makefile index 7db3fb992..ad87736b0 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -85,14 +85,17 @@ cmds_txt = cmds-ancillaryinterrogators.txt \ cmds-purehelpers.txt \ cmds-foreignscminterface.txt -$(cmds_txt): cmd-list.perl $(MAN1_TXT) +$(cmds_txt): cmd-list.made + +cmd-list.made: cmd-list.perl $(MAN1_TXT) perl ./cmd-list.perl + date >$@ git.7 git.html: git.txt core-intro.txt clean: rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html doc.dep - rm -f $(cmds_txt) + rm -f $(cmds_txt) *.made %.html : %.txt $(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf $(ASCIIDOC_EXTRA) $< diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl index b54382b2b..0381590d3 100755 --- a/Documentation/cmd-list.perl +++ b/Documentation/cmd-list.perl @@ -1,8 +1,11 @@ -# +#!/usr/bin/perl -w + +use File::Compare qw(compare); sub format_one { my ($out, $name) = @_; my ($state, $description); + $state = 0; open I, '<', "$name.txt" or die "No such file $name.txt"; while (<I>) { if (/^NAME$/) { @@ -55,7 +58,14 @@ for my $cat (qw(ancillaryinterrogators format_one(\*O, $_); } close O; - rename "$out+", "$out"; + + if (-f "$out" && compare("$out", "$out+") == 0) { + unlink "$out+"; + } + else { + print STDERR "$out\n"; + rename "$out+", "$out"; + } } __DATA__ |