I want a fast solution that does not require force sync that will put a specified directory to its original repository state.
All I want is to be sure that after if run the command I will have none of these.
p4 -f sync
is not an option, I need a faster solution that does minimize networks usage.
Just in case someone asks, perforce proxy is out of discussion.
I do know that a partial solution is:
p4 diff -sd -se //clientspec/dir/... | p4 -x - revert
The problem is that this does not remove files added to the paths above that are not in perforce - files that I want to be removed from disk.
Also, I need a multi or cross platform solution - it has to work on Windows, OS X and Linux.
Perforce has added a new command "p4 clean" in 2014.1 that does exactly what you are looking for, by resetting your workspace to its #have state:
The command is an alias for "p4 reconcile -w" and uses the hashsum of the files to determine their state in your workspace.
Another Unix/Linux snippet that should remove all files that have never been tracked by perforce:
find . -type f | p4 -x- files 2>&1 | sed -n -e 's/ - no such file(s).//p' | xargs -d '\n' rm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With