Ripristina la connessione al progetto Eclipse subversion


100

Ho un progetto in Subversion, che sto sviluppando utilizzando Eclipse. Ho eseguito il checkout originale dal repository svn dall'interno di Eclipse. Tutto andò bene per alcune settimane, poi per qualche motivo sconosciuto, Eclipse (nello specifico: subclipse in Ganymede) non riconosce più il mio progetto come sotto il controllo di svn. Il menu contestuale del team mostra solo le opzioni di base del menu "applica patch" / "condividi questo progetto". Dalla shell, posso comunque aggiornare il progetto utilizzando gli strumenti della riga di comando svn, quindi so che le credenziali svn funzionano ancora. Altri progetti in sovversione nella stessa copia di Eclipse funzionano ancora.

Mi rendo conto che posso cancellare la copia locale e controllarla di nuovo, ma preferisco capire cosa è andato storto - risolvere il problema, piuttosto che mascherare i sintomi. Dove memorizza Eclipse la sua conoscenza di quali progetti sono sotto il controllo della versione? Ho guardato il .projectfile e la .settingsdirectory, ma non sono riuscito a vedere alcun accenno evidente alla natura svn o qualcosa di simile, anche nei progetti che funzionano ancora correttamente.

Risposte:


124

Se stai usando sublipse come provider SVN, ti consiglio di fare quanto segue

Team -> Condividi progetto di solito è sufficiente per collegare i metadati.

(cioè, supponendo che i file .svn siano ancora lì come sembrano essere se puoi lavorare sulla riga di comando).

Spero che questo aiuti sul motivo per cui questo sarebbe accaduto non ho idea


9
Ho lo stesso problema ma questa risposta non mi aiuta. Eclipse mi offre di creare un nuovo progetto in Subversion. Non è possibile ricollegare il progetto.
migu

1
Modo confermato di fare questa cosa.
pestaa

1
Grazie mille per questa risposta, mi ha fatto risparmiare un sacco di tempo. Ora posso finalmente aggiornare il mio intero set di lavoro.
Cedric Meury

1
Questo ha funzionato per me (con Eclipse Indigo 64-bit e Subclipse), grazie! Volevo solo aggiungere che il commento "supponendo che i file .svn siano ancora lì" forse non è esattamente corretto. Cioè, sono stato sorpreso di vedere che, sebbene il mio progetto sia ancora associato al mio repository (come confermato da TortoiseSVN) non c'era alcuna directory .svn nella directory del progetto ! Avevo sempre pensato che ci fosse una directory simile in ogni directory controllata da SVN, ma ora vedo che non è così. Ad ogni modo, il punto dell'OP era che se la directory è ancora sotto configurazione, allora dovrebbe funzionare, sembra valido.
Rob Cranfill

1
Ha funzionato anche in Subversive ... Grazie!
jaibatrik

23

Ho trovato un modo semplice per reimportare il progetto


1
Tu sei l'uomo ... :) Avevo solo l'opzione "Applica patch" e questo lo ha risolto ... Perché non ci ho pensato :)
IncrediApp

Sì, reimportare sembra essere il più semplice :-)
user942640

Avevo anche solo l'opzione di menu "Applica patch". La reimportazione ha funzionato. Deve esserci un file di configurazione da qualche parte che lo determina. In retrospettiva, vorrei aver eseguito il backup dell'area di lavoro di configurazione pertinente e dei file / cartelle di progetto in modo da poter vedere cosa è cambiato. Si spera che la prossima persona che leggerà questa soluzione lo farà e condividerà cosa è cambiato.
Pixelstix

7

Il solo fatto di fare Team -> Condividi progetto (per la risposta a questa domanda fornita da @Paul Whelan) non ha funzionato per me. La procedura guidata Condividi progetto ha funzionato come se il progetto non fosse già in SVN (anche se la cartella .svn era presente per il mio progetto).

Ho finito per risolvere il problema disinstallando i componenti aggiuntivi di Subversive e JavaHL (tramite Aiuto | Informazioni su Eclipse | Pulsante Dettagli installazione | Scheda Software installato | Disinstalla ...) e quindi reinstallando Subversive. Quando richiesto dopo il riavvio di Eclipse, ho scelto di installare il connettore SVNKit anziché il connettore JavaHL.

Dopo averlo fatto, quando ho provato ancora una volta Team -> Condividi progetto ..., Eclipse ha riconosciuto correttamente che il mio progetto era già presente in SVN e ha ripristinato con successo la connessione.


Perché condividere il progetto? condividi progetto pubblicherà il tuo progetto locale sul server svn, se hai qualcosa localmente che non dovrebbe andare sulla macchina svn questo potrebbe causare problemi, quello che vuole è ristabilire la connessione, che apparentemente non è possibile, soluzione sarebbe stato un nuovo checkout, eventualmente, installare subclipse invece di sovversivo
JBoy

4

Addendum: si scopre che il mio problema si manifesta quando avvio Eclipse al di fuori della vpn aziendale, con un progetto nell'area di lavoro che è collegato a un repository svn all'interno della vpn. Fortunatamente, il passaggio dei plugin svn di Eclipse da sovversivo a subclipse lo ha risolto.

