/* -*-Mode: C++;-*- * PRCS - The Project Revision Control System * Copyright (C) 1997 Josh MacDonald * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: convert.cc 1.10.1.6 Sun, 28 Oct 2001 00:54:02 -0700 jmacd $ */ #include "prcs.h" #include "convert.h" #include "repository.h" #include "misc.h" #include "rebuild.h" static const char description0_5to0_13[] = "The repository data file's content is reduced somewhat from the " "0.13.5 format"; static const char description1_0_4to1_0_5[] = "A bug causing some of the bits in certain MD5 digests to be " "thrown out has been fixed, the repository database must be rebuilt"; static const char description1_0_9to1_1_0[] = "The repository data file's format changes slightly to allow " "project renaming"; static const char description1_1_0to1_2_0[] = "The repository data file's format changes slightly to accomodate " "the new merge algorithm"; static const char description1_2_0to1_3_0[] = "The repository data file's format changes to accomodate " "the new changes command, which now reports +lines and -lines"; static PrBoolError just_rebuild(RepEntry* rep) { Return_if_fail(admin_rebuild_command_no_open(rep, false)); return true; /* should exit */ } /* * repositoryUpgrades, entryUpgrades -- * * Each repository root and entry contains a file named prcs_tag * which saves highest major, minor, and micro version numbers * that last used it and the highest major, minor, and micro * version numbers that may use this repository. * * If a PRCS opens a repository or entry which was last used by a * higher version number than itself but still higher than the * usable by field, it will print a warning and any important * upgrade information and continue. If a PRCS opens a repository * or entry which is not usable, it will print an error and exit. * * However, each time a repository is opened which is tagged at a * lower version number, it looks in these arrays for upgrade * functions. the upgrade functions are grouped with a set of * version numbers that it will upgrade a repository to. They * must be in order. If PRCS opens a repository or entry with an * old tag, it will apply all applicable upgrades (with the * users's consent). */ UpgradeRepository entry_upgrades[] = { {{0,13,10},{1,1,0},just_rebuild,description0_5to0_13}, {{1,0,5}, {1,1,0},just_rebuild,description1_0_4to1_0_5}, {{1,1,0}, {1,1,0},just_rebuild,description1_0_9to1_1_0}, {{1,2,0}, {1,2,0},just_rebuild,description1_1_0to1_2_0}, {{1,3,0}, {1,3,0},just_rebuild,description1_2_0to1_3_0}, {{0,0,0}, {0,0,0},NULL, NULL}, };