2010-02-16 37 views
11

He estado desarrollando un proyecto localmente y usando un servidor svn local para el control de versiones en Visual Studio. Ahora quiero cambiar al control de versiones alojado xp-dev, pero parece que no puedo deshacerme de los enlaces svn en mi solución. ¿Existe una manera fácil de duplicar una solución sin su configuración de control de versiones o simplemente cambiar a la otra svn (que está completamente vacía)?¿Cómo cambiar el repositorio de subversión en Visual Studio usando AnkhSVN?

+0

Si necesita la fuente original en el servidor SVN local, es posible que desee vea las respuestas a [¿Cómo exporto (y luego importo) un repositorio de Subversion?] (http://stackoverflow.com/questions/49450/how-do-i-export-and-then-import-a-subversion- repositorio). –

Respuesta

4

Editar: Tenga en cuenta que esto supone que está tratando de moverse a un nuevo repositorio, dejando caer todo su historial, no mover un repositorio. Pensando en ello, es posible que desee reemplazar la eliminación de todas las carpetas .svn simplemente exportando la carpeta al espacio de trabajo recientemente creado para el nuevo repositorio.

No que yo sepa. Probablemente haría esto,

  • eliminar todas las carpetas .svn de su solución
  • Crear una carpeta para la solución en la nueva operación,
  • Compruébelo usted mismo,
  • mover su solución actual en esa carpeta,
  • Cargue la solución en Visual Studio
  • Use AnkhSvn para agregarla nuevamente. Debería detectar el hecho de que está en un directorio subversionado y le permite hacer eso.
+1

Esto hace que pierdas la historia. El último punto tampoco es válido. Cuando elimina todas las carpetas .svn, ya no está en una copia de trabajo/'directorio subversion' –

+0

Sí, tenía la impresión de que estaba intentando mudarse a un nuevo servidor de subversión para no mover el repositorio de subversión. De lo contrario, le habría sugerido que lo trasladara. –

+0

El último punto debe ser válido porque, suponiendo que su solución se encuentra ahora en un directorio en el nuevo espacio de trabajo, AnkhSvn normalmente elige ese hecho. Supongo que depende exactamente de qué estructura de carpetas haya creado para saber si funciona. En el peor de los casos, podría querer agregar la carpeta en la que está actualmente la carpeta .sln y luego usar AnkhSvn porque es mucho mejor agregar los archivos correctos. para una solución –

1

Pruebe ir a Archivo> Subversión> Cambiar control de origen ... y cambie la URL de enlace de SCC.

EDITAR: Veo que no se puede editar. Es posible que deba pasar a la línea de comando para esto.

En su directorio base, ejecute este comando svn:

svn switch --relocate http://old.repo.location http://new.repo.location 

con sus URL speific, por supuesto. Recomiendo leer en el comando switch para que esté seguro de lo que está haciendo. Cuando vuelva a abrir VS, AnkhSVN debería elegir las nuevas vinculaciones. Si ha agregado la solución a través del menú Archivo> Subversión, es posible que deba editar el archivo .sln. Simplemente ábralo en un editor de texto y cambie todas las URL de repositorio anteriores a la nueva URL.

También puede instalar TortoiseSVN y usar el menú contextual para ejecutar el comando Reubicar. Esto será lo más fácil.

Haga una copia de seguridad de su directorio antes de cualquiera de estos cambios, por supuesto.

+0

Hmm, no me deja cambiar el texto en ese campo – Paulo

+0

La reubicación es lo que debes hacer si acabas de mover el repositorio, como si hubieras cambiado la carpeta en la que se encontraba o la hayas movido a un servidor web. No creo que funcione si apunta a otro repositorio completamente diferente. Creo que los números de revisión, historia, etc. deben ser esencialmente los mismos, es decir, esencialmente el mismo informe para que sea útil. –

+0

@Colin: '--relocate' comprueba que los UUID del repositorio son los mismos. Si el repositorio se exportó e importó correctamente en xp-dev, será el mismo –

38

Hay un interruptor/reubicar incorporada:

  • Open View -> cambios pendientes
  • Haga clic en el menú desplegable que muestra la URL del repositorio actual, o el botón a la derecha de ese
  • Enter/busque la nueva ubicación
  • un cuadro de diálogo aparece ya sea que se desea cambiar de ubicación (debido a la conmutación no es suficiente aquí)
+1

Solo agregue que esto se implementa como un interruptor con reubicación automática suppoprt si un interruptor fallaría. –

+0

AnkhSVN ha cambiado las opciones del menú. Ahora la vista Cambios pendientes está desactivada en el submenú de Subversion en Archivo. Lo mismo ocurre con File -> Subversion -> Pending Changes –

0

I "exportado" desde SVN, entonces hizo un "Añadir carpeta" para la nueva repo en el navegador SVN Repo, luego se abrió .sln en Visual Studio.

1

Otra forma es editar wc.db (archivo SQLite) en su carpeta ".svn", que contiene la URL del repositorio. Utilicé el editor SQLITE add-on de Firefox, luego en la tabla REPOSITORY solo aparece una fila que dice su URL de repositorio, la cambia a un nuevo host y listo.

Mi caso fue que tengo una computadora nueva con HOST nueva, por lo que todos mis proyectos añadidos al repositorio SVN tenían una URL anterior (nombre de host anterior).

0

En mi caso tuve que cambiar la URL del SVN porque el DNS no sabía sobre el nombre de host, así que tuve que usar la dirección IP.

Usted puede editar sus anfitriones archivo que se encuentra en: C:\Windows\System32\drivers\etc

Y basta con introducir una línea como

xxx.xxx.xxx.xxx  hostname 
Cuestiones relacionadas