FasterXML / jackson-core

Compare d63cef0 ... +249 ... 4d8a310

Coverage Reach
json/UTF8StreamJsonParser.java json/async/NonBlockingUtf8JsonParserBase.java json/async/NonBlockingJsonParserBase.java json/async/NonBlockingByteBufferJsonParser.java json/async/NonBlockingByteArrayJsonParser.java json/ReaderBasedJsonParser.java json/UTF8DataInputJsonParser.java json/WriterBasedJsonGenerator.java json/UTF8JsonGenerator.java json/ByteSourceJsonBootstrapper.java json/JsonParserBase.java json/JsonFactory.java json/JsonWriteContext.java json/JsonFactoryBuilder.java json/JsonReadContext.java json/JsonGeneratorBase.java json/DupDetector.java json/JsonReadFeature.java json/JsonWriteFeature.java io/schubfach/DoubleToDecimal.java io/schubfach/FloatToDecimal.java io/schubfach/MathUtils.java io/NumberOutput.java io/JsonStringEncoder.java io/UTF8Writer.java io/NumberInput.java io/CharTypes.java io/ContentReference.java io/UTF32Reader.java io/BigDecimalParser.java io/SerializedString.java io/IOContext.java io/MergedStream.java io/SegmentedStringWriter.java io/BigIntegerParser.java io/DataOutputAsStream.java io/CharacterEscapes.java io/InputDecorator.java io/OutputDecorator.java sym/ByteQuadsCanonicalizer.java sym/BinaryNameMatcher.java sym/CharsToNameCanonicalizer.java sym/HashedMatcherBase.java sym/SimpleNameMatcher.java sym/PropertyNameMatcher.java util/TextBuffer.java util/JsonGeneratorDelegate.java util/DefaultPrettyPrinter.java util/ByteArrayBuilder.java util/JsonParserDelegate.java util/JsonParserSequence.java util/SimpleStreamWriteContext.java util/SimpleStreamReadContext.java util/DefaultIndenter.java util/BufferRecycler.java util/MinimalPrettyPrinter.java util/VersionUtil.java util/ThreadLocalBufferManager.java util/JacksonFeatureSet.java util/BufferRecyclers.java util/Separators.java util/InternCache.java util/JsonpCharacterEscapes.java util/Named.java util/Snapshottable.java filter/FilteringParserDelegate.java filter/FilteringGeneratorDelegate.java filter/TokenFilterContext.java filter/TokenFilter.java filter/JsonPointerBasedFilter.java base/ParserBase.java base/ParserMinimalBase.java base/GeneratorBase.java base/TextualTSFactory.java base/DecorableTSFactory.java base/BinaryTSFactory.java JsonPointer.java Base64Variant.java JsonGenerator.java TokenStreamFactory.java JsonLocation.java TSFBuilder.java exc/StreamReadException.java exc/StreamWriteException.java exc/WrappedIOException.java exc/InputCoercionException.java exc/UnexpectedEndOfInputException.java TokenStreamContext.java Version.java JsonToken.java JsonParser.java JacksonException.java StreamReadConstraints.java type/WritableTypeId.java type/TypeReference.java type/ResolvedType.java Base64Variants.java ObjectReadContext.java ObjectWriteContext.java StreamWriteFeature.java StreamReadFeature.java JsonEncoding.java StreamReadCapability.java StreamWriteCapability.java PrettyPrinter.java

Flags

Flags have been temporarily removed from this view while the flagging feature is refactored for better performance and user experience.

You can still use flags when viewing individual files. Flag-level thresholds will also remain on pull and merge requests in your repository provider.

More information can be found in our documentation.

Showing 105 of 300 files from the diff.
Other files ignored by Codecov
pom.xml has changed.
README.md has changed.
.gitattributes has changed.

@@ -3,9 +3,9 @@
Loading
3 3
 * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
4 4
 */
5 5
6 -
package com.fasterxml.jackson.core;
6 +
package tools.jackson.core;
7 7
8 -
import com.fasterxml.jackson.core.io.ContentReference;
8 +
import tools.jackson.core.io.ContentReference;
9 9
10 10
/**
11 11
 * Object that encapsulates Location information used for reporting
@@ -22,22 +22,15 @@
Loading
22 22
{
23 23
    private static final long serialVersionUID = 2L; // in 2.13
24 24
25 -
    /**
26 -
     * @deprecated Since 2.13 use {@link ContentReference#DEFAULT_MAX_CONTENT_SNIPPET} instead
27 -
     */
