2013-04-23 9 views
6

Ho cancellato un cl che conteneva un file 'add' chiamato foo.txt. Quando ripristino quell'elenco di modifiche, il file foo.txt scompare dal mio spazio di lavoro ma rimane sul mio hdd.Ripristino di file non eliminati in modo esagerato

p4 unshelve -f -s $A -c default :: unshelving add foo.txt 
p4 revert -c default //MY_WORKSPACE/... :: foo.txt is reverted 
p4 opened -C MY_WORKSPACE :: shows none 

quando apro il lavoro posso ancora vedere il foo.txt.

esiste un modo per eliminare il file aggiunto? (Tranne l'ovvio di cancellarlo manualmente)

+2

Questo in realtà non ha nulla a che fare con unshelving. La tua domanda riguarda davvero il ripristino dei file * aggiunti *. – jamesdlin

+0

possibile duplicato di [Perforce: 'rimuovi dallo spazio di lavoro' dalla riga di comando?] (Http://stackoverflow.com/questions/2314848/perforce-remove-from-workspace-from-command-line) – raven

+0

@raven Questo non ha nulla fare con 'rimuovi dallo spazio di lavoro'. Riguarda cosa succede al file locale, dopo 'p4 add' seguito da' p4 revert'. (Con 'shelve',' unshelve' gettato per complicare le cose). –

risposta

0

Dopo aver ripristinato il file aggiungere in Perforce, penso che è possibile eliminarli dal disco - Perforce li ha completamente dimenticati.

+0

Non dovrebbe farlo la funzione di ripristino? – Twisted

+0

@Twisted: Il pensiero è probabilmente che sarebbe pericoloso per il comando 'revert' di farlo poiché se lo fai per sbaglio, è probabile che tu perda una quantità significativa di lavoro. (Probabilmente potrebbero aggiungere un'opzione a riga di comando per "annullare" per farlo, però.) – jamesdlin

+0

Bene, è il momento di rivedere le mie conoscenze di scripting della shell. – Twisted

2

Tale comportamento è di progettazione.

http://www.perforce.com/perforce/doc.current/manuals/p4guide/04_files.html

cambiamenti di scaricarli (ritornando)

Per rimuovere un file aperto da un elenco modifiche e scartare le modifiche apportate, eseguire il p4 ritornano comando. Quando si ripristina un file, Perforce ripristina l'ultima versione sincronizzata nel proprio spazio di lavoro. Se si ripristina un file aperto per , il file viene rimosso dall'elenco di modifiche ma non viene eliminato dallo spazio di lavoro .

2

L'esecuzione del comando Ripristina con -w bandiera cancellerà tutti i file contrassegnati per aggiungere durante la Revert (vedi p4_revert docs)

p4 revert -w [file specification]

ad esempio, p4 revert -w -c default //MY_WORKSPACE/... (foo.txt è soppressa dal disco , quindi ripristinato)

+1

Questa è un'ottima soluzione!Nota che 'revert -w' richiede che il tuo server sia alla versione 2013.2 o successiva. –

Problemi correlati