Restaurar la conexión del proyecto de subversión de Eclipse


100

Tengo un proyecto en subversión, que estoy desarrollando usando Eclipse. Hice el pago original desde el repositorio svn desde dentro de Eclipse. Todo estuvo bien durante algunas semanas y luego, por alguna razón desconocida, Eclipse (específicamente: subclipse en Ganímedes) ya no reconoce mi proyecto como bajo el control de svn. El menú contextual del equipo solo muestra las opciones básicas del menú "aplicar parche" / "compartir este proyecto". Desde el shell, todavía puedo actualizar el proyecto usando las herramientas de línea de comando svn, así que sé que las credenciales svn aún funcionan. Otros proyectos bajo subversión en la misma copia de Eclipse todavía funcionan.

Me doy cuenta de que puedo eliminar la copia local y comprobarla de nuevo, pero prefiero entender qué salió mal: solucionar el problema en lugar de enmascarar los síntomas. ¿Dónde almacena Eclipse su conocimiento de qué proyectos están bajo control de versiones? Miré el .projectarchivo y el .settingsdirectorio, pero no pude ver ninguna mención obvia de la naturaleza svn o algo similar, incluso en los proyectos que aún funcionan correctamente.

Respuestas:


124

Si está utilizando sublipse como su proveedor de SVN, le recomiendo hacer lo siguiente

Equipo -> Compartir proyecto suele ser suficiente para conectar los metadatos.

(es decir, asumiendo que los archivos .svn todavía están allí, lo que parece estar si puede trabajar en la línea de comandos).

Espero que esto ayude en cuanto a por qué sucedería esto, no tengo idea


9
Tengo el mismo problema, pero esta respuesta no me ayuda. Eclipse me ofrece crear un nuevo proyecto en Subversion. No hay posibilidad de volver a conectar el proyecto.
migu

1
Forma confirmada de hacer esto.
pestaa

1
Muchas gracias por esta respuesta, me ahorró mucho tiempo. Ahora finalmente puedo actualizar todo mi conjunto de trabajo.
Cedric Meury

1
Esto funcionó para mí (con Eclipse Indigo de 64 bits y Subclipse), ¡gracias! Solo quería agregar que el comentario "asumiendo que los archivos .svn todavía están allí" quizás no sea exactamente correcto. Es decir, me sorprendió ver que, aunque mi proyecto todavía está asociado con mi repositorio (como confirmó TortoiseSVN), ¡ no había un directorio .svn en el directorio del proyecto ! Siempre había pensado que había un directorio de este tipo en cada directorio controlado por SVN, pero ahora veo que ese no es el caso. De todos modos, el punto del OP era que si el directorio todavía está bajo configuración, entonces esto debería funcionar, parece válido.
Rob Cranfill

1
También trabajé en Subversive ... ¡Gracias!
jaibatrik

23

Encontré una manera fácil de volver a importar el proyecto


1
Eres el hombre ... :) Solo tenía la opción "Aplicar parche" y eso lo solucionó ... ¿Por qué no pensé en eso :)
IncrediApp

Sí, volver a importar parece ser lo más fácil :-)
user942640

También tenía la opción de menú "Aplicar parche". La reimportación funcionó. Debe haber un archivo de configuración en algún lugar que determine esto. En retrospectiva, desearía haber hecho una copia de seguridad del espacio de trabajo de configuración relevante y los archivos / carpetas del proyecto para poder ver qué cambió. Con suerte, la próxima persona que lea esta solución lo hará y compartirá los cambios.
Pixelstix

7

Solo hacer Equipo -> Compartir proyecto (según la respuesta a esta pregunta proporcionada por @Paul Whelan) no funcionó para mí. El asistente Compartir proyecto actuó como si el proyecto no estuviera ya en SVN (aunque la carpeta .svn estaba presente para mi proyecto).

Terminé resolviendo el problema desinstalando los complementos Subversive y JavaHL (a través de Ayuda | Acerca de Eclipse | Botón Detalles de la instalación | Pestaña Software instalado | Desinstalar ...) y luego reinstalando Subversive. Cuando se me solicitó después de reiniciar Eclipse, opté por instalar el conector SVNKit en lugar del conector JavaHL.

Después de haber hecho eso, cuando una vez más probé Equipo -> Compartir proyecto ..., Eclipse reconoció correctamente que mi proyecto ya estaba presente en SVN y restauró con éxito la conexión.


¿Por qué compartir proyecto? share project publicará su proyecto local en el servidor svn, si tiene algo localmente que no se supone que vaya a la máquina svn, esto podría causar problemas, lo que él quiere hacer es restablecer la conexión, lo que aparentemente no es posible, solución sería un nuevo pago, eventualmente, instalar subclipse en lugar de subversivo
JBoy

4

Anexo: resulta que mi problema se manifiesta cuando inicio Eclipse fuera de la VPN de la empresa, con un proyecto en el espacio de trabajo que está adjunto a un repositorio de svn dentro de la VPN. Afortunadamente, cambiar los complementos svn de Eclipse de subversivo a subclipse lo resolvió.