28 -
    @Deprecated
29 -
    public static final int MAX_CONTENT_SNIPPET = 500;
30 -
31 25
    /**
32 26
     * Shared immutable "N/A location" that can be returned to indicate
33 27
     * that no location information is available.
34 -
     *<p>
35 -
     * NOTE: before 2.9, Location was given as String "N/A"; with 2.9 it was
36 -
     * removed so that source should be indicated as "UNKNOWN".
37 28
     */
38 29
    public final static JsonLocation NA = new JsonLocation(ContentReference.unknown(),
39 30
            -1L, -1L, -1, -1);
40 31
32 +
    private final static String NO_LOCATION_DESC = "[No location information]";
33 +
41 34
    protected final long _totalBytes;
42 35
    protected final long _totalChars;
43 36
@@ -47,8 +40,6 @@
Loading
47 40
    /**
48 41
     * Reference to input source; never null (but may be that of
49 42
     * {@link ContentReference#unknown()}).
50 -
     *
51 -
     * @since 2.13 (before we have {@code _sourceRef} (Object-valued)
52 43
     */
53 44
    protected final ContentReference _contentReference;
54 45
@@ -86,24 +77,6 @@
Loading
86 77
        _columnNr = columnNr;
87 78
    }
88 79
89 -
    @Deprecated // since 2.13
90 -
    public JsonLocation(Object srcRef, long totalChars, int lineNr, int columnNr) {
91 -
        this(_wrap(srcRef), totalChars, lineNr, columnNr);
92 -
    }
93 -
94 -
    @Deprecated // since 2.13
95 -
    public JsonLocation(Object srcRef, long totalBytes, long totalChars,
96 -
            int lineNr, int columnNr) {
97 -
        this(_wrap(srcRef), totalBytes, totalChars, lineNr, columnNr);
98 -
    }
99 -
100 -
    protected static ContentReference _wrap(Object srcRef) {
101 -
        if (srcRef instanceof ContentReference) {
102 -
            return (ContentReference) srcRef;
103 -
        }
104 -
        return ContentReference.construct(false, srcRef);
105 -
    }
106 -
107 80
    /*
108 81
    /**********************************************************************
109 82
    /* Simple accessors
@@ -115,34 +88,15 @@
Loading
115 88
     * read from. Returned reference is never {@code null} but may not contain
116 89
     * useful information.
117 90
     *<p>
118 -
     * NOTE: not getter, on purpose, to avoid inlusion if serialized using
91 +
     * NOTE: not getter, on purpose, to avoid inclusion if serialized using
119 92
     * default Jackson serializer.
120 93
     *
121 94
     * @return Object with information about input source.
122 -
     *
123 -
     * @since 2.13 (to replace {@code getSourceRef})
124 95
     */
125 96
    public ContentReference contentReference() {
126 97
        return _contentReference;
127 98
    }
128 99
129 -
    /**
130 -
     * Reference to the original resource being read, if one available.
131 -
     * For example, when a parser has been constructed by passing
132 -
     * a {@link java.io.File} instance, this method would return
133 -
     * that File. Will return null if no such reference is available,
134 -
     * for example when {@link java.io.InputStream} was used to
135 -
     * construct the parser instance.
136 -
     *
137 -
     * @return Source reference this location was constructed with, if any; {@code null} if none
138 -
     *
139 -
     * @deprecated Since 2.13 Use {@link #contentReference} instead
140 -
     */
141 -
    @Deprecated
142 -
    public Object getSourceRef() {
143 -
        return _contentReference.getRawContent();
144 -
    }
