IP Library Granted Patent US 10,963,244
Granted Patent B2
US 10,963,244 · App. 16/229,900 · Granted Mar 30, 2021

Commit reversion detection

Inventor: Man Yue Mo (Oxford, GB)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F8/77G06F8/71G06F8/75
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 10,963,244
App. No.
16/229,900
Granted
Mar 30, 2021
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for discounting source code contributions occurring in reverted commits. One of the methods includes identifying, in a time-ordered sequence of commits, one or more matching sequences of additions and deletions of the files which have the same file path, comprising. A value for a contribution metric is computed for a responsible developer entity including discounting portions of the metric resulting from additions and deletions in any of the identified matching sequence of additions and deletions for the files having the same file path.

Claims (42)

1. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a request to compute a value of a contribution metric for modifications to a plurality of snapshots of a software project committed by a developer entity, wherein the developer entity comprises one or more source code developers;

identifying, from the plurality of snapshots, a time-ordered sequence of modifications to files having a same file path in the project, the modifications being attributed to the developer entity;

identifying, in the time-ordered sequence, one or more matching sequences of additions and deletions of the files which have the same file path, comprising:

identifying, for each matching sequence, a first sequence of operations followed by a second sequence of operations wherein the first sequence of operations comprises one or more additions no intervening deletions, and wherein the second sequence of operations comprises one or more deletions no intervening additions, and

ending the matching sequence at a first addition occurring after the second sequence or at a final modification in the time-ordered sequence of modifications; and

computing a value for a contribution metric, that excludes churn credit for the developer entity associated with saving and deleting a file to a same file path, the value being based on one or more file modification operations other than the one or more additions and one or more deletions and that at least excludes the one or more additions and one or more deletions from the computed value for the contribution metric in any of the identified matching sequence of additions and deletions for the files having the same file path.

2. The system of claim 1 , wherein the computing of the value further includes discounting portions of the contribution metric by disregarding portions of the contribution metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

3. The system of claim 1 , wherein the computing of the value further includes discounting portions of the contribution metric by scaling portions of the metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

4. The system of claim 3 , wherein a particular matching sequence of additions and deletions has one or more intervening modifications to a file having the file path, and

wherein computing the value for the contribution metric for the developer entity further comprises counting portions of the metric resulting from the intervening modifications to the file.

5. The system of claim 1 , wherein a particular matching sequence comprises one addition and multiple deletions, and wherein computing the value for the contribution metric further comprises discounting the addition and all of the multiple deletions.

6. The system of claim 1 , wherein a particular matching sequence comprises multiple additions and one deletion, and wherein computing the value for the contribution metric further comprises discounting all of the additions and the one deletion.

7. The system of claim 1 , wherein a particular matching sequence comprises a first number of additions and a different second number of deletions, and wherein computing the value for the contribution metric comprises further discounting all of the first number of additions and all of the second number of deletions.

8. The system of claim 1 , wherein the contribution metric includes churn credit associated with at least one of added lines of code, deleted lines of code, added violations, deleted violations, net lines of code added, or net new violations.

9. A computer-implemented method comprising:

receiving a request to compute a value of a contribution metric for modifications to a plurality of snapshots of a software project committed by a developer entity, wherein the developer entity comprises one or more source code developers;

identifying, from the plurality of snapshots, a time-ordered sequence of modifications to files having a same file path in the project, the modifications being attributed to the developer entity;

identifying, in the time-ordered sequence, one or more matching sequences of additions and deletions of the files which have the same file path, comprising:

identifying, for each matching sequence, a first sequence of operations followed by a second sequence of operations wherein the first sequence of operations comprises one or more additions no intervening deletions, and wherein the second sequence of operations comprises one or more deletions no intervening additions, the one or more additions comprising new file save operations and the one or more deletions comprising file delete operations; and

ending the matching sequence at a first addition occurring after the second sequence or at a final modification in the time-ordered sequence of modifications; and

