From d368e5980ac20d2fa0ff0604f7293614faf3fdf6 Mon Sep 17 00:00:00 2001 From: irengrig Date: Thu, 17 Nov 2011 18:06:39 +0400 Subject: [PATCH] apply patch debug logging --- .../impl/patch/apply/ApplyFilePatchBase.java | 5 +++ .../impl/patch/apply/GenericPatchApplier.java | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyFilePatchBase.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyFilePatchBase.java index bb58bdabd665..dc9ab5ac99d2 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyFilePatchBase.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyFilePatchBase.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.diff.impl.patch.apply; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diff.impl.patch.ApplyPatchContext; import com.intellij.openapi.diff.impl.patch.FilePatch; import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl; @@ -30,6 +31,7 @@ import org.jetbrains.annotations.Nullable; import java.io.IOException; public abstract class ApplyFilePatchBase implements ApplyFilePatch { + private final static Logger LOG = Logger.getInstance("#com.intellij.openapi.diff.impl.patch.apply.ApplyFilePatchBase"); protected final T myPatch; public ApplyFilePatchBase(T patch) { @@ -52,6 +54,9 @@ public abstract class ApplyFilePatchBase implements ApplyFi final Project project, FilePath pathBeforeRename, Getter baseContents, CommitContext commitContext) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("apply patch called for : " + fileToPatch.getPath()); + } context.addAffectedFile(getTarget(fileToPatch)); if (myPatch.isNewFile()) { applyCreate(fileToPatch, commitContext); diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java index 0322ae7edd76..7084da5b6a7b 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/GenericPatchApplier.java @@ -15,12 +15,14 @@ */ package com.intellij.openapi.diff.impl.patch.apply; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diff.impl.patch.ApplyPatchStatus; import com.intellij.openapi.diff.impl.patch.PatchHunk; import com.intellij.openapi.diff.impl.patch.PatchLine; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.LineTokenizer; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.BeforeAfter; import com.intellij.util.Consumer; import com.intellij.util.containers.CompositeIterator; @@ -35,6 +37,7 @@ import java.util.*; * Time: 3:59 PM */ public class GenericPatchApplier { + private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.diff.impl.patch.apply.GenericPatchApplier"); private final static int ourMaxWalk = 1000; private final TreeMap myTransformations; @@ -45,8 +48,15 @@ public class GenericPatchApplier { private final ArrayList myNotBound; private final ArrayList myNotExact; private boolean mySuppressNewLineInEnd; + + private void debug(final String s) { + if (LOG.isDebugEnabled()) { + LOG.debug(s); + } + } public GenericPatchApplier(final CharSequence text, List hunks) { + debug("GenericPatchApplier created, hunks: " + hunks.size()); myLines = new ArrayList(); Collections.addAll(myLines, LineTokenizer.tokenize(text, false)); myHunks = hunks; @@ -80,7 +90,27 @@ public class GenericPatchApplier { } } + private void printTransformations(final String comment) { + if (LOG.isDebugEnabled()) { + LOG.debug(comment + " GenericPatchApplier.printTransformations ---->"); + int cnt = 0; + for (Map.Entry entry : myTransformations.entrySet()) { + final TextRange key = entry.getKey(); + final MyAppliedData value = entry.getValue(); + LOG.info(String.valueOf(cnt) + + " lines " + + key.getStartOffset() + + ":" + + key.getEndOffset() + + " will replace into: " + + StringUtil.join(value.getList(), "\n")); + } + LOG.debug("<------ GenericPatchApplier.printTransformations"); + } + } + public boolean execute() { + debug("GenericPatchApplier execute started"); if (! myHunks.isEmpty()) { mySuppressNewLineInEnd = myHunks.get(myHunks.size() - 1).isNoNewLineAtEnd(); } @@ -94,6 +124,7 @@ public class GenericPatchApplier { iterator.remove(); } } + printTransformations("after exact match"); /*for (SplitHunk hunk : myNotExact) { complementInsertAndDelete(hunk); }*/ @@ -106,6 +137,7 @@ public class GenericPatchApplier { iterator.remove(); } } + printTransformations("after exact but without context"); for (SplitHunk hunk : myNotExact) { complementInsertAndDelete(hunk); } @@ -116,6 +148,7 @@ public class GenericPatchApplier { iterator.remove(); } } + printTransformations("after variable place match"); return myNotExact.isEmpty(); }