Skip to content

Manual Annotation of Code History (MACH) is a software tool to manually annotate different stages (e.g. commits in a version control system) of evolution of a software code repository. Report issues at https://gitlab.com/thelinuxmaniac/mach/

Notifications You must be signed in to change notification settings

thelinuxmaniac/mach

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Manual Annotation of Code History (MACH)

MACH is a software tool to manually annotate different stages (e.g. commits in a version control system) of evolution of a software code repository.

Manual Annotation of [GNU Coreutils](http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=summary) word count ([wc](http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/wc.c)) tool

Background and History

The MACH tool was created by Abhishek Dutta to manually annotate the different stages of evolution of the source code of word count (wc) tool in GNU Coreutils. Such manual annotations — it is hoped — will provide a glimpse into how a software evolves over time. The development of MACH started on 2023-Sep-23 with an initial project name of Analysis of Code Evolution (ACE).

Usage

The tool requires git repositories to be server over HTTP using the dumb protocol. For now, we use the apache web server to host a git repository over HTTP. In future, we will created a minimal web server mach-serve that will avoid the need to run a full web server.

sudo apt-get install apache2
cd /home/tlm/code/mach/repo
git clone --bare /home/tlm/pub/lion/code/gnu-coreutils/git-src/coreutils coreutils.git
cd coreutils.git/
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update

# make the git repository files accessible at http://localhost/coreutils.git/
cd /var/www/html/
sudo ln -s /home/tlm/code/mach/ mach

To run automatic tests for the MACH tool, open http://localhost/mach/src/mach-test.html link in a browser. Successful test run generates an output as shown below.

Test for Manual Annotation of Code History (MACH)
Use Ctrl + o to load a project, press F1 for help.
[22/06/2024, 08:06:41] TEST 0 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 1/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 2/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 3/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 4/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 5/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 6/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 7/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 8/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] TEST 9/9 : , 0 : PASS, 1 : PASS
[22/06/2024, 08:06:41] All 9 tests passed successfully

Docs

Contact

Contact Abhishek Dutta for any queries or feedback related to the MACH tool.

About

Manual Annotation of Code History (MACH) is a software tool to manually annotate different stages (e.g. commits in a version control system) of evolution of a software code repository. Report issues at https://gitlab.com/thelinuxmaniac/mach/

Resources

Stars

Watchers

Forks