Cambiar el nombre del package de Java en una twig de SVN

Actualmente tengo una biblioteca de Java en subversión en package:

com.company.product.foo.* 

Desafortunadamente, tengo que refactorizar esto en:

 com.othercompany.bar.* 

Eso estaría bien como un one-shot . Pero esto debe realizarse solo en una twig específica. El problema entonces es fusionar los cambios del tronco a la twig con nombres totalmente diferentes.

La única solución que veo sería crear un file de parche, ejecutar algunas búsquedas y replace y luego aplicarlo en la sucursal.

¿Hay alguna mejor opción?

La primera solución más obvia es no utilizar el nombre de la empresa como package, sino un nombre de marca registrada, o un nombre de dominio neutral que se usaría en el futuro.

Si eso no es posible (dado que el cliente no desea que las dos bases de códigos se vean como conectadas), la siguiente solución más obvia es usar un sistema de control de fuente que sea más amigable con el concepto. Git podría tener mejores opciones, o por fuerza .

Si tiene que seguir con la subversión, la tendría en control de código fuente bajo un nombre de package neutral y luego tendría el process de compilation que verifica el código, lo mueve, cambia el nombre de los packages y comstack, una vez para cada compañía. O si su IDE puede entenderlo, use un preprocesador Java.

Por supuesto, ese último solo funciona si ambos clientes permanecen en la misma base, pero si no, el cliente tendría su propia sucursal, y el process de compilation podría copyr el código solo según corresponda para la sucursal correcta.

No veo soluciones realmente buenas, pero ¿sería una opción simplemente crear subclasss con el nuevo nombre del package?

Entonces los parches se podrían aplicar a las súper classs, y las subclasss en realidad nunca contendrían nada.

Un buen IDE con capacidad de refactorización podrá manejar esto en un instante. Una vez que hagas el cambio, entrégalo a Subversion. Una de sus fortalezas es que trata los directorys y files de la misma manera, por lo que puede mantener el historial a medida que cambia el nombre de los packages.

Parece que quieres crear una label para el original; echa un vistazo y refactoriza el maletero; cometer los cambios Voila: viejo y nuevo, con los packages refactorados en el baúl al que pertenecen.

Tal vez esté malinterpretando su pregunta, pero no creo que deba realizar el cambio directamente dentro de Subversion. Cambia el código y deja que Subversion haga su trabajo.