Comment puis-je revenir un grand changement dans le CVS?

Un de mes collègues a totalement foiré le contenu d'un répertoire dans nos principaux référentiel CVS. J'ai juste besoin de revenir l'ensemble du module à l'état où il était à la fin de l'année dernière. Quelle est la commande CVS pour ce faire, s'il vous plaît?

Il a ajouté et enlevé des centaines de fichiers, de sorte qu'un simple "copier des fichiers à partir de vieux de la caisse et de s'engager" n'est pas suffisant.

J'ai RTFM et STFW, et j'ai essayé ceci:

cvs co modulename  # Note no -P option
cvs up -jHEAD -jMAIN:2008-12-30 modulename

Mais cela ne fonctionne pas les fichiers qu'il a créé sont supprimés, mais les anciens fichiers et répertoires n'obtenez pas ressuscité. (Je n'ai pas commettre).

Je peux probablement écrire un script shell pour cela, mais sûrement, cette fonctionnalité doit être dans le CVS déjà?

Mise à jour: Quelques précisions:

  • Je peux obtenir un local de la caisse du module à une date précise. La question est de savoir comment obtenir ce retour dans le CVS.

  • J'ai des sauvegardes, mais le point à l'aide d'un système de gestion de versions tels que CVS, c'est que c'est censé être facile d'obtenir tout l'historique de l'état. La prochaine fois, quelque chose comme cela arrive, je ne peut pas être la chance d'avoir des sauvegardes (par exemple, les sauvegardes quotidiennes, afin que je puisse perdre une journée de travail).

  • Je sais que CVS est vieux, et qu'il faut passer à quelque chose de plus récent. Mais dans une grande équipe avec un grand nombre de CVS des outils basés sur la (caisse & scripts de construction, nightly build server, etc), le coût d'une telle évolution est considérable. (L'évaluation, la mise à jour des scripts, des essais, de la migration, la formation, la perte de temps dans le révélateur, le maintien de deux systèmes en parallèle comme CVS serait encore nécessaire pour les anciennes branches). Donc ce doit être planifiée & prévue par la direction.

Mise à jour #2: je vais commencer une prime sur ce. Pour se qualifier pour la générosité que vous avez à expliquer comment faire pour revenir à l'aide de la normale commandes CVS, non pas avec un hacky script shell.

Mise à jour #3: Le serveur est CVS 1.12.13. L'accès se fait par pserver. Je peux utiliser la même version de CVS sur un PC sous Linux, ou le CVSNT 2.0.51 d client sur Windows.

  • Je ne veux pas être impoli, mais vous avez des sauvegardes, droit?
  • Je ne pense pas que ce soit une sauvegarde problème, c'est que la source de contrôle est conçu pour. Bien que, je suis d'accord que l'opération devrait avoir des sauvegardes, tout simplement pas pour cette.
  • Oui, nous avons des sauvegardes. La pensée de faire une restauration a eu lieu pour moi, trop. J'avais (bêtement) à penser qu'un CV revenir serait plus facile.
  • Quelle version CVS serait-ce sur? Je pense que le plus récent cvs versions avec patchset soutien serait capable de faire cela assez facilement...
InformationsquelleAutor user9876 | 2009-01-12