SVN (Subversion) Problema "Il file è pianificato per l'aggiunta, ma manca" - Utilizzo delle versioni


94

Sto usando le versioni per SVN.

Tento di impegnarmi e ricevo questo messaggio:

Commit non riuscito (seguono i dettagli): l'aggiunta di "/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf" è pianificata, ma manca

Suppongo che ciò sia dovuto al fatto che avevo aggiunto file al repository e poi li avevo cancellati tramite il filesystem.

Mi piacerebbe che prendesse semplicemente nota della mia modifica e applicasse la modifica al repo.

Come posso aggirare questo problema?

Risposte:


120

Non sono sicuro di cosa stai cercando di fare: se hai aggiunto il file tramite

svn add myfile

hai detto a svn di mettere questo file nel tuo repository solo quando esegui il commit successivo . Non ci sono modifiche al repository prima di digitare un file

svn commit

Se elimini il file prima del commit, lo svnha nei suoi record (perché l'hai aggiunto) ma non puoi inviarlo al repository perché il file non esiste più.

Quindi o vuoi salvare il file nel repository e poi cancellarlo dalla tua copia di lavoro: in questo caso prova a recuperare il tuo file (dal cestino?), Esegui il commit ed elimina il file in seguito tramite

svn delete myfile
svn commit

Se vuoi annullare adde buttare via il file, puoi farlo in un file

svn revert myfile

che dice svn(in questo caso) di annullare l'operazione di aggiunta.

MODIFICARE

Mi spiace, non sapevo che stai utilizzando il client GUI "Versions" per Max OSX. Quindi o prova a ripristinare la directory contenente usando la GUI o salta nell'acqua fredda e avvia la shell dei comandi nascosta del Mac :-) (si chiama "Terminal" nell'OSX tedesco, non ho idea di come visualizzarlo in inglese versione...)


2
Il problema qui è che usa una GUI. Se può usare comunque la riga di comando, potrebbe solo svn rmil file anche se non esiste nella directory.
Pikrass

Ok, non ero a conoscenza del client "Versions" per OSX. Dovrebbe comunque essere in grado di usare "revert", no? Funzionerebbe con TortoiseSVN su Windows.
MartinStettner

svn cleanups e svn rms in seguito ... Grazie per il vostro aiuto ragazzi. C'è un modo per dire a svn, "guarda, ho aggiunto alcuni file tramite il file manager predefinito del mio sistema operativo, e in questo momento, le cose in questa cartella, è quello che voglio che sia lo stato corrente di questo repository ... ora lascialo succede ... non dirmi cosa posso e non posso fare con questi file, ma sì, tieni traccia di tutto per me. "?
Mike

1
Un svn add *aggiunge automaticamente tutti i nuovi file senza versione, e svn commitsalva immediatamente queste modifiche nel repository. Inoltre, non esiste un'operazione equivalente per la rimozione, quindi se rimuovi i file, devi chiamare svn rmmanualmente.
MartinStettner

Solo per tua informazione, ho anche avuto questo problema e svn rm, anche con --forcenon funziona, dice does not exist. Quindi svn revertè la cosa corretta da fare qui.
Michel Müller

24

Ho avuto lo stesso problema con le versioni che mostravano lo stesso messaggio. Ho semplicemente fatto clic con il pulsante destro del mouse sui file offensivi e selezionato "Ripristina ..." dal menu di scelta rapida e tutto è andato bene.

Fondamentalmente Versions (in realtà Subversion) pensa che tu voglia ancora aggiungere il file, ma non riesce a trovarlo perché l'hai cancellato nel file system. L'opzione Ripristina dice a Subversion di dimenticarsi di aggiungerlo.


Ho ricevuto questo errore perché avevo eliminato una cartella dalla gerarchia dell'app. Ho appena aggiunto una cartella vuota con lo stesso nome e ha funzionato.
Yogi

10

Aggiungere un file e quindi eliminarlo è il tipo di operazione considerato un errore, e così te lo dice SVN. Gli hai detto di aspettarsi alcuni dati del file e quindi di non fornirli quando effettui il commit, le luci rosse lampeggiano e le sirene si spengono!

La risposta è annullare l'aggiunta, in alternativa eseguire il commit del file e quindi utilizzare "svn rm" per rimuoverlo dal filesystem e dal repository.


Lo ottengo da Xcode dove aggiungo un file e ho sbagliato o qualcosa del genere e dico a Xcode di eliminare (spostare nel cestino). Sfortunatamente Xcode lo lascia in questo stato e non esegue rm da svn per me anche se elimina il file ...
chadbag

3

Questo ha risolto il mio problema simile. L'ho usato per annullare le modifiche, quindi ho aggiunto tutto e confermato le modifiche nel terminale con

svn add folder_path/*
svn commit -m "message"

2

Evita di utilizzare Xcode per rinominare i file in un riferimento a una cartella. Se rinomini un file utilizzando Xcode, verrà contrassegnato per il commit. Se in seguito lo elimini prima del commit, ti ritroverai con questo errore.


0

Ho appena cancellato il file da VS, quindi da 'Repository Explorer', ho copiato il file nella copia di lavoro.


0

Se stai usando TortoiseSVN ...

Dalla finestra di commit nella sezione "Modifiche apportate" è possibile selezionare tutti i file offensivi, quindi fare clic con il tasto destro e selezionare Elimina. Termina il commit e i file verranno rimossi dalle aggiunte pianificate.

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.