comparison lisp/ediff-vers.el @ 20206:f44ff2c52fac

new version
author Michael Kifer <kifer@cs.stonybrook.edu>
date Sat, 01 Nov 1997 01:46:51 +0000
parents f90d40b0bff5
children 4327dd36b71b
comparison
equal deleted inserted replaced
20205:cdaddfc03fe8 20206:f44ff2c52fac
144 (ediff-buffers rev1buf rev2buf startup-hooks 'ediff-revision))) 144 (ediff-buffers rev1buf rev2buf startup-hooks 'ediff-revision)))
145 145
146 146
147 ;;; Merge with Version Control 147 ;;; Merge with Version Control
148 148
149 (defun ediff-vc-merge-internal (rev1 rev2 ancestor-rev &optional startup-hooks) 149 (defun ediff-vc-merge-internal (rev1 rev2 ancestor-rev
150 &optional startup-hooks merge-buffer-file)
150 ;; If ANCESTOR-REV non-nil, merge with ancestor 151 ;; If ANCESTOR-REV non-nil, merge with ancestor
151 (let (buf1 buf2 ancestor-buf) 152 (let (buf1 buf2 ancestor-buf)
152 (save-excursion 153 (save-excursion
153 (vc-version-other-window rev1) 154 (vc-version-other-window rev1)
154 (setq buf1 (current-buffer))) 155 (setq buf1 (current-buffer)))
173 )) 174 ))
174 startup-hooks)) 175 startup-hooks))
175 (if ancestor-rev 176 (if ancestor-rev
176 (ediff-merge-buffers-with-ancestor 177 (ediff-merge-buffers-with-ancestor
177 buf1 buf2 ancestor-buf 178 buf1 buf2 ancestor-buf
178 startup-hooks 'ediff-merge-revisions-with-ancestor) 179 startup-hooks 'ediff-merge-revisions-with-ancestor merge-buffer-file)
179 (ediff-merge-buffers buf1 buf2 startup-hooks 'ediff-merge-revisions)) 180 (ediff-merge-buffers
181 buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))
180 )) 182 ))
181 183
182 (defun ediff-rcs-merge-internal (rev1 rev2 ancestor-rev 184 (defun ediff-rcs-merge-internal (rev1 rev2 ancestor-rev
183 &optional startup-hooks) 185 &optional
186 startup-hooks merge-buffer-file)
184 ;; If ANCESTOR-REV non-nil, merge with ancestor 187 ;; If ANCESTOR-REV non-nil, merge with ancestor
185 (let (buf1 buf2 ancestor-buf) 188 (let (buf1 buf2 ancestor-buf)
186 (setq buf1 (rcs-ediff-view-revision rev1) 189 (setq buf1 (rcs-ediff-view-revision rev1)
187 buf2 (if (string= rev2 "") 190 buf2 (if (string= rev2 "")
188 (current-buffer) 191 (current-buffer)
194 ;; rcs.el doesn't create temp version files, so we don't have to delete 197 ;; rcs.el doesn't create temp version files, so we don't have to delete
195 ;; anything in startup hooks to ediff-buffers 198 ;; anything in startup hooks to ediff-buffers
196 (if ancestor-rev 199 (if ancestor-rev
197 (ediff-merge-buffers-with-ancestor 200 (ediff-merge-buffers-with-ancestor
198 buf1 buf2 ancestor-buf 201 buf1 buf2 ancestor-buf
199 startup-hooks 'ediff-merge-revisions-with-ancestor) 202 startup-hooks 'ediff-merge-revisions-with-ancestor merge-buffer-file)
200 (ediff-merge-buffers buf1 buf2 startup-hooks 'ediff-merge-revisions)))) 203 (ediff-merge-buffers
204 buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))))
201 205
202 (defun ediff-generic-sc-merge-internal (rev1 rev2 ancestor-rev 206 (defun ediff-generic-sc-merge-internal (rev1 rev2 ancestor-rev
203 &optional startup-hooks) 207 &optional
208 startup-hooks merge-buffer-file)
204 ;; If ANCESTOR-REV non-nil, merge with ancestor 209 ;; If ANCESTOR-REV non-nil, merge with ancestor
205 (let (buf1 buf2 ancestor-buf) 210 (let (buf1 buf2 ancestor-buf)
206 (save-excursion 211 (save-excursion
207 (if (string= rev1 "") 212 (if (string= rev1 "")
208 (setq rev1 (generic-sc-get-latest-rev))) 213 (setq rev1 (generic-sc-get-latest-rev)))
218 (sc-visit-previous-revision ancestor-rev)) 223 (sc-visit-previous-revision ancestor-rev))
219 (setq ancestor-buf (current-buffer)))) 224 (setq ancestor-buf (current-buffer))))
220 (if ancestor-rev 225 (if ancestor-rev
221 (ediff-merge-buffers-with-ancestor 226 (ediff-merge-buffers-with-ancestor
222 buf1 buf2 ancestor-buf 227 buf1 buf2 ancestor-buf
223 startup-hooks 'ediff-merge-revisions-with-ancestor) 228 startup-hooks 'ediff-merge-revisions-with-ancestor merge-buffer-file)
224 (ediff-merge-buffers buf1 buf2 startup-hooks 'ediff-merge-revisions)))) 229 (ediff-merge-buffers
230 buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))))
225 231
226 232
227 ;; PCL-CVS.el support 233 ;; PCL-CVS.el support
228 234
229 (defun ediff-pcl-cvs-internal (rev1 rev2 &optional startup-hooks) 235 (defun ediff-pcl-cvs-internal (rev1 rev2 &optional startup-hooks)
252 258
253 ;; This function is the standard Ediff's interface to pcl-cvs. 259 ;; This function is the standard Ediff's interface to pcl-cvs.
254 ;; Works like with other interfaces: runs ediff on versions of the file in the 260 ;; Works like with other interfaces: runs ediff on versions of the file in the
255 ;; current buffer. 261 ;; current buffer.
256 (defun ediff-pcl-cvs-merge-internal (rev1 rev2 ancestor-rev 262 (defun ediff-pcl-cvs-merge-internal (rev1 rev2 ancestor-rev
257 &optional startup-hooks) 263 &optional
264 startup-hooks merge-buffer-file)
258 ;; Ediff-merge appropriate revisions of the selected file. 265 ;; Ediff-merge appropriate revisions of the selected file.
259 ;; If REV1 is "" then use the latest revision. 266 ;; If REV1 is "" then use the latest revision.
260 ;; If REV2 is "" then merge current buffer's file with REV1. 267 ;; If REV2 is "" then merge current buffer's file with REV1.
261 ;; If ANCESTOR-REV is "" then use current buffer's file as ancestor. 268 ;; If ANCESTOR-REV is "" then use current buffer's file as ancestor.
262 ;; If ANCESTOR-REV is nil, then merge without the ancestor. 269 ;; If ANCESTOR-REV is nil, then merge without the ancestor.
290 startup-hooks)) 297 startup-hooks))
291 298
292 (if ancestor-buf 299 (if ancestor-buf
293 (ediff-merge-buffers-with-ancestor 300 (ediff-merge-buffers-with-ancestor
294 buf1 buf2 ancestor-buf startup-hooks 301 buf1 buf2 ancestor-buf startup-hooks
295 'ediff-merge-revisions-with-ancestor) 302 'ediff-merge-revisions-with-ancestor merge-buffer-file)
296 (ediff-merge-buffers 303 (ediff-merge-buffers
297 buf1 buf2 startup-hooks 'ediff-merge-revisions)) 304 buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))
298 )) 305 ))
299 306
300 (defun ediff-pcl-cvs-view-revision (file rev) 307 (defun ediff-pcl-cvs-view-revision (file rev)
301 ;; if rev = "", get the latest revision 308 ;; if rev = "", get the latest revision
302 (let ((temp-name (make-temp-name 309 (let ((temp-name (make-temp-name
322 (find-file-noselect temp-name)))) 329 (find-file-noselect temp-name))))
323 330
324 331
325 (defun cvs-run-ediff-on-file-descriptor (tin) 332 (defun cvs-run-ediff-on-file-descriptor (tin)
326 ;; This is a replacement for cvs-emerge-mode 333 ;; This is a replacement for cvs-emerge-mode
327 ;; Run after cvs-update. 334 ;; Runs after cvs-update.
328 ;; Ediff-merge appropriate revisions of the selected file. 335 ;; Ediff-merge appropriate revisions of the selected file.
329 (let* ((fileinfo (tin-cookie cvs-cookie-handle tin)) 336 (let* ((fileinfo (tin-cookie cvs-cookie-handle tin))
330 (type (cvs-fileinfo->type fileinfo)) 337 (type (cvs-fileinfo->type fileinfo))
331 (tmp-file 338 (tmp-file
332 (cvs-retrieve-revision-to-tmpfile fileinfo)) 339 (cvs-retrieve-revision-to-tmpfile fileinfo))