Ian


3

Da eclipse, ho chiuso il / i progetto / i e l'ho riaperto che ha risolto il problema. Tutti i collegamenti SVN sono tornati per tutti i progetti nel mio spazio di lavoro.


1
Ho provato il progetto di chiusura e riapertura, ma non ha funzionato per me.
Epu

2

Ho avuto lo stesso problema e questo forum mi ha aiutato a trovare la risposta giusta.

Il mio progetto precedente è stato configurato utilizzando subclipse. La nuova eclissi si era sottomessa.

L'installazione di subclipse mi ha aiutato a recuperare le opzioni svn in team!

Spero che aiuti qualcun altro.

Saluti

Anshu Prateek


Non riesco a installare subclipse in Kepler. qualche soluzione?
Vivek

1

Senza sapere su quale piattaforma ti trovi, non so se il tuo problema sia simile al mio. Tuttavia, recentemente (in realtà su due piattaforme diverse!) Ho avuto problemi in cui un aggiornamento a Subversive (o forse Eclipse stesso, non chiaro) ha causato il mancato caricamento dei connettori. Senza i connettori, Subversive non può connettersi a un progetto. Ma Eclipse non ti bloccherà dal tuo progetto, rimuoverà semplicemente la funzionalità relativa a SVN.

Guarda la vista Errori, che è un registro dei vari errori di Eclipse (eccezioni di classe non trovata, ecc.) E verifica se ci sono righe relative ai componenti Subversive. Sfortunatamente, non posso davvero consigliare una soluzione: sulla mia piattaforma Mac OSX è stato sufficiente reinstallare gli elementi e i connettori principali di Subversive. Sulla mia macchina Linux (probabilmente a causa di un aggiornamento del sistema operativo) devo reinstallare completamente Eclipse, poiché si è accumulato troppo cruft per poterlo indagare completamente.


1

Nella versione di Juno con Subversive, ho fatto:

  • File / Importa fa apparire il popup Importa.
  • Da lì, seleziona General / Existing Projects in Workspace.
  • Nel riquadro successivo, seleziona la directory principale. Quindi ti mostrerà tutte le sottodirectory. Saranno tutti selezionati per impostazione predefinita.
  • Deseleziona quelli che non vuoi.

Quindi "importerà" la directory esistente, che può essere utilizzata sul posto in cui si trovano già all'interno della directory dello spazio di lavoro.


0

Lo stesso nel mio caso: le directory .svn erano presenti, ma il mio progetto non supportava le azioni svn.

Dopo un po 'di tentativi, si è scoperto che il plugin sovversivo è appena scomparso dopo un'eclissi di chiusura forzata.

La soluzione era (re) installare sovversive, e ora va di nuovo tutto bene.

Saluti v.

AGGIORNAMENTO: ho passato eclipse a una nuova versione in cui semplicemente non era installato il plug-in, motivo per cui ho dovuto installarlo da zero.


0

Questo ha funzionato per me: fare clic con il tasto destro del mouse-> TortoiseSVN -> Impostazioni -> Proprietà dell'overlay delle icone, selezionare Shell come cache di stato. Fare clic su OK, Aggiorna pagina.


0

Posso riprodurre in modo affidabile questo problema: si verifica durante il check out di alcuni progetti Maven eseguendo "Check out as Maven Project ..." non sulla cartella contenente il POM stesso ma su una directory padre (come "trunk"). In questo caso, Subclipse estrae il progetto senza lamentele, inserendolo in una directory dell'area di lavoro con un nome segnaposto come maven.1424425443350. All'interno di questa directory crea una sottodirectory con il nome del manufatto Maven. Questo confonde sia Subclipse che Subversion: Subclipse, come abbiamo visto, dimentica immediatamente che il progetto è sotto il controllo della versione, e se invocate svn statusdalla riga di comando nella maven.1424425443350directory, vi dirà che la directory è sotto il controllo della versione ma che mancano tutti i file controllati dalla versione.

Nessuna delle soluzioni alternative presentate nelle altre risposte funzionerà se questo è ciò che ha fatto dimenticare a Subsclipse la sua connessione SVN. Invece, l'unica soluzione è eliminare il progetto e controllarlo di nuovo, questa volta assicurandosi che il checkout venga eseguito su una directory contenente un POM piuttosto che una directory di livello superiore.

Una soluzione generale migliore sarebbe che Subclipse si rifiutasse di eseguire "Check out as Maven Project ..." su directory che non contengono un POM, oppure per gestire meglio i casi in cui cerca di farlo comunque cercando nelle sottodirectory per i progetti Maven.


0

Stavo usando due implementazioni SVNKit (1.7.xe 1.8.x) contemporaneamente alla versione del repository SVN (1.8.x).

Di conseguenza, il Team -> Condividi progetti ... ha sempre richiesto un messaggio di commit. Ovviamente è stato utilizzato SVNKit 1.7.x che non è compatibile con SVN 1.8.x.

Dopo aver rimosso SVNKit 1.7.x, eclipse ha utilizzato l'unica versione corretta di SVNKit 1.8.xe tutto ha funzionato come previsto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.