>> +*** In the diff buffer created by a version control system, the prefix >> +arg of diff-goto-source means it jumps to the old revision of the file > ^^^^^^^^^^^^^^^^^ > "... means jump to ..." is a better wording, I think. > > Also, it is best to provide a header for the description of the > change, so that it could be meaningfully folded by Outline mode. Fixed in a new patch. > And I think we want to update the manual as well. Updated. >> +(defvar diff-vc-revisions nil >> + "The VC revisions compared in the current Diff buffer, if any.") >> + >> (defvar diff-outline-regexp >> "\\([*+][*+][*+] [^0-9]\\|@@ ...\\|\\*\\*\\* [0-9].\\|--- [0-9]..\\)") > > Which VCSes does this support? I'm not sure all of them produce such > markers. If this supports only some, we should document that and make > sure the code does something reasonable when the revision is not > found. It should work in all VCSes that support the VC interface function 'find-revision' defined in the comments of vc.el: ;; * find-revision (file rev buffer) ;; ;; Fetch revision REV of file FILE and put it into BUFFER. ;; If REV is the empty string, fetch the head of the trunk. ;; The implementation should pass the value of vc-checkout-switches ;; to the backend command. BTW, its implementation in vc-find-revision currently has a major shortcoming: it always saves the retrieved revision to the file. I spend too much time cleaning after this command all old files that it creates. Thus I propose a new option `vc-find-revision-no-save' to not save the buffer it creates to the file.