IP Library › Granted Patent US 12,578,960
Granted Patent B2
US 12,578,960 · App. 18/500,907 · Granted Mar 17, 2026

Distinguishing pattern differences from non-pattern differences

Inventors: David Ellis Pugh (Bellevue, WA); Mark Alistair Wilson-Thomas (Mercer Island, WA); Vu Minh Le (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/71G06F40/197
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,578,960
App. No.
18/500,907
Granted
Mar 17, 2026
Kind
B2
Abstract

Distinguishing pattern differences from non-pattern differences. A set of differences is identified. The set comprises a plurality of differences between first and second versions of a document. A pattern is identified. The pattern explains a transformation from a first string in the first version of the document to a second string in the second version of the document. A subset of differences are identified. The subset comprises a plurality of differences, from among the set, which match the pattern. While presenting a user interface that visually highlights differences between the first and second versions of the document, a first visual treatment is applied to a first difference, based on the first difference being included in the subset. A second visual treatment is also applied to a second difference, based on the second difference being excluded from the subset. The second visual treatment is different than the first visual treatment.

Claims (61)

1 . A computer system for distinguishing pattern differences between different versions of a document from non-pattern-differences, comprising:

a processor; and

a computer storage media that stores computer-executable instructions that are executable by the processor to cause the computer system to at least:

identify a first version of the document and a second version of the document;

identify a set of differences, the set of differences comprising a plurality of differences between the first version of the document and the second version of the document;

identify a pattern explaining a transformation from a first string in the first version of the document to a second string in the second version of the document;

identify a subset of differences, the subset of differences comprising a plurality of differences, from among the set of differences, which match the pattern; and

while presenting a user interface that visually highlights differences between the first version of the document and the second version of the document,

based at least on a first difference of the set of differences being included in the subset of differences, apply a first visual treatment to the first difference;

based at least on a second difference of the set of differences being excluded from the subset of differences, apply a second visual treatment to the second difference, the second visual treatment being different than the first visual treatment;

receive a user input accepting the first difference; and

based on the user input, generate a rule for the pattern, the rule causing all differences in the subset of differences to be hidden while presenting the user interface.

2 . The computer system of claim 1 , wherein the pattern comprises at least one of a substitution or a search pattern.

3 . The computer system of claim 1 , wherein the pattern is identified based on at least one of:

receiving a user input identifying the first string and the second string;

an automated pattern analysis between the first version of the document and the second version of the document; or

reading one or more patterns from a log.

4 . The computer system of claim 3 , wherein the pattern is identified based on the log, and wherein the log is included in a change proposal.

5 . The computer system of claim 3 , wherein the pattern is identified based on the log, and wherein the log is generated by a language service of an integrated development environment based on one or more code refactoring changes.

6 . The computer system of claim 1 , wherein the first visual treatment is visually deemphasized compared to the second visual treatment.

7 . The computer system of claim 1 , wherein:

the first visual treatment is one or more of a non-highlight or a flag; and

the second visual treatment is a highlight.

8 . The computer system of claim 1 , wherein the computer-executable instructions also include instructions that are executable by the processor to cause the computer system to:

identify a pairing of identical strings, between the first version of the document and the second version of the document, which partially match the pattern; and

while presenting the user interface, apply a third visual treatment to at least one of the identical strings, the third visual treatment being different from the first visual treatment and the second visual treatment.

9 . The computer system of claim 1 , wherein the computer-executable instructions also include instructions that are executable by the processor to cause the computer system to present a selectable user interface control that, when selected, initiates an approval of all differences in the subset of differences.

10 . The computer system of claim 1 , wherein the computer-executable instructions also include instructions that are executable by the processor to cause the computer system to associate a comment with the subset of differences.

11 . The computer system of claim 1 , wherein the computer-executable instructions also include instructions that are executable by the processor to cause the computer system to store the pattern to a log.

12 . The computer system of claim 1 , wherein the computer-executable instructions also include instructions that are executable by the processor to cause the computer system to present a user interface element that includes one or more rules that are each associated with a corresponding pattern, presence of each rule causing the user interface to apply the first visual treatment to one or more differences matching the corresponding pattern, and wherein the user interface element enables receipt of a user input to remove each rule.

13 . A method for distinguishing pattern differences between different versions of a document from non-pattern-differences, the method comprising:

identifying a first version of the document and a second version of the document;

identifying a set of differences, the set of differences comprising a plurality of differences between the first version of the document and the second version of the document;

identifying a pattern explaining a transformation from a first string in the first version of the document to a second string in the second version of the document;

identifying a subset of differences, the subset of differences comprising a plurality of differences, from among the set of differences, which match the pattern; and

while presenting a user interface that visually highlights differences between the first version of the document and the second version of the document,

based at least on a first difference of the set of differences being included in the subset of differences, applying a first visual treatment to the first difference;

based at least on a second difference of the set of differences being excluded from the subset of differences, applying a second visual treatment to the second difference, the second visual treatment being different than the first visual treatment; and

presenting a user interface element that includes one or more rules that are each associated with a corresponding pattern, presence of each rule causing the user interface to apply the first visual treatment to one or more differences matching the corresponding pattern, the user interface element enabling receipt of a user input to remove each rule.

14 . The method of claim 13 , wherein the pattern comprises at least one of a substitution or a search pattern.

15 . The method of claim 13 , wherein the pattern is identified based on at least one of:

receiving a user input identifying the first string and the second string;

an automated pattern analysis between the first version of the document and the second version of the document; or

reading one or more patterns from a log.

16 . The method of claim 15 , wherein the pattern is identified based on the log, and wherein the log is included in a change proposal.

17 . The method of claim 13 , wherein the first visual treatment is visually deemphasized compared to the second visual treatment.

18 . The method of claim 13 , wherein the method further comprises:

identifying a pairing of identical strings, between the first version of the document and the second version of the document, which partially match the pattern; and

while presenting the user interface, applying a third visual treatment to at least one of the identical strings, the third visual treatment being different from the first visual treatment and the second visual treatment.

19 . The method of claim 13 , wherein the method further comprises:

receiving a user input accepting the first difference; and

based on the user input, generating a rule for the pattern, the rule causing all differences in the subset of differences to be hidden while presenting the user interface.

20 . A computer program product comprising a computer storage media that stores computer-executable instructions that are executable by a processor to cause a computer system to distinguish pattern differences between different versions of a document from non-pattern-differences, the computer-executable instructions including instructions that are executable by the processor to cause the computer system to at least:

identify a first version of the document and a second version of the document;

identify a set of differences, the set of differences comprising a plurality of differences between the first version of the document and the second version of the document;

identify a pattern explaining a transformation from a first string in the first version of the document to a second string in the second version of the document;

identify a subset of differences, the subset of differences comprising a plurality of differences, from among the set of differences, which match the pattern; and

while presenting a user interface that visually highlights differences between the first version of the document and the second version of the document,

based at least on a first difference of the set of differences being included in the subset of differences, apply a first visual treatment to the first difference;

based at least on a second difference of the set of differences being excluded from the subset of differences, apply a second visual treatment to the second difference, the second visual treatment being different than the first visual treatment; and

present a user interface element that includes one or more rules that are each associated with a corresponding pattern, presence of each rule causing the user interface to apply the first visual treatment to one or more differences matching the corresponding pattern, the user interface element enabling receipt of a user input to remove each rule.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: PUGH, DAVID ELLIS; WILSON-THOMAS, MARK ALISTAIR; LE, VU MINH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065440/0943 →
Continuity (2)
Continuation 17568597 · Jan 4, 2022
Related Publication 20240061677A1 · Feb 22, 2024
References Cited (5)
US 12079106B1 · Hu · 2024 [cited by examiner]
US 12147802B2 · Seery · 2024 [cited by examiner]
US 20060074942A1 · Shaburov · 2006 [cited by examiner]
US 20180107343A1 · Mills · 2018 [cited by examiner]
First Examination Report received for Indian Application No. 202417050255, mailed on Nov. 20, 2025, 6 pages. [cited by applicant]