145 -
146 100
    /**
147 101
     * Access for getting line number of this location, if available.
148 102
     * Note that line number is typically not available for binary formats.
@@ -173,17 +127,15 @@
Loading
173 127
174 128
    /**
175 129
     * Accessor for getting a textual description of source reference
176 -
     * (Object returned by {@link #getSourceRef()}), as included in
130 +
     * (Object returned by {@link #contentReference()}), as included in
177 131
     * description returned by {@link #toString()}.
178 132
     *<p>
179 133
     * Note: implementation will simply call
180 134
     * {@link ContentReference#buildSourceDescription()})
181 135
     *<p>
182 136
     * NOTE: not added as a "getter" to prevent it from getting serialized.
183 137
     *
184 -
     * @return Description of the source reference (see {@link #getSourceRef()}
185 -
     *
186 -
     * @since 2.9
138 +
     * @return Description of the source reference (see {@link #contentReference()}
187 139
     */
188 140
    public String sourceDescription() {
189 141
        // 04-Apr-2021, tatu: Construct lazily but retain
@@ -199,8 +151,6 @@
Loading
199 151
     *
200 152
     * @return Description of available relevant location offsets; combination of
201 153
     *    line number and column position or byte offset
202 -
     *
203 -
     * @since 2.13
204 154
     */
205 155
    public String offsetDescription() {
206 156
        return appendOffsetDescription(new StringBuilder(40)).toString();
@@ -228,24 +178,15 @@
Loading
228 178
                sb.append("UNKNOWN");
229 179
            }
230 180
        } else {
231 -
            // 04-Apr-2021, tatu: Ideally byte formats would not need line/column
232 -
            //    info, but for backwards-compatibility purposes (Jackson 2.x),
233 -
            //    will leave logic here
234 -
            if (_lineNr > 0) { // yes, require 1-based in case of allegedly binary content
235 -
                sb.append("line: ").append(_lineNr);
236 -
                if (_columnNr > 0) {
237 -
                    sb.append(", column: ");
238 -
                    sb.append(_columnNr);
239 -
                }
181 +
            // 04-Apr-2021, tatu: Jackson 2.x had compatibility checks here; 3.x
182 +
            //    assumes binary content always implies byte offsets
183 +
            sb.append("byte offset: #");
184 +
            // For binary formats, total bytes should be the canonical offset
185 +
            // for token/current location
186 +
            if (_totalBytes >= 0) {
187 +
                sb.append(_totalBytes);
240 188
            } else {
241 -
                sb.append("byte offset: #");
242 -
                // For binary formats, total bytes should be the canonical offset
243 -
                // for token/current location
244 -
                if (_totalBytes >= 0) {
245 -
                    sb.append(_totalBytes);
246 -
                } else {
247 -
                    sb.append("UNKNOWN");
248 -
                }
189 +
                sb.append("UNKNOWN");
249 190
            }
250 191
        }
251 192
        return sb;
@@ -292,6 +233,9 @@
Loading
292 233
    @Override
293 234
    public String toString()
294 235
    {
236 +
        if (this == NA) {
237 +
            return NO_LOCATION_DESC;
238 +
        }
295 239
        final String srcDesc = sourceDescription();
296 240
        StringBuilder sb = new StringBuilder(40 + srcDesc.length())
297 241
                .append("[Source: ")
@@ -301,4 +245,16 @@
Loading
301 245
                .append(']')
302 246
                .toString();
303 247
    }
248 +
249 +
    public StringBuilder toString(StringBuilder sb)
250 +
    {
251 +
        if (this == NA) {
252 +
            return sb.append(NO_LOCATION_DESC);
253 +
        }
254 +
        sb.append("[Source: ")
255 +
                .append(sourceDescription())
256 +
                .append("; ");
257 +
        return appendOffsetDescription(sb)
258 +
                .append(']');
259 +
    }
304 260
}

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Learn more Showing 86 files with coverage changes found.

