This week, I have made user interface changes, some code refactors, solved bugs, and expanded tests.
User Interface Changes
A darcs command may create(init, get), update(record, amend-record, push, pull, apply, unrecord, tag) or use patch index(changes, annotate). darcs will automatically create, update, or use patch index whenever applicable. To override this, use flag --no-patch-index.
Code Refactors
I had duplicated some darcs annotate functions, and made minor modifications so that they do not use witnesses. Ganesh and I had a discussion on how to modify my code, so that I can use the original functions instead. I have implemented the suggestions, and removed the duplicate code.
I have merged patch index annotate code into the original annotate. This removes code duplication between the two annotates. (changes was merged previously)
I have made other minor refactors, like removing compiler warnings, and unnecessary exports.
Bug-fixes
I have solved two bugs this week. The first is changes on directorates. I can now confirm that changes on directories works for all directories in darcs screened repository.
The second bug-fix is for the function that checks if patch index is up to date. It used to crash if patch index was not yet created. This used to indirectly crash the function that loads patch index.
Tests
I have written shell scripts that measure the time taken by pi annotate, changes and compare it with the existing annotate and changes. Find the result spreadsheets here: Changes Files, Changes Directories, Annotate Files.
For now, you can expect a speed up of 6.7x for changes on files, 3.5x for changes on directories, 8.1x for annotate on files on average.
I have written a test for patch index load when it does not exist, and updated the test on creating and updating patch index.
Next week, I will get suggestions on the necessary refactors for integrating the code with screened(mid-term goal), and making sure annotate on directories works properly.
User Interface Changes
A darcs command may create(init, get), update(record, amend-record, push, pull, apply, unrecord, tag) or use patch index(changes, annotate). darcs will automatically create, update, or use patch index whenever applicable. To override this, use flag --no-patch-index.
Code Refactors
I had duplicated some darcs annotate functions, and made minor modifications so that they do not use witnesses. Ganesh and I had a discussion on how to modify my code, so that I can use the original functions instead. I have implemented the suggestions, and removed the duplicate code.
I have merged patch index annotate code into the original annotate. This removes code duplication between the two annotates. (changes was merged previously)
I have made other minor refactors, like removing compiler warnings, and unnecessary exports.
Bug-fixes
I have solved two bugs this week. The first is changes on directorates. I can now confirm that changes on directories works for all directories in darcs screened repository.
The second bug-fix is for the function that checks if patch index is up to date. It used to crash if patch index was not yet created. This used to indirectly crash the function that loads patch index.
Tests
I have written shell scripts that measure the time taken by pi annotate, changes and compare it with the existing annotate and changes. Find the result spreadsheets here: Changes Files, Changes Directories, Annotate Files.
For now, you can expect a speed up of 6.7x for changes on files, 3.5x for changes on directories, 8.1x for annotate on files on average.
I have written a test for patch index load when it does not exist, and updated the test on creating and updating patch index.
Next week, I will get suggestions on the necessary refactors for integrating the code with screened(mid-term goal), and making sure annotate on directories works properly.
No comments:
Post a Comment