diff options
author | Norbert Preining <preining@logic.at> | 2011-10-28 23:59:12 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2011-10-28 23:59:12 +0000 |
commit | d399354c6723a217da24503cd72763f25583eaa3 (patch) | |
tree | 09a6b1037678f743cc6cbae77302aad157ef101d /Master/tlpkg/bin/tl-update-tlpdb | |
parent | 030d3a77cae208821660752665c93f6e2ee709f6 (diff) |
support --keep-revisions in tl-update-tlpdb, useful for alternative
repositories
git-svn-id: svn://tug.org/texlive/trunk@24435 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/tl-update-tlpdb')
-rwxr-xr-x | Master/tlpkg/bin/tl-update-tlpdb | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/Master/tlpkg/bin/tl-update-tlpdb b/Master/tlpkg/bin/tl-update-tlpdb index 363d7c0c66c..d3467a3973a 100755 --- a/Master/tlpkg/bin/tl-update-tlpdb +++ b/Master/tlpkg/bin/tl-update-tlpdb @@ -38,12 +38,14 @@ my $opt_save_anyway = 0; my $opt_tlpsrc_from_cmdline = 0; my $opt_w32warning; my $opt_tlpdb_options_from_tlpsrc = 0; +my $opt_keep_revisions = 0; TeXLive::TLUtils::process_logging_options(); GetOptions( "catalogue=s" => \$opt_catalogue, "dry-run|n", => \$opt_dry_run, "fix-reverse-revisions!" => \$opt_fix_reverse_revisions, + "keep-revisions" => \$opt_keep_revisions, "from-files" => \$opt_fromfiles, "master=s" => \$opt_master, "no-bin-split!" => \$opt_nobinsplit, @@ -94,7 +96,12 @@ sub main finish ($newtlpdb, $pkgcount); } if ($opt_no_revision_check) { - info ("$progname: Not checking increasing revisions due to --no-reverse-revision-check\n"); + if ($opt_keep_revisions) { + move_revisions_over($oldtlpdb, $newtlpdb); + info ("$progname: Keeping old revisions due to --keep-revisions\n"); + } else { + info ("$progname: Not checking increasing revisions due to --no-reverse-revision-check\n"); + } finish ($newtlpdb, $pkgcount); } # compare_tlpdbs returns true if some reversed revisions have been found. @@ -152,6 +159,18 @@ sub main } +sub move_revisions_over +{ + my ($oldtlpdb, $newtlpdb) = @_; + for my $pkg ($newtlpdb->list_packages) { + my $oldtlp = $oldtlpdb->get_package($pkg); + if (defined($oldtlp)) { + $newtlpdb->get_package($pkg)->revision($oldtlp->revision); + } + } +} + + sub compare_and_fix_tlpdbs { my ($oldtlpdb, $newtlpdb) = @_; |