Changes in src/main/java/tools/jackson/core/json/async/NonBlockingByteBufferJsonParser.java
+3
Loading file...
Changes in src/main/java/tools/jackson/core/json/async/NonBlockingByteArrayJsonParser.java
+1
+2
Loading file...
Changes in src/main/java/tools/jackson/core/json/JsonReadContext.java
-3
+2
Loading file...
Changes in src/main/java/tools/jackson/core/json/WriterBasedJsonGenerator.java
+19
+5
+51
Loading file...
Changes in src/main/java/tools/jackson/core/JsonLocation.java
-2
+1
+1
Loading file...
Changes in src/main/java/tools/jackson/core/json/UTF8StreamJsonParser.java
+73
+17
+84
Loading file...
Changes in src/main/java/tools/jackson/core/io/NumberInput.java
-5
+3
Loading file...
Changes in src/main/java/tools/jackson/core/Version.java
-1
+1
Loading file...
Changes in src/main/java/tools/jackson/core/io/MergedStream.java
-1
+1
Loading file...
Changes in src/main/java/tools/jackson/core/filter/FilteringParserDelegate.java
-19
-1
-5
Loading file...
Changes in src/main/java/tools/jackson/core/json/UTF8DataInputJsonParser.java
-9
-3
+15
Loading file...
Changes in src/main/java/tools/jackson/core/json/ReaderBasedJsonParser.java
-8
-2
+9
Loading file...
Changes in src/main/java/tools/jackson/core/json/UTF8JsonGenerator.java
-1
+13
+14
Loading file...
Changes in src/main/java/tools/jackson/core/io/UTF32Reader.java
+1
+1
Loading file...
Changes in src/main/java/tools/jackson/core/base/ParserBase.java
-2
+1
Loading file...
Changes in src/main/java/tools/jackson/core/json/async/NonBlockingJsonParserBase.java
-5
-2
+1
Loading file...
Changes in src/main/java/tools/jackson/core/json/async/NonBlockingUtf8JsonParserBase.java
+2
Loading file...
Changes in src/main/java/tools/jackson/core/io/NumberOutput.java
-11
Loading file...
Changes in src/main/java/tools/jackson/core/io/schubfach/FloatToDecimal.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/util/BufferRecycler.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/OutputDecorator.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/sym/CharsToNameCanonicalizer.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/InputDecorator.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/BigIntegerParser.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/util/DefaultIndenter.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/util/MinimalPrettyPrinter.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/filter/TokenFilter.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/DataOutputAsStream.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/SerializedString.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/io/schubfach/DoubleToDecimal.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/util/JsonpCharacterEscapes.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/json/DupDetector.java
New
Loading file...
New file src/main/java/tools/jackson/core/json/JsonParserBase.java
New
Loading file...
New file src/main/java/tools/jackson/core/JsonParser.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/Separators.java
New
Loading file...
New file src/main/java/tools/jackson/core/json/JsonGeneratorBase.java
New
Loading file...
New file src/main/java/tools/jackson/core/ObjectWriteContext.java
New
Loading file...
New file src/main/java/tools/jackson/core/exc/WrappedIOException.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/JsonParserDelegate.java
New
Loading file...
New file src/main/java/tools/jackson/core/TokenStreamFactory.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/SimpleStreamWriteContext.java
New
Loading file...
New file src/main/java/tools/jackson/core/base/DecorableTSFactory.java
New
Loading file...
New file src/main/java/tools/jackson/core/JacksonException.java
New
Loading file...
New file src/main/java/tools/jackson/core/JsonGenerator.java
New
Loading file...
New file src/main/java/tools/jackson/core/sym/BinaryNameMatcher.java
New
Loading file...
New file src/main/java/tools/jackson/core/base/TextualTSFactory.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/SimpleStreamReadContext.java
New
Loading file...
New file src/main/java/tools/jackson/core/exc/UnexpectedEndOfInputException.java
New
Loading file...
New file src/main/java/tools/jackson/core/sym/HashedMatcherBase.java
New
Loading file...
New file src/main/java/tools/jackson/core/TSFBuilder.java
New
Loading file...
New file src/main/java/tools/jackson/core/exc/StreamReadException.java
New
Loading file...
New file src/main/java/tools/jackson/core/base/BinaryTSFactory.java
New
Loading file...
New file src/main/java/tools/jackson/core/sym/PropertyNameMatcher.java
New
Loading file...
New file src/main/java/tools/jackson/core/ObjectReadContext.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/Named.java
New
Loading file...
New file src/main/java/tools/jackson/core/sym/SimpleNameMatcher.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/JsonGeneratorDelegate.java
New
Loading file...
New file src/main/java/tools/jackson/core/util/Snapshottable.java
New
Loading file...
New file src/main/java/tools/jackson/core/base/GeneratorBase.java
New
Loading file...
New file src/main/java/tools/jackson/core/exc/StreamWriteException.java
New
Loading file...
New file src/main/java/tools/jackson/core/json/JsonFactory.java
New
Loading file...
New file src/main/java/tools/jackson/core/base/ParserMinimalBase.java
New
Loading file...
Changes in src/main/java/tools/jackson/core/util/DefaultPrettyPrinter.java
+2
Loading file...
Changes in src/main/java/tools/jackson/core/filter/TokenFilterContext.java
+2
Loading file...
Changes in src/main/java/tools/jackson/core/sym/ByteQuadsCanonicalizer.java
-1
-2
+3
Loading file...
Changes in src/main/java/tools/jackson/core/io/BigDecimalParser.java
-1
Loading file...
Changes in src/main/java/tools/jackson/core/json/JsonWriteContext.java
-23
-4
+1
Loading file...
Changes in src/main/java/tools/jackson/core/util/TextBuffer.java
-6
+2
Loading file...
Changes in src/main/java/tools/jackson/core/io/ContentReference.java
-1
-1
+2
Loading file...
Changes in src/main/java/tools/jackson/core/filter/FilteringGeneratorDelegate.java
-4
-5
-13
Loading file...
Changes in src/main/java/tools/jackson/core/io/CharTypes.java
-1
-1
-2
Loading file...
Changes in src/main/java/tools/jackson/core/Base64Variant.java
-4
-2
+6
Loading file...
Changes in src/main/java/tools/jackson/core/util/JsonParserSequence.java
+5
+1
Loading file...
Changes in src/main/java/tools/jackson/core/StreamReadConstraints.java
-1
+1
Loading file...
Changes in src/main/java/tools/jackson/core/util/VersionUtil.java
-12
-1
-4
Loading file...
Changes in src/main/java/tools/jackson/core/io/JsonStringEncoder.java
-58
-9
-43
Loading file...
Changes in src/main/java/tools/jackson/core/io/IOContext.java
-1
-7
Loading file...
Changes in src/main/java/tools/jackson/core/util/ByteArrayBuilder.java
-1
-10
+10
Loading file...
Changes in src/main/java/tools/jackson/core/json/JsonFactoryBuilder.java
-1
-5
+5
Loading file...
Changes in src/main/java/tools/jackson/core/json/ByteSourceJsonBootstrapper.java
-11
-15
-28
Loading file...
Changes in src/main/java/tools/jackson/core/util/BufferRecyclers.java
-6
Loading file...
Changes in src/main/java/tools/jackson/core/json/JsonReadFeature.java
-7
+4
+1
Loading file...
Changes in src/main/java/tools/jackson/core/StreamWriteFeature.java
-6
+6
Loading file...
Changes in src/main/java/tools/jackson/core/StreamReadFeature.java
-6
+6
Loading file...
Changes in src/main/java/tools/jackson/core/type/ResolvedType.java
-1
Loading file...
Changes in src/main/java/tools/jackson/core/json/JsonWriteFeature.java
-8
+6
Loading file...

