18 July 2007

NewVC: Emacs VC with changesets

Eric S. Raymond has apparently begun work on a new version of Emacs' built-in version control (VC) mode which addresses one of VC's historical shortcomings: its file-centric model. VC was originally designed for RCS, which tracks each file individually.

"NewVC" now has the basic infrastructure to manipulate changesets for backends that support them (Subversion, Arch, Bazaar, Mercurial); there's no UI yet but it looks promising... This change was long overdue, committing several files in one go is a must-have nowadays even with less advanced tools like CVS and having a common framework can only be good. Over the years, a number of more advanced interfaces like PCL-CVS and psvn.el have been developed to compensate for VC's defects, all with subtly different keybindings, which makes for a rather annoying experience.

I bet the folks over at DVC aren't too pleased though, since NewVC will probably make DVC mostly irrelevant.

3 comments:

Anonymous said...

DVC serves a different model and has different features (e.g. bookmark support). They're just different. Your comment is like saying the gnus people are horribly upset about VM existing.

Michael Olson said...

It's not so much that DVC will be made irrelevant -- I doubt very much that even a rewrite of vc.el will be able to supplant DVC. The annoyance is that this development just makes it harder to convince RMS to include DVC in Emacs.

ESR said...

New VC is actually done now and will ship in Emacs 23.

I didn't intend to cause a problem for DVC; I disdn't even know much about DVC beyond the bare fact of its existence.

I rewrote VC because I made a design mistake back in 1992 by not making it changeset-oriented when I first wrote it. I was responsible and it needed to be fixed.