This is the thirteenth progress report for TrackGit project. I did the following in last week:
Since, the planned work from the proposal is done, Stephan and I agreed on doing some UI improvements to the existing views. Stephan suggested me some improvements, which I did in last week. These are:
Added progress bar to Clone Window I added a progress bar to the clone window. This will give better information about the clone progress.
This is the twelveth progress report for TrackGit project. I did the following in last week:
Implemented Log Viewer I implemented a log viewer in TrackGit. It shows a window with the commits in the repository so far. Link to commit.
The following screenshot shows the log viewer:
I also added tests for the log command. Link to commit.
This is the eleventh progress report for TrackGit project. I did the following in last week:
Implemented Create Branch command I implemented Create Branch command. This command creates a branch at head of the repository. There is also an option to switch to the newly created branch. Link to commit.
The following screenshot shows Create Branch window:
Implemented Switch Branch command I implemented option to switch branch. The Switch Branch window gives user with a drop down list of branches in current repository.
This is the tenth progress report for TrackGit project. I did the following in last week.
Implemented Show conflicts Window Last week I implemented Pull command. While pulling changes, sometimes there might be conflicts while merging the changes. These conflicts are shown when pull command execution is finished. In addition to that, I implemented a “Show conflicts” option to see the current conflicting files in the repository. This option is only shown when there are conflicts in the repository.
This is the ninth progress report for TrackGit project. I did the following in last week.
Implemented Pull command I implemented the equivalent of git pull. The implementation was a little trickier as there was no direct API for pull in libgit2. The git pull command is combination of a fetch and then a merge. In merge there are three cases:
Repository up to date Fast forward Merge commit The merge commit can lead to conflicts.
This is the eighth progress report for TrackGit project. I did the following in last week.
Implemented Commit command I implemented the equivalent of git commit in TrackGit. The implementation was a little bit trickier because libgit2 used a different logic when the commit is first or non-first. The link to commit.
Below is a screenshot of Commit window.
Added test for commit command I also added the test case for commit command.
This is the seventh progress report for TrackGit project. I did the following in last week.
Merge Request on Haiku At the start of the project, I had made a merge request on Haiku regarding Dynamic Add on menu. There were few comments on it which I forgot to check. I addressed those comments. Link to the merge request.
Implemented Add files command I implemented the Add files command. This option adds the selected files to the git repository.
This is the sixth progress report for TrackGit project. I did the following in last week.
Addressed Stephen’s comments My mentor Stephen had put up few comments on my commits so far. I addressed them earlier this week. You can have a look at the comments thread here and here.
Made clone process threaded The initial implementation of clone was blocking the UI thread. I used the pthread library to make the clone processes threaded.
This is the fifth progress report for TrackGit project. I did the following in last week.
Status Test Added test for status command. Link to commit.
Status window Previously, the status was shown in a BAlert. This was not good if the status text was long. So, I implemented a Status window with scrollable text view. Link to Commit.
Implemented TrackGit Application The major change in the TrackGit till now is the implementation of TrackGit Application.
This is the fourth progress report for TrackGit project. I did the following in last week.
Status Command I implemented the status command. This will pop up a window showing status of the current repository. This menu item will be shown only when the current directory is in some repo path.
The following screenshot shows the Status Window:
Solved a bug in Status While implementing Status commmand, I ran into a bug which took some of my time.