2011-09-19 11 views
13

Sto tentando di aprire un'applicazione Perforce esistente. Ho apportato alcune modifiche locali, come l'eliminazione di file, che desidero annullare (ovvero, voglio che la mia copia locale corrisponda esattamente al repository ancora una volta: elimina i file aggiunti, ripristina i file cancellati e annulla le modifiche).Perforce Revert Mostra "file non aperti su questo client"

Quando provo a tornare utilizzando il client GUI P4V, vedo questo errore:

file(s) not opened on this client 

Che cosa sto facendo di sbagliato?

Sono riuscito a ripristinare tutti i file modificati, ma non i file aggiunti/rimossi.

Edit: ho fatto la seguente:

  • connessione a un server Perforce usando P4V
  • mappare una directory al mio file system locale (diciamo C:\Perforce)
  • Scarica l'ultima versione di il repository
  • Vai a C: \ Perforce in Esplora risorse
  • Elimina alcuni file e cartelle
  • aggiungere alcuni file e cartelle

Vorrei tornare allo stato "incontaminata", la copia esattamente ciò che è sul server quando ho ottenuto l'ultima versione del repository per la prima volta.

+0

Cosa intendi per "aprire un'applicazione perforce esistente"? Stai parlando di un client (come p4v) o qualcos'altro?Quando hai eliminato e aggiunto file, lo hai fatto con i comandi "p4 add" p4 "p4 delete" o con i loro equivalenti nella p4v gui? Inoltre, quando dici che vuoi che la tua copia locale corrisponda esattamente, intendi file per file identico a quello che si trova nel depot (nessun file estraneo), o vuoi dire che vuoi che i file nel tuo spazio di lavoro corrispondano al depot e che i file extra nel tuo spazio di lavoro siano a posto – Mark

+0

@ Mark che ho aggiornato la mia domanda con i dettagli – ashes999

+0

Hai aggiunto ed eliminato i file tramite Perforce? –

risposta

20

In base all'aspetto della descrizione modificata, i file sono stati aggiunti e cancellati direttamente sul filesystem e non per forza. Pertanto, Perforce non sa nulla di questi cambiamenti, quindi non c'è nulla da ripristinare. Di solito quando si aggiunge un file si usa 'p4 add' (o l'operazione p4v equivalente) e quando si cancella, si dovrebbe usare 'p4 delete' (o ancora l'operazione p4v equivalente)

In realtà, la migliore opzione per tornare a uno stato incontaminato è nuotare la copia locale del codice in c: \ perforce (in windows explorer), andare su p4v, fare clic con il tasto destro sull'area che si desidera sincronizzare e scegliere "Ottieni revisione ... . "e nella finestra di dialogo successiva, assicurati che la casella di controllo" operazione forzata "sia selezionata, per dire a Perforce che vuoi una nuova copia di tutto indipendentemente dal fatto che tu abbia sincronizzato o meno.

Puoi anche eseguire "riconciliare il lavoro offline" in p4v, fare clic con il pulsante destro del mouse sull'area del depot e scegliere questa opzione. Scorrerà la struttura della cartella locale e porta di quali file sono stati aggiunti che non esistono in perforce, quali file sono stati cancellati e quali file sono stati modificati. Da tale finestra di dialogo, puoi fare clic con il pulsante destro del mouse su file locali che non esistono in perforce ed eliminarli, oppure puoi "aggiungerli p4". Puoi anche sincronizzare i file cancellati.

HTH.

+3

Questo è ciò che SVN, Hg, ecc. consentono di ripristinare i file locali non presenti nel repository e di aggiungere nuovamente i file cancellati ancora presenti nel repository. – ashes999

+0

Perforce tiene traccia solo dei file che "conosce" circa. Quindi wh it si cancellano i file locali che non sono memorizzati nel repository, Perforce non ne sa nulla. Tieni a mente che ogni volta che agisci sui file nell'area di lavoro, se vuoi che lo sappia, devi usare i comandi Perforce (o usare qualcosa come riconciliare il lavoro offline per tornare in sincrono con ciò che Perforce pensa di avere localmente sulla tua workstation) – Mark

+1

comprensibile. Quello che non capisco (forse a causa del mio background SVN/Hg) è che Perforce sembra "ignorare" il file system e non ti consente di ripristinare esattamente ciò che è presente sul server. Mi sembra un errore di usabilità. – ashes999

3

Solo un extra per non sottolineare un'altra causa per questo. Se il nome del file contiene un carattere insolito che non può essere tradotto correttamente, il nome sul client non corrisponderà mai a quello sul server. La soluzione in questo caso è individuare quel carattere nel nome del file (sarà un emblema di un punto interrogativo su Linux) e usare un carattere jolly per aiutare a identificare il file sul server in modo che possa cancellarlo ecc. (P4 cancellando il file è un modo per andare).

+0

Ciao, grazie per la tua risposta/commento. – ashes999

Problemi correlati