Perforce is a proprietary Software Configuration Management (SCM) system. Perforce is not FreeSoftware. You can have twenty users without paying for a licence, and they offer licences free of charge for open source development.

There are two packages that integrate Perforce with Emacs:

p4.el is very good, but has an undesirable interaction with TRAMP (it doesn’t support remote buffers, but its `find-file` hook tries to process TRAMP buffers and causes `find-file`to fail when visiting remote buffers). Here’s a workaround that seems to allow you to do `find-file` without hiccups:

(defun p4-tramp-workaround-find-file-hook ()
    "do not let p4.el process remote TRAMP buffers"
        (and (fboundp 'tramp-tramp-file-p)
             (not (tramp-tramp-file-p buffer-file-name)))

;; p4.el adds p4-update-status to find-file-hook
;; we replace it with a wrapper that filters out remote buffers.
(remove-hook 'find-file-hook 'p4-update-status)
(add-hook 'find-file-hooks 'p4-tramp-workaround-find-file-hook)

See also: Wiki:PerforceVersionControl.