2011-01-26 4 views
25

Sto usando Perforce P4V, lo strumento grafico, per interfacciarmi con il mio server Perforce qui al lavoro. Ho un progetto che ho aggiunto al depot e l'ho cancellato accidentalmente dal mio spazio di lavoro sul mio computer locale, il problema è quando utilizzo l'azione Get Revision (l'equivalente della GUI della sincronizzazione), i file non vengono aggiornati, cioè posso vedere i file sul server che voglio, ma non si sincronizzeranno correttamente con il mio PC locale. Mi sta frustrando il fatto che i file non vengano estratti dal server. Quello che sto assumendo dovrebbe accadere è che se i file sono in ogni caso modificati sul mio PC locale, dovrei essere in grado di prendere la revisione dal server, che quindi estrae i dati sul mio PC locale e sovrascrive le modifiche localmente sul mio PC, ma non sta succedendo. C'è qualcosa che mi manca?Perforce non sincronizza i file correttamente

risposta

2

Grazie ragazzi, ho fatto come suggerito, ma ho continuato a ricevere il messaggio che i file erano ancora "aperti per la modifica e non possono essere cancellati", quando si prova "Rimuovi da Workspace". Inoltre, "Ottieni revisione" ha restituito con un messaggio che "nessun file è stato aggiornato". Quello che ho finito per fare è stato "Ripristinare" i file, quindi eseguire l'azione "Ottieni revisione", che ha risolto il problema. Grazie a entrambi per il vostro aiuto.

+7

Non utilizzare le risposte per commentare. Hai il rappresentante, lascia un commento (s). Dai un'occhiata a [questa discussione] (http://meta.stackexchange.com/q/74194/4228). – raven

+1

@raven - non dimenticare che l'OP può sempre commentare le risposte alle proprie domande. – ChrisF

10

Non si aggiorneranno perché secondo Perforce si hanno ancora i file sul computer locale.

È necessario utilizzare l'opzione "Ottieni revison ..." e attivare l'opzione "Forza operazione".

Questo dirà a Perforce di aggiornare tutti i file anche quelli che ritiene di avere l'ultima versione di.

52

Perforce tiene traccia dei file che pensa di avere sulla stazione di lavoro locale. Se si eliminano tali file localmente (e non li si "racconta" necessariamente), allora Perforce continuerà a pensare di avere quei file. Se vuoi recuperarli, devi "forzare la sincronizzazione" dei file. In p4v, è possibile utilizzare l'elemento "Ottieni revisione ..." e nella finestra di dialogo successiva, è possibile selezionare la casella di controllo "operazione forzata" per dire a Perforce di restituire tutti i file indipendentemente dal fatto che Perforce ritenga di averne bisogno.

Solo per completare le informazioni, se si desidera rimuovere i file localmente, è possibile farlo tramite p4v scegliendo l'elemento "Rimuovi dallo spazio di lavoro". Fare così rimuoverà i file localmente e dire per forza che non hai più quei file in modo che la prossima volta che si sincronizzi, quei file verranno recuperati dal server.

+1

Aggiunta alla risposta in alto - il modo per farlo attraverso l'interfaccia della riga di comando consiste nel fare un 'p4 sync -f' sul file o sul percorso che si sta tentando di sincronizzare (come menzionato da @Greenish sotto). –

+1

Anche con il flag force spesso non funziona, per me è necessario ripristinare i nuovi file locali e forzare la sincronizzazione –

8

"Ottieni revisione" aggiornerà solo i file che non sono stati aperti (estratto) anche quando "Forza operazione" è abilitato. È necessario ripristinare tutti i file contrassegnati come verificati in quell'area di lavoro, quindi utilizzare "Ottieni revisione" con "Operazione forzata"

+0

Perché è necessario impedire all'utente di ottenere la revisione per i file sottoposti a checkout? –

8

Come altre persone hanno menzionato, una soluzione è eseguire una "sincronizzazione forzata" dell'intero deposito che è in pratica sovrascrivendo tutto dal server al tuo locale. Il lato negativo di questo è che potrebbe richiedere molto tempo per finire se si sta lavorando su un grande deposito.

Un'altra alternativa è confrontare lo spazio di lavoro locale con il server, quindi forzare solo la sincronizzazione dei file mancanti nell'area di lavoro.

p4 diff -sd //Depot/path/… | p4 -x – sync -f 

opzione -SD: mostra solo i nomi dei file non aperti che mancano dall'area di lavoro client, ma presente nel deposito.

Sono disponibili più opzioni (sa/se/ecc.) Se -sd non è quello che ti serve. vedi here.

crediti per il comando va al blog this.

-1

Controlla il file, cambialo un po 'e poi ripristina. Perforce sostituirà il file locale con l'ultima revisione.