Guide

A tour of p4-web, from login to submit — and the corners past it: search, and the metadata browsers. If you haven't installed it yet, the quickstart gets a server running in under a minute.

All screenshots show a demo depot (//rocket) with fictional users and changelists — your instance will show your own server's data, filtered by your Perforce protections.

p4 login
step 1

Log in with your Perforce account

Credentials are exchanged for a p4 login ticket — the password itself is never stored. If your site uses long-lived tickets, you can paste a ticket value in place of the password, Swarm-style. The server address shown under the logo is the instance's P4PORT.

p4-web login screen with user and password fields
Login — user + password, or user + pasted ticket
p4 dirs
step 2

Browse the depot

The collapsible tree on the left stays in sync with deep links, P4V-style. Listings show revision, changelist, type and modified time — click a column header to sort. The ☆ button saves the current path as a favorite; favorites become a dashboard on the root page. Directories with a README render it below the listing.

Depot browser with tree sidebar, breadcrumbs, and a sortable file listing
Depot browser — tree, breadcrumbs, sortable listing
p4 print
step 3

Read files

Syntax highlighting works offline (vendored highlight.js). The revision dropdown re-renders the file at any revision; Raw and Download serve the exact bytes. Click a line number to copy a permalink or start an inline comment thread. Markdown files get a Rendered/Source toggle.

File viewer showing syntax-highlighted Python with line numbers, revision dropdown, and comment box
File viewer — Content · History · Annotate · Graph tabs
p4 annotate
step 4

Blame, with a time machine

The Annotate tab shows the changelist and author that last touched every line — click through to the full change. The slider in the header is a time-lapse: drag it to re-blame the file as it stood at any earlier revision.

Annotate view with per-line changelist and author gutter and a revision time-lapse slider
Annotate — per-line change + author, time-lapse slider
p4 diff2
step 5

Compare revisions

Unified and side-by-side views everywhere a diff appears; the toggle remembers your preference. Pick arbitrary revision pairs from the History tab — or compare whole directory trees, which is the next step.

Side-by-side diff of two revisions with added and removed lines highlighted
Diff — side-by-side, arbitrary revision pairs
p4 diff2 -q
step 6

Compare whole trees

Folder diff (under More, or the button on any directory) takes two depot paths and reports what differs across them: files that changed on both sides, files that exist on only one, and type changes. Either side may carry an @change or @date suffix, so the same path compared against its own past answers “what has this directory done since the release?” Every differing row links straight to the file diff.

Folder diff comparing a directory against an older changelist: rows marked differs, type differs, left only, and right only
Folder diff — a directory against its own older state
p4 changes
step 7

Find changes

Filter submitted or pending changelists by user, path, description text, or date range — and submitted ones by filename too. Description and filename search run against a per-user local index (the ⚡ bar) that respects your protections and updates incrementally, so searches over thousands of changes come back instantly. The page itself appears at once: the filters never wait on the index.

Changes view with filter bar, index status bar, and a list of changelists
Changes — filters + indexed description/filename search
p4 describe
step 8

Read a changelist

Open any change number to get the full description, its jobs, and every file it touched. Each edited file has a disclosure triangle that expands the diff inline — unified or side-by-side, without leaving the page — and pending changelists show their shelved files against the base revision. At the bottom, a comment thread hangs off the changelist itself: markdown bodies, one level of replies, resolve when the point is settled.

Change detail page: description, file list with one diff expanded inline, and a comment thread
Change detail — inline diffs and a comment thread
app-side
step 9

Comment where the code is

Every line of every diff carries its own anchor: hover a line, hit the speech bubble in the gutter, and a thread opens under it — markdown body, one level of replies, resolve when the point is settled. Lines that already carry threads show the count, so you can see at a glance where the conversation is. A thread opened inside a changelist's diff is the same thread you see on the file's own page, and typing @name pulls up your colleagues and puts the comment in their mentions.

A changelist with one diff expanded and a comment thread open under line 90, plus the review bar and comment panel below
A thread anchored to line 90, opened from the diff itself
app-side
step 10

Reviews and mentions

Shelve a changelist, then mark it in review, approved, or needs work from its page. The state is the app's, not Perforce's — nothing about your changelist changes — and every move is logged with who made it and an optional note, so “approved” always says approved by whom. Anyone who can see the change can move it. The Reviews page under More is the queue; the @ badge in the top bar is your own: comments that named you, newest first, cleared when you read them.

Reviews list with approved, needs work, and in review states across three changelists
Reviews — the queue, filtered by state
Mentions page listing comments that named you, with unread ones marked
Mentions — where you were named, read or unread
p4 submit
step 11

Edit and submit

My Changes is your personal pending-changelist page, backed by a server-side workspace created on demand. From any file page, Edit or Delete opens the file into a changelist; here you can:

  • edit text files in the web editor, or upload new/replacement files (binary-safe)
  • rewrite a changelist description, or delete a changelist you no longer want
  • shelve and unshelve, or delete the shelf
  • revert single files or the whole changelist
  • submit — behind a confirmation that lists exactly what will land

You can only touch your own p4-web changelists, and every write is recorded in an audit log.

My Changes detail page with description editor, file list with actions, and submit/shelve buttons
My Changes — web editor, upload, shelve, submit
p4 labels …
step 13

Everything else lives under More

Labels with their tagged files, jobs with the fixes that closed them, branch mappings, streams with their parents, and users & groups — the P4V metadata browsers, one menu away. Folder diff (step 6) lives here too.

Jobs browser with the More menu open, listing Labels, Jobs, Branches, Streams, Users and Groups, and Folder diff
More — metadata browsers, here over the jobs list
app-side
step 14

See where the work is going

Stats answers the questions a list of changelists can’t: how busy is this depot lately, which areas are moving, and who is submitting. Switch the time axis between day, week, month and year; step the path chart deeper or click a bar to drill into that directory; click an account to see only theirs. The three charts share one filter set, so narrowing any of them narrows the rest — and clicking a bar hands that exact slice to the Changes list. Numbers come from the same local index that makes changelist search fast, built with your own Perforce ticket, so they only ever count what you are allowed to see.

The Stats page: four tiles (submits, accounts, top-level areas, per day), a monthly bar chart of submits over time with day/week/month/year buttons, a horizontal bar chart of submits per depot directory with a depth stepper, and one of submits per account
Stats — submits over time, by path, and by account
app-side
step 15

Keep what you use, switch off the rest

The gear in the top bar opens Settings. Reviews, comments, mentions, write operations, favorites, stats and the fast changelist index can each be turned off — the switches are stored with your account, so they follow you to any browser, while theme and diff layout stay per device. Whoever runs the server can turn a feature off for everyone, in which case its row here says so and stays put. Nothing is deleted either way: switch a feature back on and everything written while it was on is where you left it.

The Settings page: a Features list with checkboxes for comments, mentions, reviews, write operations, favorites, fast changelist search and stats, an Appearance list with theme, diff layout and markdown view, and an About section
Settings — features per account, appearance per device