it-swarm.it

Come si supera l'errore svn 'scaduto'?

Ho provato a spostare una struttura di directory da una posizione a un'altra in Subversion, ma ottengo un errore di commit Item '*' is out of date.

Ho controllato l'ultima versione (per quanto ne so). svn st -u non presenta differenze diverse dai comandi mv.

329
Tim Visher

A volte capisco questo con TortoiseSVN su Windows. La soluzione per me è svn update la directory, anche se non ci sono revisioni da scaricare o aggiornare. Fa qualcosa per i metadati, che lo risolve magicamente.

617
Michael

Dopo aver provato tutte le cose ovvie, e alcuni degli altri suggerimenti qui, senza alcuna fortuna, una ricerca di Google ha portato a questo link (link non funziona più) - Subversion dice: Il tuo file o directory è probabilmente obsoleto

In poche parole, il trucco è di andare alla directory . Svn (nella directory che contiene il file incriminato), e cancellare il "tutto- wcprops "file .

Ha funzionato per me quando nient'altro ha funzionato.

41
Tom Bushell

Credo che questo problema provenga dal file .svn. Non è corretto nel vecchio genitore, nel nuovo genitore o nel vecchio. Vorrei provare a tornare al punto di partenza. Usa un'esportazione per ottenere una copia pulita della cartella. Sposta la copia pulita nella nuova posizione e usa un add e cancella per fare lo spostamento. Questo fa manualmente ciò che SVN fa, ma potrebbe funzionare.

39
Jim Deville

Ho trovato che questo funziona per me:

svn update
svn resolved <dir>
svn commit
31
Per Löwgren

Ho cercato di aggiornare la copia locale e di ripristinare l'elemento in questione e ho comunque ricevuto l'errore "non aggiornato". Questo ha funzionato per qualche motivo:

svn update --force /path/to/dir/or/file
14
Aaron Hall

Ho appena avuto lo stesso problema in diverse cartelle e questo è quello che ho fatto per commettere:

1) Nella prospettiva "Team Synchronize", fare clic con il tasto destro sulla cartella> Override e Update
2) Cancella nuovamente la cartella
3) Impegnati e sii felice

10
Rafael Xavier

Grazie. Questo l'ha appena risolto per me. svn update --force/percorso al nome del file /

Se il tuo file recente nella directory locale è lo stesso, non ci sono prompt. Se il file è diverso, richiede tf, mf ecc ... chosing mf (mine full) assicura che nulla venga sovrascritto e che potrei impegnarmi al termine.

Jay CompuMatter

5
Jay

Riesco a risolverlo premendo un pulsante di aggiornamento

5
Alvin567

Come suggerisce @ Alexander-Klyubin, fai la mossa nel repository. Sarà anche molto più veloce, soprattutto se si desidera spostare una grande quantità di dati, poiché non sarà necessario trasferire nuovamente tutti i dati sulla rete.

svn mv https://[email protected]/svn/old/ https://[email protected]/svn/new/

dovrebbe funzionare bene

4
Aeon

Rimuovi il tuo file o il tuo percorso usando prima di eseguire il comando esegui un bk delle tue modifiche

Sudo rm -r /path/to/dir/

dopo :

svn up and commit or delete 
3
Clamorious

C'è almeno un'altra causa dell'errore "non aggiornato" del messaggio. Nel mio caso il problema era .svn/dir-props che è stato creato eseguendo "svn propset svn: ignore -F .gitignore." per la prima volta. Eliminare .svn/dir-prop sembra una cattiva idea e può causare altri errori, quindi potrebbe essere meglio usare "svn propdel" per ripulire l'errant "svn propset".

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.
2
infogizmo

Se stai usando il bridge gnub svn, è probabile che qualcosa sia cambiato sul lato di Github. La soluzione è semplice, devi solo eseguire svn switch, che consente di trovarlo correttamente, quindi aggiornare e tutto funzionerà. Basta eseguire quanto segue dalla radice del checkout

svn info | grep Relative 
svn switch path_from_previous_command
svn update

o

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

La base di questa soluzione viene dal blog di Lee Preimesberger

2
Perkins

Sei sicuro di aver controllato la testa e non una revisione più bassa? Inoltre, hai fatto un aggiornamento per assicurarti di avere l'ultima versione?

C'è una discussione su questo su http://svn.haxx.se/users/archive-2007-01 /0170.shtml .

2
jgreep

Esegui lo spostamento direttamente nel repository.

2
Alexander

Aggiorna il tuo server e client a Subversion 1.9.

Se l'errore out of date si verifica casualmente quando normalmente non dovrebbe, quando si esegue il commit, potrebbe indicare che si sta utilizzando un Subversion 1.7 o un client o server obsoleto e non supportato.

È necessario aggiornare il server e i client per risolvere il problema. Vedere la voce relativa alle note di rilascio di Subversion 1.9: Errori "non aggiornati" quando si esegue il commit su HTTPv1.

1
bahrep

L'errore è dovuto al fatto che non hai aggiornato quel particolare file, prima aggiorna solo allora puoi commettere il file.

1
abhishek pant

Lo stai spostando usando svn mv, o solo mv? Penso che usare solo mv possa causare questo problema.

1
Ryan Bigg

L'ho fatto e ha funzionato per me:
1. Fai un backup del tuo file. Puoi semplicemente copiare il tuo codice in un file di testo.
2. Fare clic con il pulsante destro sul file che si desidera salvare >> Team >> Mostra cronologia. 3. Nel pannello "Mostra cronologia" vedrai tutte le revisioni di quel file. Fare clic con il tasto destro del mouse sull'ultima revisione del file >> Ottieni revisione: sostituirà le modifiche locali.
4. Ora unisci il tuo codice con il file più recente con il file di backup (passaggio 1).
5. Sincronizza e conferma il file appena unito.

