Skip to main content

tools-p4-basics

Fundamental Perforce operations including sync, edit, add, delete, submit, revert, and file state management.

Zur Installation springen

Quellinformationen

Repository
tjboudreaux/cc-plugin-perforce
Letzte Quellaktivität
6. Februar 2026 um 04:08
Erkannte Sprache von SKILL.md
Englisch
Sterne
8
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tools-p4-basics
description
Fundamental Perforce operations including sync, edit, add, delete, submit, revert, and file state management.
# Perforce Basics ## Overview Perforce (P4) is a centralized version control system optimized for large codebases and binary assets. This skill covers essential daily operations. ## When to Use - Syncing latest changes - Editing files for modification - Adding new files - Deleting files - Submitting changes - Reverting unwanted changes ## Core Concepts ### File States | State | Description | Command to Change | |-------|-------------|-------------------| | **Not in depot** | File exists locally but not tracked | `p4 add` | | **Synced** | File matches depot version | - | | **Edited** | Open for edit, modified locally | `p4 edit` then modify | | **Added** | Marked for addition to depot | `p4 add` | | **Deleted** | Marked for deletion from depot | `p4 delete` | | **Out of date** | Depot has newer version | `p4 sync` | ### Revision Specifiers ```bash # Specific revision number file.txt#3 # Head revision (latest) file.txt#head # Changelist number file.txt@12345 # Label file.txt@release_1.0 # Date/time file.txt@2024/01/15 file.txt@2024/01/15:14:30:00 # Revision range file.txt#2,#5 file.txt@10000,@12000 ``` ## Sync Operations ### Basic Sync ```bash # Sync entire workspace to head p4 sync # Sync specific path p4 sync //depot/project/... # Sync specific file p4 sync //depot/project/file.txt # Sync to specific revision p4 sync //depot/project/...#head p4 sync //depot/project/...@12345 # Sync to specific changelist p4 sync @12345 ``` ### Sync Options ```bash # Preview sync (don't actually sync) p4 sync -n //depot/project/... # Force sync (re-download even if up to date) p4 sync -f //depot/project/... # Parallel sync (faster for many files) p4 sync --parallel=threads=4 //depot/project/... # Safe sync (don't clobber writable files) p4 sync -s //depot/project/... # Sync and show affected files p4 sync //depot/project/... 2>&1 | head -50 ``` ### Selective Sync ```bash # Sync only specific file types p4 sync //depot/project/....cs p4 sync //depot/project/....prefab # Sync excluding paths (use workspace view instead) # Or sync specific subdirectories p4 sync //depot/project/Assets/Scripts/... ``` ## Edit Operations ### Opening Files for Edit ```bash # Edit single file p4 edit file.txt # Edit multiple files p4 edit *.cs # Edit files in directory p4 edit Assets/Scripts/... # Edit with specific changelist p4 edit -c 12345 file.txt # Edit to default changelist p4 edit -c default file.txt ``` ### Check Edit Status ```bash # See files open for edit p4 opened # See files open in specific changelist p4 opened -c 12345 # See files open by all users p4 opened -a //depot/project/... # See who has file open p4 opened -a //depot/project/file.txt ``` ## Add Operations ### Adding New Files ```bash # Add single file p4 add newfile.txt # Add multiple files p4 add *.cs # Add files recursively p4 add Assets/NewFeature/... # Add to specific changelist p4 add -c 12345 newfile.txt # Add with specific file type p4 add -t binary+l largefile.bin p4 add -t text+x script.sh ``` ### File Types ```bash # Common file types text # Text file, diff/merge enabled binary # Binary file, no diff/merge unicode # Unicode text symlink # Symbolic link # Modifiers +l # Exclusive lock (only one user can edit) +w # Always writable on client +x # Executable bit +S # Only head revision stored (saves space) +F # Check for RCS keywords # Examples p4 add -t binary+l Assets/Textures/hero.psd # Locked binary p4 add -t text Assets/Scripts/Player.cs # Text file ``` ## Delete Operations ### Deleting Files ```bash # Delete single file p4 delete file.txt # Delete multiple files p4 delete *.bak # Delete in specific changelist p4 delete -c 12345 file.txt # Delete files matching pattern p4 delete //depot/project/....tmp ``` ### Handling Deleted Files ```bash # See deleted files in depot p4 files //depot/project/...@head | grep "delete change" # Recover deleted file (sync old revision, then add) p4 sync //depot/project/file.txt#head-1 p4 add file.txt # Or use obliterate (admin only) to permanently remove ``` ## Revert Operations ### Reverting Changes ```bash # Revert single file p4 revert file.txt # Revert all files in changelist p4 revert -c 12345 //... # Revert all open files p4 revert //... # Revert unchanged files only p4 revert -a //... # Revert with preview p4 revert -n //... ``` ### Revert to Specific Revision ```bash # Sync to old revision (makes file read-only) p4 sync //depot/project/file.txt#3 # To actually revert content and submit: p4 sync //depot/project/file.txt#head p4 edit file.txt p4 sync -f //depot/project/file.txt#3 p4 resolve -ay file.txt # Now submit ``` ## Submit Operations ### Submitting Changes ```bash # Submit default changelist (opens editor for description) p4 submit # Submit specific changelist p4 submit -c 12345 # Submit with description p4 submit -d "Fix player movement bug" # Submit specific files from default changelist p4 submit file.txt # Submit and reopen files for further editing p4 submit -r -c 12345 ``` ### Pre-Submit Checks ```bash # Check what will be submitted p4 opened -c default # Check for conflicts before submit p4 sync p4 resolve # Verify files are correct p4 diff -se //... # Files that differ from depot # Check changelist description p4 change -o 12345 ``` ## Status Commands ### Workspace Status ```bash # Files open for edit/add/delete p4 opened # Files that need sync p4 sync -n //... # Files modified but not opened (reconcile needed) p4 status # Reconcile local changes with depot p4 reconcile //... ``` ### Depot Status ```bash # List files in depot p4 files //depot/project/... # List files with specific pattern p4 files //depot/project/....cs # Get file info p4 fstat //depot/project/file.txt # Detailed file info p4 fstat -Ol //depot/project/file.txt ``` ## Reconcile Operations ### Finding Untracked Changes ```bash # Find all local changes not in Perforce p4 reconcile //... # Preview reconcile p4 reconcile -n //... # Reconcile specific types p4 reconcile -e //... # Edited files p4 reconcile -a //... # Added files p4 reconcile -d //... # Deleted files # Reconcile to specific changelist p4 reconcile -c 12345 //... ``` ## Common Workflows ### Daily Sync Workflow ```bash # 1. Check for open files p4 opened # 2. Sync latest p4 sync # 3. Resolve any conflicts p4 resolve # 4. Continue working ``` ### Edit-Submit Workflow ```bash # 1. Open file for edit p4 edit file.txt # 2. Make changes # ... edit file ... # 3. Verify changes p4 diff file.txt # 4. Submit p4 submit -d "Description of changes" ``` ### Add New Files Workflow ```bash # 1. Create files locally # ... create files ... # 2. Add to Perforce p4 add newfile.txt # 3. Verify p4 opened # 4. Submit p4 submit -d "Add new feature files" ``` ## Best Practices 1. **Always sync before editing** - Avoid conflicts 2. **Use descriptive changelist descriptions** - Help others understand 3. **Submit related changes together** - Atomic commits 4. **Revert unchanged files** with `p4 revert -a` 5. **Check `p4 opened`** before leaving for the day 6. **Use `p4 reconcile`** to catch local changes 7. **Preview with `-n`** before destructive operations 8. **Use exclusive locks** for binary files 9. **Don't submit broken code** - Test first 10. **Keep changelists small** - Easier to review/revert ## Troubleshooting | Issue | Solution | |-------|----------| | "File not on client" | Run `p4 sync` first | | "Can't edit - not synced" | Sync file, then edit | | "Can't clobber writable file" | Use `p4 sync -f` or fix permissions | | "File already open" | Check `p4 opened -a` for who has it | | "Out of date" | Sync and resolve before submit | | "No such file" | Check path, use `p4 files` to verify |
Auf GitHub ansehen