Domanda

Sto tirando i capelli fuori su questo.

Ho un sito che è sotto controllo di versione con Subversion.Io uso aptana (eclipse, subclipse) a fare da svn.Io sono stato il check-in e out dei file, aggiornamento, ecc e tutto è andato bene.Tuttavia il sistema che abbiamo costruito è stato aggiungere i propri file e le cartelle.

Quando provo a commettere questi, mi dice <path> non è una copia di lavoro.Se provo a fare una pulizia poi dà lo stesso errore.Ho scoperto che posso aggiungere manualmente ogni file per il controllo di versione, ma questo genera lo stesso errore.Facendo un aggiornamento non aiuta, rinfrescante l'area di lavoro non fare nulla.Pulitura sembra di morire, dopo l'errore e quindi la directory è bloccato.

So che si suppone di aggiungere file tramite SVN, ma come diavolo si fa a lavorare con i file generati?Come posso ottenere intorno a questo "<folder> non è una directory della copia di lavoro" errore?Come posso ottenere Sovversione basta guardare i file e aggiungerli alla sua repository?

È stato utile?

Soluzione

Se si desidera che i file generati da aggiungere a SVN, utilizzare svn add per aggiungerli ricorsivamente - questo farà in modo che tutte le directory fanno parte della copia di lavoro, e tutti i file e le directory vengono aggiunti a SVN, e la volontà essere impegnati come parte della prossima svn commit.

Tuttavia, i file e le cartelle, spesso generate non devono essere aggiunti a SVN, dal momento che sono generati da i file di origine come parte di una generazione. In questo caso, si dovrebbe segnare la svn: ignorare in modo che non fanno parte della copia di lavoro.

Altri suggerimenti

Abbiamo avuto questo problema oggi quando ho cercato di aggiungere una cartella "A" in cui non ho avuto il permesso di scrittura (in modo che non potesse creare la cartella A / svn).

Esecuzione svn status mi ha dato una "~" accanto alla cartella A. Esecuzione svn cleanup detto che genitore di A era chiusa a chiave.

Che ha finito per lavorare era:

cp -r A A~    # backup, since A was not in the repo
rm -rf A      # removed locked directory
svn rm A      # remove A from pending commit
mv ~A A       # restore backup
svn add A     # re-add to pending commit
svn cleanup   # (had to cleanup several parent folders higher as well)

Il non una copia di lavoro di errore significa che la cartella corrente, non è stato correttamente inizializzato da SVN.

Per correggere l'errore, basta rinominare la cartella corrente e quindi ottenere un vero e proprio copia di lavoro il progetto, dal SVN facendo un checkout del progetto.

Il check out sarà quindi creare una configurato correttamente copia di lavoro del progetto.

Ho appena incontrato l'errore "non è una copia di lavoro" nel mio, copiare ahem, lavorando. Questo è stato per un progetto JDeveloper e si è scoperto che l'aggiornamento JDeveloper (11.1.1.2.0) che avevo appena installato incorporato una versione successiva del svnkit rispetto a quella che uso per riga di comando SVN accesso (jsvn). Così JDeveloper aveva tranquillamente aggiornato il formato dei file Svn, il che significava che il client a riga di comando non riusciva a capire. Il centesimo è sceso quando jsvn lamentato un file mancante ".svn / formato" nella directory di livello superiore del mio progetto. Ho trovato cumuli di questi in sottocartelle, tutti alla ricerca identici e contenente solo la cifra "9". Così ho copiato uno nella cartella di primo livello e jsvn poi finalmente ha dato un messaggio appropriato: "svn: Questo client è troppo vecchio per lavorare con copia di lavoro, si prega di ottenere un client di Subversion più recente ''". Una volta avevo identificato (via Google) e installato il livello di client svnkit compatibile, il nuovo e migliorato jsvn è stato in grado di riconoscere che la mia copia di lavoro è in realtà una copia di lavoro. Morale della storia:. Se si ottiene questo errore e si sta utilizzando diversi clienti SVN sulla stessa macchina, il problema potrebbe essere che hanno avuto fuori sincrono

imbattuto in questo momento utilizzando ripulire alcune directory morti TortoiseSVN. Ho fatto un backup dei file e quindi utilizzato il browser rappresentante per eliminare il dir difettosa (che era spacciato comunque). Poi la pulizia del progetto ha funzionato e ora posso andare avanti con i miei file correnti.

Si prega di cercare di scoprire dove sia il problema. E 'questo il file .svn mancante o qualcos'altro. Ricordate viene creato un file .svn quando si è fatto con il vostro check-in. e contiene il percorso della directory corrispondente, nomi in codice con un numero unico tag a loro. Vai al percorso base del progetto si pensa sia selezionata perfettamente. Creare un nuovo pacchetto temporanea e ha aggiunto un codice Java di esempio in questo percorso. Aggiungere alla versione e cercare di commettere. Se si ottiene un errore che dice che la cartella è bloccata (Il tentativo di bloccare la cartella già bloccato), poi la cartella Svn e rinominare il file di blocco. Riprovare a check-in e impegnarsi

Se funziona bene, poi si è fatto. Usare la stessa directory di base e checkin il codice di nuovo in avanti da quella directory al vostro livello di cartella dopo cleaing up.

"Non è una copia di lavoro" significa che uno dei luoghi in cui il vostro IDE sta cercando di correre svn in non è controllata da <=> sé (come l'aggiunta di file in una sottodirectory non sotto <=>). Direi controllare i percorsi all'interno dell'IDE.

Perché lo faccio ogni attività con strumenti visivi, non posso dirvi quali comandi devono essere eseguiti.

Questo è il mio ambiente, Windows XP. TortoiseSVN 1.6.7 con Subversion 1.6.9, Eclipse 3.5 con Subclipse 1.6.10. e l'archivio è gestito con server SVN visiva sopra le finestre.

  1. Nel server SVN visiva I cancellato la cartella , che è stato creato da l'altro strumento (questo era il problema, proprio come ha detto Keltia).
  2. Nel mio Esplora risorse fare clic destro sul mio progetto e con le opzioni di stampa tortoisesvn Aggiorna . Con questa azione la cartella è stata eliminata nella mia copia di lavoro.
  3. Commited tutti i miei cambiamenti.
  4. eseguito lo strumento che creare la cartella (di nuovo).
  5. con tortoisesvn ho contrassegnato con Aggiungi alla lista ignora .

Spero che questo aiuti.

nel mio caso mi muovo posto di lavoro di Eclipse a un altro problema è poi verificato. Per la soluzione di progetto cassa problema che formano il repo svn. Poi nel vecchio progetto pulisce tutti i file svn. (Ricerca semplice Svn e cancellare) poi copiare il contenuto al solo CheckedOut uno mie modifiche diventano visibili e il mio progetto è fino ad oggi. Questo metodo può essere applicato per altri errori fastidiosi. La speranza di aiuto a qualcuno

Si prega di move directory corrente in un'altra posizione, ed eseguire svn update comando, quindi sostituire directory con spostato directory
se l'uso tortoisteSVN, è possibile prima di eseguire svn update, cleanup familiare vi directory root

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top