Ian


3

Desde el eclipse, cerré los proyectos y los volví a abrir, lo que resolvió el problema. Todos los enlaces de SVN están de vuelta para todos los proyectos en mi espacio de trabajo.


1
Intenté cerrar y reabrir el proyecto, pero esto no funcionó para mí.
Epu

2

Tuve el mismo problema y este foro me ayudó a encontrar la respuesta correcta.

Mi proyecto anterior se configuró usando subclipse. El nuevo eclipse tuvo subvesivo.

¡La instalación de subclipse me ayudó a recuperar las opciones de svn en el equipo!

Espero que ayude a alguien más.

Saludos

Anshu Prateek


No puedo instalar subclipse en kepler. ¿alguna solución?
Vivek

1

Sin saber en qué plataforma estás, no sé si tu problema es similar al mío. Sin embargo, recientemente (¡en realidad en dos plataformas diferentes!) Tuve problemas en los que una actualización de Subversive (o tal vez Eclipse en sí, no está claro) hizo que los conectores ya no se carguen. Sin los conectores, Subversive no puede conectarse a un proyecto. Pero Eclipse no lo bloqueará de su proyecto por eso, simplemente eliminará la funcionalidad relacionada con SVN.

Mire la vista Errores, que es un registro de varios errores de Eclipse (excepciones de clase no encontrada, etc.) y vea si hay líneas relacionadas con los componentes Subversivos. Desafortunadamente, realmente no puedo recomendar una solución: en mi plataforma Mac OSX fue suficiente reinstalar los elementos y conectores del núcleo de Subversive. En mi máquina Linux (posiblemente debido a una actualización del sistema operativo) tengo que reinstalar completamente Eclipse, ya que se ha acumulado demasiado cruft para poder investigarlo por completo.


1

En el lanzamiento de Juno con Subversive, hice:

  • Archivo / Importar abre la ventana emergente Importar.
  • Desde allí, seleccione Proyectos generales / existentes en el Espacio de trabajo.
  • En el siguiente panel, selecciona el directorio raíz. Luego le mostrará todos los subdirectorios. Todos estarán seleccionados de forma predeterminada.
  • Deseleccione los que no desee.

A continuación, "importará" su directorio existente, que puede utilizarse en el lugar en el que ya se encuentran dentro del directorio de su espacio de trabajo.


0

Lo mismo en mi caso: los directorios .svn estaban allí, pero mi proyecto no admitía acciones svn.

Después de pinchar un poco, resultó que el complemento subversivo simplemente desapareció después de un eclipse de abandono forzado.

La solución fue (re) instalar subversive, y ahora todo está bien nuevamente.

Saludos v.

ACTUALIZACIÓN: He cambiado eclipse a una nueva versión que simplemente no tenía el complemento instalado, que es la razón por la que tuve que instalarlo desde cero.


0

Esto funcionó para mí: clic derecho-> TortoiseSVN -> Configuración -> Propiedades de superposición de iconos, seleccionando Shell como caché de estado. Haga clic en Aceptar, Actualizar página.


0

Puedo reproducir este problema de manera confiable; sucede cuando se verifican ciertos proyectos de Maven ejecutando "Verificar como Proyecto Maven ..." no en la carpeta que contiene el POM en sí, sino en un directorio principal (como "tronco"). En este caso, Subclipse verifica el proyecto sin quejas, colocándolo en un directorio de espacio de trabajo con un nombre de marcador de posición como maven.1424425443350. Dentro de este directorio, crea un subdirectorio con el nombre del artefacto Maven. Esto confunde tanto a Subclipse como a Subversion: Subclipse, como hemos visto, olvida inmediatamente que el proyecto está bajo control de versiones, y si lo invoca svn statusdesde la línea de comando en el maven.1424425443350directorio, le dirá que el directorio está bajo control de versiones pero que faltan todos los archivos controlados por versión.

Ninguna de las soluciones alternativas presentadas en las otras respuestas funcionará si esto es lo que causó que Subsclipse olvidara su conexión SVN. En cambio, la única solución es eliminar el proyecto y verificarlo nuevamente, esta vez asegurándose de que el pago se realice en un directorio que contenga un POM en lugar de un directorio de nivel superior.

Una mejor solución general sería que Subclipse se negara a ejecutar "Check out as Maven Project ..." en directorios que no contienen un POM, o bien, manejar mejor los casos en los que intenta hacerlo de todos modos buscando subdirectorios para proyectos Maven.


0

Estaba usando dos implementaciones de SVNKit (1.7.xy 1.8.x) simultáneamente con la versión del repositorio de SVN (1.8.x).

Como resultado, el Equipo -> Compartir proyectos ... siempre solicitaba un mensaje de confirmación. Obviamente, se usó SVNKit 1.7.x que no es compatible con SVN 1.8.x.

Después de eliminar SVNKit 1.7.x, eclipse usó la única versión correcta de SVNKit 1.8.x disponible y todo funcionó como se esperaba.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.