SVN sigue los cambios en los files

Estoy trabajando en un proyecto henetworkingado de C ++ donde hay muchas classs en un solo file y algunos files terminan siendo 8k + líneas. Estoy planeando mover algunas de estas classs a files separados. El proyecto usa SVN. Me pregunto si SVN puede rastrear la historia de tal cambio porque no puedo hacer la refactorización si no puede.

Como ejemplo, tengo old.cpp con 3 classs AB C. Quiero refactorizar esto en A.cpp B.cpp C.cpp. Si selecciono el historial de C.cpp, quiero ver que la class solía estar en old.cpp y todos los cambios en C en old.cpp.

Nunca lo he intentado con files individuales (solo con carpetas completas, que básicamente son ramificaciones), pero en TortoiseSVN puede drag and drop el file con el button derecho del mouse. Cuando suelte el file (dentro de la misma carpeta de trabajo) en el menu contextual que se muestra, select "SVN copyr y cambiar el nombre del elemento versionado aquí". Después de eso (y de otros cambios), envíe la copy de trabajo.

Otra opción es hacer lo mismo, pero desde el browser del repository. La diferencia con la opción anterior es que aquí cada operación es automáticamente una nueva revisión. Prefiero la primera opción.

Después de copyr el file edítalo para eliminar el contenido extraño. Usando la primera opción, puede hacerlo en la misma revisión que la copy.

Desde su proyecto en SVN, siempre podrá volver a la versión original. Recomiendo escribir testings unitarias antes del cambio, para que pueda seguir la cordura del progtwig después de cada cambio.

Tengo una experiencia en el pasado con tal cambio, aquí cómo lo hice:

  1. Crear una twig separada en SVN
  2. Verifique la fuente de esta twig

Para cada class, haz los siguientes pasos:

  1. Mueva la class a un file separado (nuevo) sin cambiarlo. Desde la creación, podrás controlar cada cambio en SVN
  2. Confirme el cambio a SVN: de esta forma usted sabrá que nada ha cambiado en el contenido del file.
  3. Realice los cambios necesarios en el file recién creado.
  4. Ejecutar testings unitarias
  5. Comprometerse con el cambio