
So finally I lost patience with this state of affairs, and I’ve forked p4.el on github, and I’m gradually fixing it. Even though these circumstances are admittedly somewhat trying for networking applications, it’s still completely unacceptable for Emacs to hang for thirty seconds every time you open a file. Sure, Emacs will hang if the Perforce server is unavailable (at least until the network connection times out after thirty seconds or so), but how often does that happen? The Perforce server is very reliable, and hardly ever goes down.īut nowadays, your Perforce server is on the other side of the world, and you’re accessing it via a VPN from your laptop on the train over a mobile data connection that drops every time the train goes into a tunnel. When p4.el was first written back in 1996 or so, it was reasonable to assume that the Perforce server was on a local network, and therefore that it would be fine to perform frequent operations, like checking to see if a visited file is under the control of Perforce, synchronously with respect to the Emacs user interface.

PERFORCE DOWNLOAD WINDOWS 7 SOFTWARE
But more importantly, we’re now making much more serious use of the Internet for software development than we were ten years ago. Perforce has acquired many useful new features in the last eight years: annotate -i in 2005.2, move in 2009.1, shelve and unshelve in 2009.2, grep in 2010.1, annotate -I and copy in 2010.2, sync -s and streams in 2011.1, and status, reconcile and populate in 2012.1. However, the SourceForge repository hasn’t seen any development since 2005 1, and it has been looking a bit ragged around the edges for a few years now. Written originally by Eric Promislow, with important contributions from Rajesh Vaidheeswarran, Peter Österlund, and many others, it’s a piece of software that I have used more or less every day for the last thirteen years. P4.el, the Emacs/Perforce Integration, provides an interface to the Perforce software version management system from the Emacs text editor. In particular, it no longer hangs Emacs when it can’t connect to the Perforce server. I’ve forked the abandoned Emacs/Perforce integration, and started fixing it. ◀ Bogus foreign keys in Django ✴ ✴ Language-oriented programming ▶ Emacs/Perforce integration: back from the dead
