summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tl-update-tlpdb
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2011-10-28 23:59:12 +0000
committerNorbert Preining <preining@logic.at>2011-10-28 23:59:12 +0000
commitd399354c6723a217da24503cd72763f25583eaa3 (patch)
tree09a6b1037678f743cc6cbae77302aad157ef101d /Master/tlpkg/bin/tl-update-tlpdb
parent030d3a77cae208821660752665c93f6e2ee709f6 (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-xMaster/tlpkg/bin/tl-update-tlpdb21
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) = @_;