computing a value for a contribution metric, that excludes churn credit for the developer entity associated with saving and deleting a file to a same file path, including discounting portions of the metric resulting from additions and deletions in any of the identified matching sequence of additions and deletions for the files having the same file path, the value being computed by at least including a valuation of an intervening modification in the time-ordered sequence of modifications comprising a file change operation other than a new file addition or a file deletion.

10. The method of claim 9 , wherein the computing of the value further includes discounting portions of the contribution metric by disregarding portions of the contribution metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

11. The method of claim 9 , wherein the computing of the value further includes discounting portions of the contribution metric by scaling portions of the metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

12. The method of claim 11 , wherein a particular matching sequence of additions and deletions has one or more intervening modifications to a file having the file path, and

wherein computing the value for the contribution metric for the developer entity further comprises counting portions of the metric resulting from the intervening modifications to the file.

13. The method of claim 9 , wherein a particular matching sequence comprises one addition and multiple deletions, and wherein computing the value for the contribution metric further comprises discounting the addition and all of the multiple deletions.

14. The method of claim 9 , wherein a particular matching sequence comprises multiple additions and one deletion, and wherein computing the value for the contribution metric further comprises discounting all of the additions and the one deletion.

15. The method of claim 9 , wherein a particular matching sequence comprises a first number of additions and a different second number of deletions, and wherein computing the value for the contribution metric further comprises discounting all of the first number of additions and all of the second number of deletions.

16. The method of claim 9 , wherein the contribution metric includes churn credit associated with at least one of added lines of code, deleted lines of code, added violations, deleted violations, net lines of code added, or net new violations.

17. A computer program product, encoded on one or more hardware storage device, comprising instructions that are executable by one or more computers to cause the one or more computers to perform operations comprising:

receiving a request to compute a value of a contribution metric for modifications to a plurality of snapshots of a software project committed by a developer entity, wherein the developer entity comprises one or more source code developers;

identifying, from the plurality of snapshots, a time-ordered sequence of modifications to files having a same file path in the project, the modifications being attributed to the developer entity;

identifying, in the time-ordered sequence, one or more matching sequences of additions and deletions of the files which have the same file path, the additions comprising new file save operations and the deletions comprising corresponding file deletion operations, the identifying comprising:

identifying, for each matching sequence, a first sequence of operations followed by a second sequence of operations wherein the first sequence of operations comprises one or more additions no intervening deletions, and wherein the second sequence of operations comprises one or more deletions no intervening additions, and

ending the matching sequence at a first addition occurring after the second sequence or at a final modification in the time-ordered sequence of modifications; and

computing a value for a contribution metric, that excludes churn credit for the developer entity associated with saving and deleting a file to a same file path, including discounting portions of the metric resulting from additions and deletions in any of the identified matching sequence of additions and deletions for the files having the same file path.

18. The computer program product of claim 17 , wherein the computing of the value further includes discounting portions of the contribution metric by scaling portions of the metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

19. The computer program product of claim 17 , wherein the computing of the value further includes discounting portions of the contribution metric by scaling portions of the metric resulting from additions and deletions in any of the identified matching sequences of additions and deletions.

20. The computer program product of claim 19 , wherein a particular matching sequence of additions and deletions has one or more intervening modifications to a file having the file path, and

wherein computing the value for the contribution metric for the developer entity further comprises counting portions of the metric resulting from the intervening modifications to the file.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: GITHUB SOFTWARE UK LTD.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 051710/0252 →
CHANGE OF NAME Recorded Dec 11, 2019
From: SEMMLE LTD.
To: GITHUB SOFTWARE UK LTD.
Reel/Frame 052027/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2019
From: MO, MAN YUE
To: SEMMLE LIMITED
Reel/Frame 048650/0635 →
Continuity (2)
Provisional Application 62611804 · Dec 29, 2017
Related Publication 20190205127A1 · Jul 4, 2019