2009-07-16 11 views
5

Esta es probablemente SVN 101, pero tengo que preguntar:proyecto Reorganización después SVN Checkout

Estoy trabajando en un proyecto que tiene un tipo de estructura de directorios cojo. Para poder construirlo y ejecutarlo en mi IDE favorito, después de verificar el proyecto, copio todo el proyecto en un directorio diferente y muevo las cosas a mi gusto (y el de mi IDE).

Así que mi pregunta básica es esta: ¿puedo editar/actualizar/fusionar con seguridad un archivo que está en una estructura de directorio diferente a la estructura de directorio del repositorio?

por ejemplo, si me la salida /home/me/dev/proj/index.jsp y luego copiarlo (y sus metadatos Svn) a /home/me/dev/better-proj/web/index.jsp, el hecho de que index.jsp reside en un directorio diferente debería estar bien con respecto a su estado de SVN, ¿verdad? ¿Incorrecto? ¿O solo estoy buscando problemas?

Respuesta

6

Estás pidiendo problemas. Muchos problemas Si intenta actualizar la raíz, obtendrá una locura completa como resultado (muchas obstrucciones, archivos "restaurados", etc.). Además, ¿cómo está copiando los metadatos de un archivo individual? Los metadatos SVN viven en una carpeta .svn que es por directorio. Usted podría ser capaz de actualizar y enviar directorios individuales que no han sido modificados (es decir, el directorio ha sido movido o renombrado, pero todos sus elementos secundarios son exactamente como en el repositorio). Por otra parte, puede que no. Es peligroso.

Debe personalizar su IDE para que coincida con la forma en que el proyecto se pretende utilizar/construir, o reorganizar el proyecto para que coincida con la necesidad de uso/construcción. En este último caso, querrá investigar el subcomando svn move (es decir, svn help move). Una GUI para SVN probablemente también sea útil, como TortoiseSVN (para Windows) si vas a hacer una gran reorganización.

0

He entendido mal su pregunta. Pensé que estabas buscando algo así como el comando de movimiento SVN. (see these questions)

Pero aparentemente eso no es lo que estás buscando.

Creo que está solicitando problemas con su flujo de trabajo propuesto. Esa realmente no es una buena idea. ¿Por qué no cambias los elementos de trabajo dentro de svn?

1

Entonces, ¿usted trabaja con el proyecto en una estructura diferente a la de otros en su equipo? No estoy seguro de cómo funciona eso honestamente. Me gustaría hablar con todos los involucrados, y usar svn: move para obtener todos los archivos con historial en los lugares donde todos puedan estar de acuerdo.

1

Encontrará problemas con este enfoque si intenta colocar un directorio versionado dentro de un directorio versionado que no sea el primario. Aparte de eso, no debe encontrarse con nada más que los dolores de cabeza de papeleo asociados con una copia de trabajo disjunta.

¿Hay algún motivo por el que no pueda usar svn move para reorganizar el proyecto en el repositorio? no perderás ninguna historia de esa manera, y harás tu vida mucho más fácil.

2

Si el destino todavía está dentro de su copia de trabajo, use svn move (documentation). De cualquier manera, usted no nunca quiere manipular los metadatos .svn usted mismo, ya que esto generará conflictos y dolor de cabeza en general.

Si el destino es la copia de trabajo de otro repositorio, tendrá que hacer una svn export (documentation) en el repositorio fuente seguido de svn add (documentation) en el repositorio de destino.

También vale la pena leer: Subversion Basic Work Cycle

Cuestiones relacionadas