1
Sameer Patel

Ho ricevuto casualmente questo errore dopo aver eliminato alcune directory contenenti ciascuno dei file. Ho cancellato le directory tramite Netbeans e mi sono reso conto che in realtà non le cancellava. Sembrava solo cancellare tutto all'interno delle directory e rimosso il riferimento alla directory all'interno di Netbeans. Tuttavia esistevano ancora sul filesystem. Assicurati che vengano cancellati dal filesystem e riprova il commit.

1
Bower

Ho spostato la directory sul mio computer locale per la conservazione, quindi svn ha cancellato la directory stupida, quindi ha eseguito il commit. Quando ho provato ad aggiungere la cartella dal mio computer locale, ANCORA ha gettato l'errore (la mossa SVN ha fatto la stessa cosa quando ho provato a rinominare la cartella). Così ho ripristinato, quindi ho fatto un DIR NOME mkdir, aggiunto e commesso. Poi ho aggiunto i contenuti e ho eseguito il commit, e ha funzionato.

1
Melissa

Se una volta risolto un problema simile, semplicemente verificando una nuova copia di lavoro e sostituendo la directory .svn, lanciando gli errori di commit con questa appena verificata. Il motivo nel mio caso era che dopo un danneggiamento del repository e il ripristino da un backup la copia funzionante stava puntando a una revisione che non esisteva nel repository ripristinato. Ha anche errori "item non aggiornati". L'aggiornamento della copia di lavoro prima del commit non risolveva ciò, ma sostituiva il .svn come descritto sopra.

1
fileunderwater

Ho provato a cambiare tutto in .svn direttamente. Niente ha aiutato quindi ecco la mia soluzione.

In Eclipse> Finestra> Mostra vista> Cronologia Ho visto che il file non è nella versione più recente, anche se ho creato più svn "Override & Update"/"Ripristina"/Elimina file e checkout.

Così sono passato a Package Explorer> Fai clic destro su file> Sostituisci con> Latest from Repository .

Un altro aspetto nella Vista cronologia ha mostrato che il file era ora nell'ultima revisione.

1
katana0815

"Pulisci" Ti porterà in pista.

Fare clic con il tasto destro sulla cartella svn e fare clic su "Pulisci", fare questo se si ottiene questo errore.

1

Nel mio caso solo la cancellazione della versione locale e il ricontrollo di nuova copia erano una soluzione.

0
Macilias

Ho appena ottenuto questo mentre stavo provando a commit da una directory trunk. Fare svn update dalla directory trunk non ha risolto l'errore; tuttavia, fare svn update dalla directory padre (dove appartiene la directory .svn) ha risolto l'errore.

La mia ipotesi su quello che è successo (un caso d'uso tra l'altro, ci possono essere molteplici ragioni per questo "svn: E160024: risorsa scaduta, prova ad aggiornare"): insieme a trunk, c'era una directory branches. Ho inserito un branches/branch-1 in master da GitHub. Fare svn update dalla directory padre (ovvero, la radice della mia copia di lavoro) invece di trunk sembra aver fatto qualcosa in branches oltre a trunk. Quando ho provato a commit di nuovo, non ci sono stati errori.

Tuttavia, come ho detto sopra, questo è un caso tra tutti probabilmente molti altri.

Nota a margine: a differenza di quanto suggerito da qualcuno, non credo sia una buona idea giocare manualmente nella directory .svn.

0
Hibou57

ho ricevuto questo errore quando provavo a commettere alcuni file, solo che era un file/cartella che non esisteva nella mia copia di lavoro. DAVVERO non volevo passare attraverso il fastidio di spostare i file e ricontrollare, alla fine, ho finito per modificare il file .svn/entries e rimosso il riferimento alla directory offendente.

0
Al W

Ciò è accaduto quando ho aggiornato un ramo di una versione precedente con i file dal trunk. Ho usato Windows Explorer per copiare cartelle dalla mia cartella checkout del tronco, e le ho incollate nella mia vista Eclipse della cartella checkout del ramo di rilascio. Ora Windows Explorer è stato configurato per non mostrare i file "nascosti" che iniziano con ".", Quindi non ero a conoscenza di tutti i file .svn errati che sono stati incollati nella cartella di controllo del ramo di rilascio. Doh!

La mia soluzione era soffiare via il progetto Eclipse danneggiato, verificarlo di nuovo, e quindi copiare i nuovi file con maggiore attenzione. Ho anche cambiato Windows per mostrare i file "nascosti".

0
Jim Ferrans

Basta fare svn up in linea di comando o se sei in windows selezionare l'opzione svn update.

  • Una volta che ciò sarà fatto, questo ti consentirà di compiere ulteriori azioni come l'impegno e altri.
0
Indrajeet Gour

Per risolvere, avevo bisogno di ripristinare il file con il problema, e aggiornare la mia copia di lavoro, e più tardi ho modificato nuovamente il file e dopo questi passaggi l'errore non si è verificato più.

0
sandolkakos

Ho appena ricevuto questo errore. Quello che ti consiglio è il primo controllo sul tuo server se il file originale è lì. A volte le modifiche non vengono apportate nella cartella locale. Se questa è la tua situazione, basta eliminare la cartella e checkout di nuovo.

0
brunch875