IP Library Granted Patent US 9,280,331
Granted Patent B2
US 9,280,331 · App. 14/274,244 · Granted Mar 8, 2016

Hash-based change tracking for software make tools

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 9,280,331
App. No.
14/274,244
Granted
Mar 8, 2016
Kind
B2
Abstract

A request handler may receive a request for a make operation for generating executable code from a plurality of source files and associated dependences there between, the source files and associated dependences having been previously utilized to generate a previous version of the executable code. A hash comparator may then determine, for a selected source file, that a current hash value corresponding to current content of the selected source file is different from a previous hash value corresponding to previous content of the selected source file during the previous utilization, whereupon the hash comparator may proceed to initiate execution of the make operation using the current content of the selected source file, based on the difference between the current hash value and the previous hash value.

Claims (40)

1. A computer-implemented method for executing instructions stored on a computer readable storage medium, the method comprising:

receiving a request for a make operation for generating executable code from a plurality of source files and associated dependences there between, the source files and associated dependences having been previously utilized to generate a previous version of the executable code;

determining, for a selected source file, that a first timestamp associated with current content of the selected source file has changed since the previous utilization;

determining, for the selected source file and based on the change of the first timestamp, that a current hash value corresponding to the current content of the selected source file is different from a previous hash value corresponding to previous content of the selected source file during the previous utilization;

determining, for a second selected source file, that a second timestamp associated with current content of the second selected source file has not changed since the previous utilization; and

initiating execution of the make operation using the current content of the selected source file, based on the difference between the current hash value and the previous hash value, including excluding the second selected source file from re-processing thereof during the make operation, based on the second timestamp not having changed since the previous utilization.

2. The method of claim 1 , comprising:

generating the previous hash value in conjunction with creation or modification of the previous content of the selected source file; and

generating the current hash value in conjunction with a modification of the previous content of the selected source file to obtain the current content of the selected source file.

3. The method of claim 1 , comprising

storing, in a change repository and for the selected source file, a previous timestamp and the previous hash value, both assigned in conjunction with creation or modification of the previous content of the selected source file; and

storing, for the selected source file, the first timestamp and the current hash value, both assigned in conjunction with creation or modification of the current content of the selected source file.

4. The method of claim 1 , comprising generating concatenated hash values corresponding to at least two dependent source files of the plurality of source files, in conjunction with a creation or modification of at least one dependency between the at least two source files.

5. A system comprising:

a non-transitory computer-readable storage medium on which instructions are recorded; and

at least one processor configured to implement the instructions, the system including

a request handler configured to cause the at least one processor to receive a request for a make operation for generating executable code from a plurality of source files and associated dependences there between, the source files and associated dependences having been previously utilized to generate a previous version of the executable code; and

a hash comparator configured to cause the at least one processor to determine, for a selected source file, that a current hash value corresponding to current content of the selected source file is different from a previous hash value corresponding to previous content of the selected source file during the previous utilization, and further configured to cause the at least one processor to initiate execution of the make operation using the current content of the selected source file, based on the difference between the current hash value and the previous hash value,

wherein the hash comparator is further configured to determine that a first timestamp associated with the current content of the selected source file has changed since the previous utilization before selecting the selected source file for determining that the current hash value of the selected source file is different from the previous hash value of the selected source file, and

further wherein the hash comparator is configured to determine that a second selected source file is associated with a second timestamp that has not been updated since the previous utilization, and to thereafter exclude the second selected source file from re-processing thereof during the make operation.

6. The system of claim 5 , comprising a timestamp generator configured to cause the at least one processor to assign the first timestamp to the selected source file, in conjunction with a use thereof.

7. The system of claim 5 , comprising a hash value generator configured to cause the at least one processor to generate the previous hash value in conjunction with creation or modification of the previous content of the selected source file, and further configured to cause the at least one processor to generate the current hash value in conjunction with a modification of the previous content of the selected source file to obtain the current content of the selected source file.

8. The system of claim 5 , comprising a change repository configured to store, for the selected source file, a previous timestamp and the previous hash value, both assigned in conjunction with creation or modification of the previous content of the selected source file, and further configured to store, for the selected source file, the first timestamp and the current hash value, both assigned in conjunction with creation or modification of the current content of the selected source file.

9. The system of claim 5 , comprising a change repository configured to store the selected source file, along with remaining source files of the plurality of source files that are associated with changed hash values since the previous utilization, for re-processing thereof during the make operation.

10. The system of claim 5 , comprising a change repository configured to store the selected source file, along with source files that are dependent thereon, for re-processing thereof during the make operation.

11. The system of claim 5 , comprising a hash generator configured to cause the at least one processor to generate concatenated hash values corresponding to at least two dependent source files of the plurality of source files, in conjunction with a creation or modification of at least one dependency between the at least two source files.

12. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium and comprising instructions that, when executed by at least one computing device, are configured to cause the at least one computing device to:

receive a request for a make operation for generating executable code from a plurality of source files and associated dependences there between, the source files and associated dependences having been previously utilized to generate a previous version of the executable code;

determine, for a selected source file, that a first timestamp associated with current content of the selected source file has changed since the previous utilization;

determine, for the selected source file and based on the change of the first timestamp, that a current hash value corresponding to the current content of the selected source file is different from a previous hash value corresponding to previous content of the selected source file during the previous utilization;

determine, for a second selected source file, that a second timestamp associated with current content of the second selected source file has not changed since the previous utilization; and

initiate execution of the make operation using the current content of the selected source file, based on the difference between the current hash value and the previous hash value, including excluding the second selected source file from re-processing thereof during the make operation, based on the second timestamp not having changed since the previous utilization.

13. The computer program product of claim 12 , wherein the instructions, when executed, are further configured to:

generate the previous hash value in conjunction with creation or modification of the previous content of the selected source file; and

generate the current hash value in conjunction with a modification of the previous content of the selected source file to obtain the current content of the selected source file.

14. The computer program product of claim 12 , wherein the instructions, when executed, are further configured to:

store, in a change repository and for the selected source file, a previous timestamp and the previous hash value, both assigned in conjunction with creation or modification of the previous content of the selected source file; and

store, for the selected source file, the first timestamp and the current hash value, both assigned in conjunction with creation or modification of the current content of the selected source file.

15. The computer program product of claim 12 , wherein the instructions, when executed, are further configured to:

generate concatenated hash values corresponding to at least two dependent source files of the plurality of source files, in conjunction with a creation or modification of at least one dependency between the at least two source files.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2015
From: ARNOLD, GERALD; HEMPELMANN, HENRIK
To: SAP AG
Reel/Frame 036303/0041 →
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →