¿Cómo puedo revertir un proyecto completo a una label anterior en CVS?

Tengo un proyecto que tiene miles de files. Hice algunos cambios que afectaron casi la mitad de los files. los cambios incluyeron la edición de files existentes y la adición de nuevos files y directorys.

Necesito revertir todos estos cambios y restaurar el proyecto a cómo era. Creé una label antes de hacer todo esto, pero no estoy seguro de cómo puedo restaurar todo el proyecto desde la label

Desafortunadamente, este es el tipo de cosas en las que CVS no es particularmente bueno.

No creo que pueda perder el historial de su gran compromiso (*), sino que desea comprometer el reverso de sus cambios originales (una revert en la terminología de algunos SCM).

Recomiendo usar herramientas que no sean de CVS para determinar lo que se debe hacer y luego hacer las confirmaciones en CVS.

  • Haga que se revisen dos espacios de trabajo. Uno se desprotegió en la sucursal / HEAD y el otro se desprotegió en su label.
  • Cree lists de files en cada espacio de trabajo y realice los diffs apropiados (no cvs diff , solo regular diff o comm o lo que usted desee para esto) para get tres lists: files que ahora necesita agregar y eliminar.
  • Haga algunas diffs para averiguar qué files necesita modificar.
  • cvs add los files que necesitan agregarse. (No estoy seguro si -kb es necesario al volver a agregar un file, probablemente no, pero no estoy seguro).
  • cvs rm los files que necesitan eliminarse.
  • Copie los que necesitan modificación y cvs commit -R them all at once.

Si tiene un file de logging que contiene los detalles de su gran confirmación original, también podría usarlo para crear su list de commands de agregar / eliminar / modificar.

(*) Bueno, probablemente puedas utilizar uno por uno cvs admin para eliminar las nuevas versiones de files, pero no creo que sea aconsejable en absoluto.