[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 6018029 11/36: Started updating diff logic to include igno
From: |
Alexey Veretennikov |
Subject: |
[elpa] master 6018029 11/36: Started updating diff logic to include ignored files |
Date: |
Wed, 27 Jan 2016 23:50:51 +0000 |
branch: master
commit 6018029ba2f376ffede082bba171c0344e307385
Author: Alexey Veretennikov <address@hidden>
Commit: Alexey Veretennikov <address@hidden>
Started updating diff logic to include ignored files
---
ztree-diff-model.el | 22 ++++++++++++----------
ztree-diff.el | 33 ++++++++++++++++++++-------------
2 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/ztree-diff-model.el b/ztree-diff-model.el
index e06e82f..712f8ae 100644
--- a/ztree-diff-model.el
+++ b/ztree-diff-model.el
@@ -53,7 +53,7 @@
;; right-path is the full path of the right side,
;; short-name - is the file or directory name
;; children - list of nodes - files or directories if the node is a directory
-;; different = {nil, 'new, 'diff} - means comparison status
+;; different = {nil, 'new, 'diff, 'ignore} - means comparison status
(ztree-defrecord ztree-diff-node (parent left-path right-path short-name
right-short-name children different))
(defun ztree-diff-model-ignore-p (node)
@@ -67,6 +67,7 @@
(cond ((stringp x) x)
((eq x 'new) "new")
((eq x 'diff) "different")
+ ((eq x 'ignore) "ignored")
(t (ztree-diff-node-short-name
x)))
"(empty)")))
(children (ztree-diff-node-children node))
@@ -202,15 +203,16 @@ Argument SIDE either 'left or 'right side."
(defun ztree-diff-node-update-diff-from-children (node)
"Set the diff status for the NODE based on its children."
- (let ((children (ztree-diff-node-children node))
- (diff nil))
- (dolist (child children)
- (unless (ztree-diff-model-ignore-p child)
- (setq diff
- (ztree-diff-model-update-diff
- diff
- (ztree-diff-node-different child)))))
- (ztree-diff-node-set-different node diff)))
+ (unless (eq (ztree-diff-node-different node 'ignore))
+ (let ((children (ztree-diff-node-children node))
+ (diff nil))
+ (dolist (child children)
+ (unless (ztree-diff-model-ignore-p child)
+ (setq diff
+ (ztree-diff-model-update-diff
+ diff
+ (ztree-diff-node-different child)))))
+ (ztree-diff-node-set-different node diff))))
(defun ztree-diff-node-update-all-parents-diff (node)
"Recursively update all parents diff status for the NODE."
diff --git a/ztree-diff.el b/ztree-diff.el
index b95af1b..c2ad76f 100644
--- a/ztree-diff.el
+++ b/ztree-diff.el
@@ -117,7 +117,7 @@ By default paths starting with dot (like .git) are ignored")
(defun ztree-diff-node-face (node)
"Return the face for the NODE depending on diff status."
(let ((diff (ztree-diff-node-different node)))
- (cond ((ztree-diff-node-ignore-p node) ztreep-diff-model-ignored-face)
+ (cond ((eq diff 'ignore) ztreep-diff-model-ignored-face)
((eq diff 'diff) ztreep-diff-model-diff-face)
((eq diff 'new) ztreep-diff-model-add-face)
(t ztreep-diff-model-normal-face))))
@@ -143,7 +143,11 @@ By default paths starting with dot (like .git) are
ignored")
(insert "\n")
(ztree-insert-with-face " Mismatch file " ztreep-diff-model-diff-face)
(ztree-insert-with-face "- different from other side"
ztreep-diff-header-small-face)
+ (insert "\n ")
+ (ztree-insert-with-face "Ignored file" ztreep-diff-model-ignored-face)
+ (ztree-insert-with-face " - ignored from comparison"
ztreep-diff-header-small-face)
(insert "\n")
+
(ztree-insert-with-face "==============" ztreep-diff-header-face)
(insert "\n"))
@@ -261,8 +265,9 @@ COPY-TO-RIGHT specifies which side of the NODE to update."
(if err (message (concat "Error: " (nth 2 err)))
(progn ; otherwise:
;; assuming all went ok when left and right nodes are the same
- ;; set both as not different
- (ztree-diff-node-set-different node nil)
+ ;; set both as not different if they were not ignored
+ (unless (eq (ztree-diff-node-different node) 'ignore)
+ (ztree-diff-node-set-different node nil))
;; update left/right paths
(if copy-to-right
(ztree-diff-node-set-right-path node target-path)
@@ -441,16 +446,18 @@ unless it is a parent node."
(defun ztree-node-is-visible (node)
"Determine if the NODE should be visible."
- ;; visible then
- ;; 1) either it is a parent
- (or (not (ztree-diff-node-parent node)) ; parent is always visible
- (and
- ;; 2.1) or it is not in ignore list and
- (or ztree-diff-show-filtered-files ; show filtered files regardless
- (not (ztree-diff-node-ignore-p node)))
- ;; 2.2) it has different status
- (or ztree-diff-show-equal-files ; show equal files regardless
- (ztree-diff-node-different node)))))
+ (let ((diff (ztree-diff-node-different node)))
+ ;; visible then
+ ;; 1) either it is a parent
+ (or (ztree-diff-node-parent node) ; parent is always visible
+ ;; 2.1) or it is not in ignore list and
+ (and (eq diff 'ignore)
+ ztree-diff-show-filtered-files) ; show filtered files regardless
+ ;; 2.2) it has different status
+ (and ztree-diff-show-equal-files ; show equal files regardless
+ (not diff))
+ (or (eq diff 'new)
+ (eq diff 'diff)))))
(defun ztree-diff-toggle-show-equal-files ()
"Toggle visibility of the equal files."
- [elpa] master 4e112f8 04/36: Updated add-tree method, (continued)
- [elpa] master 4e112f8 04/36: Updated add-tree method, Alexey Veretennikov, 2016/01/27
- [elpa] master ac0834d 05/36: Updated readme: added information about contributing, Alexey Veretennikov, 2016/01/27
- [elpa] master 5603c70 02/36: Updated README to include new variable introduced in issue #23, Alexey Veretennikov, 2016/01/27
- [elpa] master c6c9257 01/36: Implemented issue #23: Add optional unicode tree drawing facility, Alexey Veretennikov, 2016/01/27
- [elpa] master c75719f 10/36: Replaced hardcoded diff with diff-command from diff.el, Alexey Veretennikov, 2016/01/27
- [elpa] master 418af99 08/36: Added face for ignored files, Alexey Veretennikov, 2016/01/27
- [elpa] master 45b6921 09/36: Updated print function, Alexey Veretennikov, 2016/01/27
- [elpa] master 04b29c8 06/36: Updated readme, Alexey Veretennikov, 2016/01/27
- [elpa] master 67b9b4b 03/36: Issue #24: updated traverse function, Alexey Veretennikov, 2016/01/27
- [elpa] master 4a935ee 07/36: Reshuffled readme, Alexey Veretennikov, 2016/01/27
- [elpa] master 6018029 11/36: Started updating diff logic to include ignored files,
Alexey Veretennikov <=
- [elpa] master c227ed8 12/36: Added debug output and some other changes, Alexey Veretennikov, 2016/01/27
- [elpa] master 64d3960 13/36: Added face for ignored files, Alexey Veretennikov, 2016/01/27
- [elpa] master 45dda44 14/36: Started updating diff logic to include ignored files, Alexey Veretennikov, 2016/01/27
- [elpa] master 2dc412f 15/36: Added debug output and some other changes, Alexey Veretennikov, 2016/01/27
- [elpa] master 9408ca1 17/36: Fixed ztree-node-is-visible, Alexey Veretennikov, 2016/01/27
- [elpa] master eea3c2b 19/36: added comments, Alexey Veretennikov, 2016/01/27
- [elpa] master cef7d95 20/36: Functions with errors still:, Alexey Veretennikov, 2016/01/27
- [elpa] master 653a7f1 21/36: Fixed ignored files, Alexey Veretennikov, 2016/01/27
- [elpa] master a27dbbd 22/36: Started to fix issues with delete file, Alexey Veretennikov, 2016/01/27
- [elpa] master c3144bd 16/36: Updated model - ignored files still not handled, Alexey Veretennikov, 2016/01/27