251 Commits

Hiding 1 contexual commits
+1
-1
-1
-1
+2
Hiding 1 contexual commits
+1
+2
-1
+24
+16
+3
+5
-1
+1
Hiding 3 contexual commits
+38
+5
+6
+27
-1
-3
+3
-1
+3
-1
+4
Hiding 1 contexual commits
+3
-3
+4
+8
-3
-1
Hiding 1 contexual commits
+9
+10
+1
-2
Hiding 2 contexual commits
-2
+2
Hiding 1 contexual commits
-3
+3
Hiding 3 contexual commits
+4
-1
-3
+6
+4
+2
Hiding 1 contexual commits
+3
+2
-5
-9
+3
-1
-11
+1
-1
Hiding 1 contexual commits
+5
-5
+2
+1
+1
+2
-1
+3
+1
+2
-1
+3
+11
-8
-2
+1
+1
Hiding 1 contexual commits
+1
-5
-3
+9
+4
-3
-1
-1
-1
+1
+1
Hiding 1 contexual commits
+1
-1
-5
+3
+2
Hiding 1 contexual commits
+7
+5
-3
+5
-1
+2
+1
-4
+1
+1
Hiding 1 contexual commits
+1 Files
+34
+10
+5
+19
-20
-9
-2
-9
+14
-1
+15
Hiding 2 contexual commits
-1
+2
-1
-22 Files
-1735
-855
-94
-786