aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-04-05 22:17:20 -0700
committerJunio C Hamano <junkio@cox.net>2007-04-06 21:29:16 -0700
commitd79073922fcb8c8a0bd57112817a2154f1ed05c1 (patch)
tree0f9efd55ac6f893f8801a9b8321b20fd21b24923
parent63b4b7a7ed657f406eb274f88a7e2c61fd6fe958 (diff)
downloadgit-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/Makefile7
-rwxr-xr-xDocumentation/cmd-list.perl14
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__