;ELC ;;; Compiled by mwolson@grepfind.mwolson.org on Thu Jan 24 00:15:30 2008 ;;; from file /stuff/proj/emacs/dvc/mwolson/lisp/dvc-diff.el ;;; in Emacs version 23.0.50.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`dvc-diff.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\207" [require diff-mode dvc-ui dvc-unified dvc-defs dvc-core dvc-fileinfo] 2) #@55 BASE revision-id for the changes currently displayed. (defvar dvc-diff-base nil (#$ . 759)) (make-variable-buffer-local 'dvc-diff-base) #@59 MODIFIED revision-id for the changes currently displayed. (defvar dvc-diff-modified nil (#$ . 901)) (make-variable-buffer-local 'dvc-diff-modified) #@75 Default for "dvc-search-file-in-diff". Place point on diff hunk for FILE. (defalias 'dvc-dvc-search-file-in-diff #[(file) "\301\302\303Q!\207" [file re-search-forward "^\\+\\+\\+ \\(b\\|mod\\)/" "\\(.+[0-9][0-9][0-9][0-9]\\)?$"] 4 (#$ . 1055)]) #@287 Create and return a buffer to run command showing diffs. Sets `dvc-diff-base' and `dvc-diff-modified' to BASE and MODIFIED. TYPE must be found in `dvc-buffer-type-alist'. PATH must match mode in `dvc-buffer-type-alist' for TYPE. TYPE and PATH are passed to `dvc-get-buffer-create'. (defalias 'dvc-prepare-changes-buffer #[(base modified type path dvc) "r\306 \n#q\210\307\310 \210)\311\312\" \210)  \f p)\207" [dvc type path inhibit-read-only dvc-temp-current-active-dvc base dvc-get-buffer-create t erase-buffer dvc-function "diff-mode" dvc-diff-base modified dvc-diff-modified] 4 (#$ . 1308)]) #@48 Return a face appropriate for STATUS or MODIF. (defalias 'dvc-diff-chose-face #[(status modif) "\302\230\203\303\207\304\230\203\305\207 \306\230\203\307\207\306\230\203 \307\207 \310\230\203(\307\207\311\230\2030\307\207\312\230\2038\313\207\314\230\203@\313\207\315\230\203H\316\207\317\230\203P\320\207\321\322 #\210\320\207" [status modif "A" dvc-added "?" dvc-unknown "M" dvc-modified "-" "P" "C" dvc-conflict "D" "R" dvc-move " " default dvc-trace "unknown status=%S or modif=%S"] 4 (#$ . 1922)]) #@68 Ewoc pretty-printer for `dvc-fileinfo-legacy'. Pretty-print ELEM. (defalias 'dvc-diff-printer #[(elem) "@\306=\203\307\211A@) \235\205\fA@\31080\31181\31282\3138301\3073\205?32\314Q2\2604 \203O\315\202U\31601\" \203a c\210\202d c\2104\3175\32067 89\203\3218!: 9\205\220\322\323\324\325 !\"!;6\203\2346\202\2557\205\255\3267!;\205\255\3267!<;\203\312<\203\305<\327\330\327;\260\202\314;\202\3146= 9\203\332 J\202\334  \331\332:G\333\334\335 \205\371\336\337\340 \341=\2577\205\3427D\"BBBB:$\210:-\2028-c. \207@\343=\203\344\211AA)A@\204/\345\202_\211AA)A@\346=\203@\347\202_\211AA)A@\350=\203Q\351\202_\211AA)A@\352=\205_\353\307\211AA)@R\354\320\211\21167 89\203\3218!: 9\205\220\322\323\324\325 !\"!;6\203\2346\202\2557\205\255\3267!;\205\255\3267!<;\203\312<\203\305<\327\330\327;\260\202\314;\202\3146= 9\203\332 J\202\334  \331\332:G\333\334\335 \205\371\336\337\340 \341=\2577\205\3427D\"BBBB:$\210:-\2028-c\207@\355=\203%\211A@)c\207@\356=\205\332\357\354\320\211\21167 89\203\326\3218!: 9\205U\322\323\324\325 !\"!;6\203a6\202r7\205r\3267!;\205r\3267!<;\203\217<\203\212<\327\330\327;\260\202\221;\202\2216= 9\203\237 J\202\241  \331\332:G\333\334\335 \205\276\336\337\340 \341=\2577\205\307\3427D\"BBBB:$\210:-\202\3308-c\207" [elem empty-mark x dvc-buffer-marked-file-list dvc-mark mark file " " 2 3 4 5 " => " dvc-marked dvc-diff-chose-face dvc-diff-file-map nil copy-sequence substitute-command-keys format "\\{%s}" symbol-name cadr "\n" "================" add-text-properties 0 face font-lock-face append mouse-face highlight keymap help-echo dvc-cmenu subtree " T" "?" changes "M" updated "U" no-changes "-" dvc-nested-tree message searching-subtrees " T Searching for subtrees ..." status modif dir origname line dvc-diff-file-menu help menu str dvc-highlight strcpy key-help prefix-help long-help] 15 (#$ . 2453)]) #@33 Keymap used in `dvc-diff-mode'. (defvar dvc-diff-mode-map (byte-code "\306!\307 \n\310#\210\307 \311\312#\210\307 \313\312#\210\307 \314\315#\210\307 \316\317#\210\307 \320\321#\210\307 \322\321#\210\307 \323\324#\210\307 \325#\210\307 \326\327#\210\307 \330\331#\210\307 \332\333#\210\307 \334\335#\210\307 \f\336#\210\307 \337\340#\210\307 \341#\210\307 @\342#\210\307 \343\344#\210\307 A\345#\210\307 \346\347#\210\307 B\350#\210\307 C\351#\210\307 D\352#\210\307 E\353#\210\307 F\354#\210\307 \355\356#\210\307 G\357#\210\307 H\360#\210\307 \361\362#\210\307 \363\364#\210\307 I\365#\210\307 \366\367#\210\307 \370\371!\372#\210\307 \373\374!\375#\210\307 \373\376!\377#\210\307 \373J!\201L#\210\307 \201M\201N!\201O#\210\307 \201M\201P!\201Q#\210\307 \201M\201R!\201S#\210\307 \201T\201O#\210\307 \201U\201V#\210\307 \201W\201Q#\210\307 \201XK!\201Y#\210\307 \201Z\201[!\201\\#\210\307 \201]\201^!\201_#\210\307 \201]\201`!\201a#\210\307 \201]\201b!\201c#\210\307 \201]\201d!\201e#\210 )\207" [diff-mode-shared-map map dvc-keyvec-help dvc-keyvec-add dvc-keyvec-logs dvc-keyvec-ediff copy-keymap define-key describe-mode " " dvc-diff-jump-to-change [return] [(control x) (control j)] dvc-dired-jump "\275" dvc-diff-scroll-up-or-diff [(meta return)] dvc-diff-scroll-down-or-diff "\215" [61] dvc-diff-diff dvc-add-files "\344" dvc-diff-dtrt "E" dvc-fileinfo-toggle-exclude "\345" dvc-edit-exclude [104] dvc-buffer-pop-to-partner-buffer dvc-log "l" dvc-diff-log dvc-diff-ediff dvc-generic-refresh "R" dvc-fileinfo-rename dvc-log-edit "t" dvc-diff-add-log-entry dvc-diff-next dvc-diff-prev dvc-revert-files dvc-buffer-quit dvc-fileinfo-remove-files [100] dvc-remove-files dvc-diff-mark-file dvc-diff-unmark-file [backspace] dvc-diff-unmark-file-up [118] dvc-diff-view-source dvc-diff-master-buffer [106] dvc-diff-diff-or-list dvc-prefix-kill-ring 100 dvc-diff-save-current-defun-as-kill dvc-prefix-buffer 112 dvc-show-process-buffer 76 dvc-open-internal-log-buffer dvc-keyvec-refresh dvc-keyvec-commit dvc-keyvec-next dvc-keyvec-previous dvc-keyvec-revert dvc-keyvec-quit dvc-keyvec-remove dvc-keyvec-mark dvc-keyvec-unmark dvc-keyvec-parent dvc-key-show-bookmark dvc-key-working-copy dvc-bookmarks dvc-prefix-tagging-method 105 dvc-ignore-files 73 dvc-ignore-file-extensions 101 dvc-edit-ignore-files [105] [73] dvc-ignore-file-extensions-in-dir "\311" vector nil dvc-prefix-working-copy 115 dvc-save-diff dvc-prefix-merge 117 dvc-update 102 dvc-pull 109 dvc-missing 77 dvc-merge] 4) (#$ . 4544)) #@66 Used both in the global and the context menu of `dvc-diff-mode'. (defconst dvc-diff-file-menu-list '("File Changes" ["Jump to File" dvc-diff-jump-to-change t] ["Jump to Diffs" dvc-diff-diff-or-list t] ["View Diff in Separate Buffer" dvc-diff-diff t] ["View Diff with Ediff" dvc-diff-ediff t] ["Log (full tree)" dvc-log t] ["Log (single file)" dvc-diff-log t] "--" ["Delete File" dvc-remove-files t] ["Revert File" dvc-revert-files t]) (#$ . 7097)) #@32 Menu used on a `dvc-diff' file (defvar dvc-diff-file-menu nil (#$ . 7551)) (byte-code "\302\303\304\305$\210\306 B\307\310\311\312\313\314\315\316\257!\207" [dvc-diff-file-menu-list current-load-list easy-menu-do-define dvc-diff-file-menu nil "Menu used on a `dvc-diff' file" dvc-diff-mode-menu-list (lambda (#1=#:defconst-tmp-var) (defconst dvc-diff-mode-menu-list #1#)) ["Refresh Buffer" dvc-generic-refresh t] ["Edit log before commit" dvc-log-edit t] ["Add log entry" dvc-add-log-entry t] ["View other revisions" tla-tree-revisions t] ("Merge" ["Update" dvc-update t] ["Pull" dvc-pull t] ["Show missing" dvc-missing t] ["Merge" dvc-merge t]) ("Ignore" ["Ignore Files" dvc-ignore-files t] ["Ignore File Extensions" dvc-ignore-file-extensions t] ["Edit Ignore File" dvc-edit-ignore-files t]) ("Exclude" ["Exclude File" dvc-fileinfo-toggle-exclude t] ["Edit Exclude File" dvc-edit-exclude t])] 9) #@20 `dvc-changes' menu (defvar dvc-diff-mode-menu nil (#$ . 8459)) (byte-code "\302\303\304\305 B$\207" [dvc-diff-mode-map dvc-diff-mode-menu-list easy-menu-do-define dvc-diff-mode-menu "`dvc-changes' menu" "DVC-Diff"] 6) #@50 Keymap used on files in `dvc-diff-mode' buffers. (defvar dvc-diff-file-map (byte-code "\303!\304 \n\305#\210 )\207" [dvc-cmenu-map-template map dvc-mouse-2 copy-keymap define-key dvc-diff-jump-to-change-by-mouse] 4) (#$ . 8684)) (byte-code "\302\303N\204\f\304\302\303\305#\210\306\307!\204\304\307\310\311#\210\307B\312\307!\204(\313\307\314 \"\210\306\315!\2044\304\315\310\311#\210\315B\312\315!\204D\313\315\316 \"\210\304\301\310\311#\210\301B\312\301!\204^\313\301\317\301\320\"\210 \"\210\304\311\321\320#\207" [current-load-list dvc-diff-mode-abbrev-table dvc-diff-mode-hook variable-documentation put "Hook run when entering dvc-diff mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp dvc-diff-mode-map definition-name dvc-diff-mode default-boundp set-default make-sparse-keymap dvc-diff-mode-syntax-table make-syntax-table define-abbrev-table nil derived-mode-parent] 5) #@555 Major mode to display changesets. Derives from `diff-mode'. Use '\\[dvc-diff-mark-file]' to mark files, and '\[dvc-diff-unmark-file]' to unmark. If you commit from this buffer (with '\\[dvc-log-edit]'), then, the list of selected files (in this buffer) will be commited (with the text you entered as a comment) at the time you actually commit with \\[dvc-log-edit-done]. Commands: \{dvc-diff-mode-map} This mode runs the hook `dvc-diff-mode-hook', as the final step during initialization. (defalias 'dvc-diff-mode #[nil "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \315 !\316\211\317 \210+\320 \321\307\316\211F \306\322!\210\323\324!\325\326!\"\316#\327 \210\330\331!\210\332\316!\210)\333\334!\207" [delay-mode-hooks major-mode mode-name dvc-diff-mode-map dvc-diff-mode-syntax-table dvc-diff-mode-abbrev-table make-local-variable t kill-all-local-variables dvc-diff-mode "dvc-diff" use-local-map set-syntax-table copy-keymap nil diff-mode dvc-current-active-dvc diff-font-lock-keywords dvc-get-file-info-at-point-function dvc-diff-get-file-at-point dvc-diff-generic-refresh ewoc-create dvc-fileinfo-printer dvc-install-buffer-menu toggle-read-only 1 set-buffer-modified-p run-mode-hooks dvc-diff-mode-hook local-abbrev-table diff-mode-shared-map dvc-buffer-current-active-dvc font-lock-defaults dvc-buffer-refresh-function dvc-fileinfo-ewoc dvc-buffer-marked-file-list] 4 (#$ . 9677) nil]) (dvc-add-uniquify-directory-mode 'dvc-diff-mode) #@26 Refresh the diff buffer. (defalias 'dvc-diff-generic-refresh #[nil "\302!\303=\203\f\304 !\207\305\306!\207" [dvc-diff-modified dvc-diff-base dvc-revision-get-type local-tree dvc-diff error "Don't know how to refresh buffer"] 2 (#$ . 11218) nil]) #@51 Return non-nil if in ewoc section of diff buffer. (defalias 'dvc-diff-in-ewoc-p #[nil "\302!\303 !\304 Y)\207" [dvc-fileinfo-ewoc elem ewoc-locate ewoc-location line-beginning-position] 2 (#$ . 11473)]) #@174 Jump to the corresponding file and location of the change at point. OTHER-FILE (default prefix) if non-nil means visit the original file; otherwise visit the modified file. (defalias 'dvc-diff-jump-to-change #[(&optional other-file) "\306 \307 \203\221\310 \311 !\203' G\312Y\203' \313H\n>\203'\314\315 !\202\215\311 !\203\204 G\316Y\203\204 \313H >\203\204\311 !\203Q G\316Y\203Q \313H >\204U\317\320!\210 \321H\211@\322=\203k\314\f\211A@)!\202\200\f@\323=\203}\324\f\211A@)!\202\200\317\325!)\202\215\317\326 \327#\205\215\330)\202\225\331!)\207" [dvc-temp-current-active-dvc fileinfo cl-struct-dvc-fileinfo-file-tags cl-struct-dvc-fileinfo-legacy-tags data x dvc-current-active-dvc dvc-diff-in-ewoc-p dvc-fileinfo-current-fileinfo vectorp 8 0 find-file dvc-fileinfo-current-file 2 error "dvc-fileinfo-legacy-data accessing a non-dvc-fileinfo-legacy" 1 file subtree dvc-switch-to-buffer "Not on a recognized location" "etypecase failed: %s, %s" (dvc-fileinfo-file dvc-fileinfo-legacy) nil dvc-diff-diff-goto-source other-file] 5 (#$ . 11685) "P"]) #@61 If file-diff buffer is visible, scroll. Otherwise, show it. (defalias 'dvc-diff-scroll-or-diff #[(up-or-down) "\306 \211\204 \307\310!\210\311 \312#\313\n \"?\205\314\f \315$*\207" [file dvc-buffer-current-active-dvc buffer up-or-down dvc-diff-base dvc-diff-modified dvc-get-file-info-at-point error "No file at point." dvc-get-buffer file-diff dvc-scroll-maybe dvc-file-diff t] 6 (#$ . 12766)]) (defalias 'dvc-diff-scroll-up-or-diff #[nil "\300\301!\207" [dvc-diff-scroll-or-diff scroll-up] 2 nil nil]) (defalias 'dvc-diff-scroll-down-or-diff #[nil "\300\301!\207" [dvc-diff-scroll-or-diff scroll-down] 2 nil nil]) #@251 Almost the same as `diff-goto-source'. But the target file is transformed by `tla--changes-what-changed-original-file' to handle files in what-changed directory. OTHER-FILE if non-nil means visit the original file; otherwise visit the modified file. (defalias 'dvc-diff-diff-goto-source #[(other-file) "\306K\307K\310\306!\211\205\306K\311\216\306\312M\210\310\307!\211\205!\307K\313\216\307\314M\210\315!.\207" [dvc-original-find-file-noselect dvc-original-file-exists-p #1=#:--cl-letf-bound-- #2=#:--cl-letf-save-- #3=#:--cl-letf-bound-- #4=#:--cl-letf-save-- file-exists-p find-file-noselect fboundp ((byte-code "\203 \302 M\210\202\303\302!\210\302\207" [#1# #2# file-exists-p fmakunbound] 2)) #[(file) "\302\230?\205\f \303!!\207" [file dvc-original-file-exists-p "/dev/null" tla--changes-what-changed-original-file] 3] ((byte-code "\203 \302 M\210\202\303\302!\210\302\207" [#3# #4# find-file-noselect fmakunbound] 2)) #[(file &optional nowarn rawfile wildcards) "\305 !\n \f$\207" [dvc-original-find-file-noselect file nowarn rawfile wildcards tla--changes-what-changed-original-file] 5] diff-goto-source other-file] 3 (#$ . 13396)]) #@165 Jump between list entry and corresponding diff hunk. When in the list, jump to the corresponding diff. When on a diff, jump to the corresponding entry in the list. (defalias 'dvc-diff-diff-or-list #[nil "\305 \203\224\306 \307!\203(G\310Y\203(\311H >\203(\312\313\314 \"\210\315 \202\222\307!\203\211G\316Y\203\211\311H\n>\203\211\307!\203RG\316Y\203R\311H\n>\204V\317\320!\210\321H\211@\322=\203p\312\313 \211A@)\"\210\315 \202\205 @\323=\203\202\324 \211A@)!\202\205\317\325!)\202\222\317\326\327#\205\222\330)\207\331\332\333 !!b\207" [fileinfo cl-struct-dvc-fileinfo-file-tags cl-struct-dvc-fileinfo-legacy-tags data x dvc-diff-in-ewoc-p dvc-fileinfo-current-fileinfo vectorp 8 0 dvc-call "dvc-search-file-in-diff" dvc-fileinfo-current-file diff-hunk-next 2 error "dvc-fileinfo-legacy-data accessing a non-dvc-fileinfo-legacy" 1 file subtree dvc-switch-to-buffer "Not on a recognized location" "etypecase failed: %s, %s" (dvc-fileinfo-file dvc-fileinfo-legacy) nil ewoc-location dvc-fileinfo-find-file dvc-diff-get-file-at-point] 5 (#$ . 14568) nil]) #@104 Mark the file under point, and move to next file. If on a message, mark the group to the next message. (defalias 'dvc-diff-mark-file #[nil "\306 \204 \307\310!\210\311 \312!\203&G\313Y\203&\314H >\203&\315 \202w\312!\203@G\316Y\203@\314H\n>\203@\317 \202w\312!\203nG\316Y\203n\314H >\203n\320\f!\321 \322\323 \"\210\324\f\"\210\325 *\202w\307\326\327#\205w\330)\207" [fileinfo cl-struct-dvc-fileinfo-file-tags cl-struct-dvc-fileinfo-message-tags cl-struct-dvc-fileinfo-legacy-tags dvc-fileinfo-ewoc file dvc-diff-in-ewoc-p error "not in file list" dvc-fileinfo-current-fileinfo vectorp 8 0 dvc-fileinfo-mark-file 2 dvc-diff-mark-group ewoc-locate dvc-get-file-info-at-point add-to-list dvc-buffer-marked-file-list ewoc-invalidate dvc-fileinfo-next "etypecase failed: %s, %s" (dvc-fileinfo-file dvc-fileinfo-message dvc-fileinfo-legacy) nil current] 4 (#$ . 15662) nil]) #@170 Mark a group of files. Must be called with the cursor on a 'message ewoc entry. Marks all files until the end of the ewoc, or the next ewoc entry which is not a 'file. (defalias 'dvc-diff-mark-group #[(&optional unmark) "\306 \204 \307\310!\210\311 \312!\205\"G\313Y\205\"\314H >\205\"\315)\204*\307\316!\210\317 \210\320\311 !\2048\307\321!\210\322\n!\211\203\240\323 !\203\240\320\323 !!\203\240\323 !\324\f!\325\326 \"\210\312\f!\203\202\fG\327Y\203\202\f\314H >\203\202!\203|\330 \210\202\226\331 \210\202\226!\203\221\332 \"\202\226\333\334 \"\210*\335\n \"\211\204@\336\n!\210 \203\257\337 !b\202\261db)\207" [cl-x cl-struct-dvc-fileinfo-message-tags dvc-fileinfo-ewoc ewoc-elem fileinfo file dvc-diff-in-ewoc-p error "not in file list" dvc-fileinfo-current-fileinfo vectorp 2 0 t "not on a message" dvc-fileinfo-next dvc-fileinfo-file-or-legacy-file-p "next in list is not on a file" ewoc-locate ewoc-data dvc-fileinfo-path dvc-trace "mark/unmark %S" 8 dvc-fileinfo-unmark-file dvc-fileinfo-mark-file delete add-to-list dvc-buffer-marked-file-list ewoc-next ewoc-refresh ewoc-location cl-struct-dvc-fileinfo-file-tags unmark] 4 (#$ . 16569)]) #@165 Unmark the file under point. If on a message, unmark the group to the next message. If optional UP, move to previous file first; otherwise move to next file after. (defalias 'dvc-diff-unmark-file #[(&optional up) "\306 \204 \307\310!\210\203\311\312!\210\313 \314 !\2030 G\315Y\2030 \316H\n>\2030\317\320!\210\202\202\314 !\203L G\321Y\203L \316H >\203L\322\312!\210\202\202\314 !\203| G\321Y\203| \316H\f>\203|\323 !\324 \325\"\326 \"\210*\202\202\307\327 \330#\210)?\205\213\331\320!\207" [up fileinfo cl-struct-dvc-fileinfo-file-tags cl-struct-dvc-fileinfo-message-tags cl-struct-dvc-fileinfo-legacy-tags dvc-fileinfo-ewoc dvc-diff-in-ewoc-p error "not in file list" dvc-fileinfo-prev t dvc-fileinfo-current-fileinfo vectorp 8 0 dvc-fileinfo-mark-file-1 nil 2 dvc-diff-mark-group ewoc-locate dvc-get-file-info-at-point delete ewoc-invalidate "etypecase failed: %s, %s" (dvc-fileinfo-file dvc-fileinfo-message dvc-fileinfo-legacy) dvc-fileinfo-next file current dvc-buffer-marked-file-list] 4 (#$ . 17762) nil]) #@42 Unmark the file under point and move up. (defalias 'dvc-diff-unmark-file-up #[nil "\300\301!\207" [dvc-diff-unmark-file t] 2 (#$ . 18813) nil]) #@30 Show diff for file at point. (defalias 'dvc-diff-diff #[nil "\304 \211\203p\305\n \306$\210\307 !)\202\310\311!)\207" [on-modified-file buf dvc-diff-base dvc-diff-modified dvc-get-file-info-at-point dvc-file-diff t pop-to-buffer error "Not on a modified file"] 6 (#$ . 18963) nil]) #@42 Move to the next list line or diff hunk. (defalias 'dvc-diff-next #[nil "\300 \203\301 \207\302 \207" [dvc-diff-in-ewoc-p dvc-fileinfo-next diff-hunk-next] 1 (#$ . 19258) nil]) #@46 Move to the previous list line or diff hunk. (defalias 'dvc-diff-prev #[nil "\300 \203\301 \207\302 \207" [dvc-diff-in-ewoc-p dvc-fileinfo-prev diff-hunk-prev] 1 (#$ . 19443) nil]) #@35 Run ediff on the current changes. (defalias 'dvc-diff-ediff #[nil "@\203\n @\204\305\306!\210\307 `\211\203$\310 \203$\311  #\202]\312\210\313\314\n\"\210\315\316\317!\210\320\317!\210\321 \210\320\322\312\323#\nX\203N\313\324\f\"\210\fT\2029\nb\210r\311  #q\210\325\f!**\207" [dvc-diff-base dvc-diff-modified loc on-modified-file hunk error "No revision information to base ediff on" dvc-get-file-info-at-point dvc-diff-in-ewoc-p dvc-file-ediff-revisions nil dvc-trace "loc=%S" 1 re-search-backward "^--- " re-search-forward diff-hunk-next "\\(^[\\+-].*\n\\)+" t "hunk=%S" ediff-jump-to-difference] 5 (#$ . 19632) nil]) #@122 Show log for current file, LAST-N entries (default `dvc-log-last-n'; all if nil). LAST-N may be specified interactively. (defalias 'dvc-diff-log #[(&optional last-n) "\301\302 \"\207" [last-n dvc-log dvc-get-file-info-at-point] 3 (#$ . 20276) (list (if current-prefix-arg (prefix-numeric-value current-prefix-arg) dvc-log-last-n))]) #@57 Same as `diff-find-file-name', but works in more cases. (defalias 'dvc-diff-find-file-name #[nil "\301\302\303\304#\203\f\305\306!\207\307`\"\204\310\207\311 \207" [dvc-fileinfo-ewoc re-search-backward "^\\+\\+\\+ \\(mod/\\|b/\\)?\\([^\n]*?\\)\\([ ].*\\)?$" nil t match-string-no-properties 2 ewoc-locate "" diff-find-file-name] 4 (#$ . 20616)]) #@71 Return filename for file at point. Throw an error when not on a file. (defalias 'dvc-diff-get-file-at-point #[nil "\301 \203\302 \207\212\303\304!\305 P!)\207" [default-directory dvc-diff-in-ewoc-p dvc-fileinfo-current-file expand-file-name file-name-as-directory dvc-diff-find-file-name] 3 (#$ . 20973)]) #@49 Add a log entry for file or diff hunk at point. (defalias 'dvc-diff-add-log-entry #[(&optional other-frame) "\301 \203 \302!\207\303!\207" [other-frame dvc-diff-in-ewoc-p dvc-fileinfo-add-log-entry dvc-add-log-entry] 2 (#$ . 21288) "P"]) #@193 Free variable used to pass info from the parser to `dvc-show-changes-buffer' (defined with a (let ...) in dvc-show-changes-buffer, and altered by called functions). This is just a lint trap. (defvar dvc-header nil (#$ . 21536)) #@594 Show the *{dvc}-changes* buffer built from the *{dvc}-process* BUFFER. default-directory of process buffer must be a tree root. PARSER is a function to parse the diff and fill in the ewoc list; it will be called with one arg, the changes buffer. Data to be parsed will be in current buffer. Display changes in OUTPUT-BUFFER (must be non-nil; create with dvc-prepare-changes-buffer). If NO-SWITCH is nil, don't switch to the created buffer. If non-nil, HEADER-END-REGEXP is a regexp matching the first line which is not part of the diff header. CMD, if non-nil, is appended to dvc-header. (defalias 'dvc-show-changes-buffer #[(buffer parser &optional output-buffer no-switch header-end-regexp cmd) "rq\210 )\306 \f\307 2\2043\203 q\210\202#\310 !\210\3114\312 \210rq\210eb\2105\203\231 5\313\311\211\2116789\203\342\3148!:9\205a\315\316\317\320!\"!;6\203m6\202~7\205~\3217!;\205~\3217!<;\203\233<\203\226<\322\323\322;\260\202\235;\202\2356=9\203\253J\202\255\324\325:G\326\327\330\205\312\331\332\333\334=\2577\205\323\3357D\"BBBB:$\210:-\202\3448-\322\336\337\340\"\341\311\211\2116789\203\223\3148!:9\205\315\316\317\320!\"!;6\2036\202/7\205/\3217!;\205/\3217!<;\203L<\203G<\322\323\322;\260\202N;\202N6=9\203\\J\202^\324\325:G\326\327\330\205{\331\332\333\334=\2577\205\204\3357D\"BBBB:$\210:-\202\2258-R >\203\262 \342eb\343>\311\344#\210\345 \210`\"P \345 \210? !\210\336\337\340\"\341\311\211\2116789\203g\3148!:9\205\346\315\316\317\320!\"!;6\203\3626\2027\205\3217!;\205\3217!<;\203 <\203<\322\323\322;\260\202\";\202\"6=9\2030J\2022\324\325:G\326\327\330\205O\331\332\333\334=\2577\205X\3357D\"BBBB:$\210:-\202i8-\346\342`d\"Q@r q\210\347A @#\210\n\203\207\350\n!\210.\351\352!\210eb\210\343\353\311\344#\203\254B\204\242-\203\270\311C\354 \210)\202\270\311D\355\356!\210\357A!\210\360A\325\"\205\310\361\360A\325\"!b\207" [buffer default-directory root dvc output-buffer changes-buffer dvc-current-active-dvc "" dvc-switch-to-buffer nil dvc-fileinfo-delete-messages dvc-header copy-sequence substitute-command-keys format "\\{%s}" symbol-name cadr "\n" "================" add-text-properties 0 face font-lock-face append mouse-face highlight keymap help-echo dvc-cmenu make-string 72 32 dvc-separator buffer-substring-no-properties re-search-forward t beginning-of-line "\n\n" ewoc-set-hf cd toggle-read-only 1 "^---" font-lock-fontify-buffer font-lock-mode -1 ewoc-refresh ewoc-nth ewoc-location no-switch dvc-switch-to-buffer-first buffer-read-only cmd help menu str dvc-highlight strcpy key-help prefix-help long-help header-end-regexp parser footer dvc-fileinfo-ewoc global-font-lock-mode font-lock-verbose font-lock-keywords] 17 (#$ . 21772)]) #@300 Function to call from diff parser when there are no changes in a tree. Inserts a message in the changes buffer, and in the minibuffer. DIFF-BUFFER is the buffer prepared by dvc-prepare-changes-buffer. MSG is a format string for a message to the user. DIR is a string, passed to `format' with MSG. (defalias 'dvc-diff-no-changes #[(diff-buffer msg dir) "rq\210\305\306 \210\307\n\310\311\312\313 \f\"\314Q\"\"\210\315\n!\210\316\317!\210*\320 \f\"\207" [diff-buffer inhibit-read-only dvc-fileinfo-ewoc msg dir t dvc-fileinfo-delete-messages ewoc-enter-last vector cl-struct-dvc-fileinfo-message "* " format ".\n\n" ewoc-refresh recenter (4) message] 8 (#$ . 24696)]) #@187 Enter a message in DIFF-BUFFER (created by dvc-prepare-changes-buffer), consisting of MSG and the contents of OUTPUT and ERROR. Should be called by the error handler in the diff parser. (defalias 'dvc-diff-error-in-process #[(diff-buffer msg output error) "rq\210\306\307 \210\310\n\311\312\313 \314\315\f!\315 !\260\"\"\210\316\n!\210\317 \210*\320 !\207" [diff-buffer inhibit-read-only dvc-fileinfo-ewoc msg output error t dvc-fileinfo-delete-messages ewoc-enter-last make-dvc-fileinfo-message :text "* " ":\n" dvc-buffer-content ewoc-refresh recenter message] 10 (#$ . 25373)]) #@121 Clears all DVC diff and status buffers with root ROOT, insert message MSG. Useful to clear diff buffers after a commit. (defalias 'dvc-diff-clear-buffers #[(dvc root msg) "\306\307 #\210\310\n\311#\310\n\312#D\313\211\203M\f@\211\203F\306\314 \"\210r q\210\315\316\317\"\210\320\321\211#\210\322\323\324 \"\"\210\325!\210*\fA\211\204*\313\207" [root msg dvc buffer #1=#:--cl-dolist-temp-- inhibit-read-only dvc-trace "dvc-diff-clear-buffers (%S %S)" dvc-get-buffer diff status nil "buffer=%S" t ewoc-filter #[(fileinfo) "\302!\2054G\303Y\2054\304H >\2054\302!\203*G\303Y\203*\304H >\204.\305\306!\210\307H@\310=\207" [fileinfo cl-struct-dvc-fileinfo-legacy-tags vectorp 2 0 error "dvc-fileinfo-legacy-data accessing a non-dvc-fileinfo-legacy" 1 subtree] 2] ewoc-set-hf "" ewoc-enter-first vector cl-struct-dvc-fileinfo-message ewoc-refresh dvc-fileinfo-ewoc] 6 (#$ . 25964)]) #@42 Do The Right Thing in a dvc-diff buffer. (defalias 'dvc-diff-dtrt #[(prefix) "\306 \211G\307 W\203\310@!\202\212\311 \204\312 \210\313 )\314\n!\2035\nG\315Y\2035\n\316H >\2049\317\320!\210\n\321H\211\322=\203T\307 W\203M\317\323!\210\324\n \"\202\345\f\325=\203b\326 \210\327 \202\345\f\330=\203\204\331!\203s\332 \202\345\333!\210\326 \210\334\335 \336P\337\"\202\345\f\340=\203\261\311 \203\240\307 W\203\233\317\341!\202\345\342 \202\345\307 W\203\254\317\343!\202\345\344 \202\345\345\f\346\"\203\300\326 \210\327 \202\345\f\347=\203\334\331!\203\321\332 \202\345\333!\210\334\350\351\"\202\345\317\352\f\353#\205\345\350,\207" [marked-elems length-marked-elems fileinfo cl-struct-dvc-fileinfo-file-tags status prefix dvc-fileinfo-marked-elems 1 ewoc-data dvc-diff-in-ewoc-p dvc-diff-diff-or-list dvc-fileinfo-current-fileinfo vectorp 8 0 error "dvc-fileinfo-file-status accessing a non-dvc-fileinfo-file" 5 added "cannot Do The Right Thing on more than one 'added' file" dvc-fileinfo-add-log-entry-1 deleted ding dvc-fileinfo-next missing dvc-fileinfo-rename-possible dvc-fileinfo-rename dvc-fileinfo-same-status dvc-offer-choices dvc-fileinfo-current-file " does not exist in working directory" ((dvc-revert-files "revert") (dvc-remove-files "remove") (dvc-fileinfo-rename "rename")) modified "cannot ediff more than one file" dvc-diff-ediff "cannot add a log entry for more than one file" dvc-diff-add-log-entry memql (copy-source copy-target rename-source rename-target) unknown nil ((dvc-add-files "add") (dvc-ignore-files "ignore") (dvc-remove-files "remove") (dvc-fileinfo-rename "rename")) "ecase failed: %s, %s" (added deleted missing modified rename-target rename-source copy-target copy-source unknown)] 5 (#$ . 26879) "P"]) #@72 Run ediff of FILE (default current buffer file) against last revision. (defalias 'dvc-file-ediff #[(file) "\304!\305\306 \307\310\311\"\312BBD\"r q\210\313\314!\210\315\316!\210\317\311!\210*\320 \n\"*\207" [file pristine-buffer file-buffer buffer-file-name find-file-noselect dvc-revision-get-file-in-buffer dvc-current-active-dvc last-revision dvc-tree-root t (1) set-buffer-modified-p nil toggle-read-only 1 set-auto-mode dvc-ediff-buffers] 8 (#$ . 28667) (list (buffer-file-name))]) #@61 View changes in FILE between BASE and MODIFIED using ediff. (defalias 'dvc-file-ediff-revisions #[(file base modified) "\303\304 \"\304\n\"\"\207" [file base modified dvc-ediff-buffers dvc-revision-get-file-in-buffer] 5 (#$ . 29167)]) #@142 Default for back-end-specific file diff. View changes in FILE between BASE (default last-revision) and MODIFIED (default workspace version). (defalias 'dvc-dvc-file-diff #[(file &optional base modified dont-switch) "@\206\306 \206 \307\n\310BBD \206 \311\nDD\312 \313\314\n!#\315\n\"\315\n \")\316\317!*\316\320!+*\321\322\323!!,-\324\216r,q\210r q\210\325 )c\210r q\210.).)r,q\210~\210\326ed-\327\330%\210,+\321\322\323!!/0\331\216r/q\210r)q\210\325 )c\210r)q\210.).)r/q\210~\210\326ed0\327\330%\210,\332\f!\210\333\334\n!?\205\266\33512\336 \210\3373\327\f\327\340\3411\nQ\3421\nQ*+& \210*\343*!\210\343+!\210\344\345!\210\346\347!\210eb\210\350 .\207" [base dvc file modified diff-buffer base-buffer dvc-current-active-dvc last-revision (1) local-tree dvc-get-buffer-create file-diff dvc-uniquify-file-name dvc-revision-get-file-in-buffer make-temp-file "DVC-file-diff-base" "DVC-file-diff-mod" get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n\302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) buffer-string write-region nil 0 ((byte-code "\301!\203\n\302!\210\301\207" [#2=#:temp-buffer buffer-name kill-buffer] 2)) dvc-switch-to-buffer t file-name-absolute-p "/" erase-buffer call-process "-u" "-La" "-Lb" delete-file message "" toggle-read-only 1 diff-mode modified-buffer base-file modified-file #1# #3=#:temp-file buffer-file-coding-system #2# #4=#:temp-file slash inhibit-read-only dvc-diff-executable] 10 (#$ . 29411)]) #@115 Passed as a startup hook for ediff. Programs ediff to return to the current window configuration after quitting. (defalias 'dvc-ediff-startup-hook #[nil "\302\303\304\305\306\307\310CDEE\305\311$\210\312 \211\207" [dvc-window-config dvc-buffer-current-active-dvc add-hook ediff-after-quit-hook-internal lambda nil apply #[(#1=#:dvc-gensym-uniq-34) "\301!\207" [#1# set-window-configuration] 2] quote local dvc-current-active-dvc] 8 (#$ . 30949)]) #@86 Keep byte-compiler happy; declare let-bound variable used by dvc-ediff-startup-hook. (defvar dvc-window-config nil (#$ . 31406)) #@80 Wrapper around `ediff-buffers'. Calls `ediff-buffers' on BUFFERA and BUFFERB. (defalias 'dvc-ediff-buffers #[(bufferA bufferB) "\304 \305 \306\n \307\310$*\207" [dvc-temp-current-active-dvc dvc-window-config bufferA bufferB current-window-configuration dvc-current-active-dvc ediff-buffers (dvc-ediff-startup-hook) dvc-ediff] 5 (#$ . 31541)]) (provide 'dvc-diff)