git_update/readme.md
2024-07-03 15:14:19 +02:00

67 lines
2.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Testing of differeng cloning methods
Our objective is to find the least-consuming method in terms of memory and bandwidth resources.
We are interested in cloning one specific state of the repository. We are not interested in its history or the possibility to change it from the server where it has been cloned. The first step is done by the script creation_repo.sh which creates an adequate repository to act as a local remote. The testing in itself is done by performance_tests.sh.
NB:The large file storage is not tested by this script because it relies on additional remote stockage and we are interested in reducing the overall stockage for environmental purposes.
## Creation of the test repository
The script creation_repo.sh creates a performance_testing repository.
NAME
creation_repo.sh
SYNOPSIS
creation_repo.sh [-h]
DESCRIPTION
It creates a remote directory in the current directory, then create a remote/performance_testing git repository. This git repository is filled with randomly generated binary.
OPTIONS
-h prints the help.
Here is a history of the commits:
### branch main
commit f665df376fa57880b5edfb85b156c7703601980e (tag: start)
sample0 1M created
commit a17812c13a69986c1103e0d06ff0a0b59a3a4a63
sample1 1M created
commit bd9d8e9421c3253abba47b9def480f1b2d595568
sample3 1M created
commit 0e599f3b47bf3200dc6e2734df0c6e655c0d8dde
sample4 5M created
commit effb3cab262e6e1e8242e524e1862b6f77d7ad38
sample4 5M deleted
### branch secondary
commit 643cdbbda81f4c4f26513b9d6ecca3d436e97040
sample0 1M created
commit b4bac1f2a2c1b4ab325751748b9496cccc65b082
sample1 1M created
commit e69695f08e79c160045b3319297597a9d8c9b513
sample2 500K created
Which gives us the latest state:
### branch main
sample0 1M
sample1 1M
sample3 1M
### branch secondary
sample0 1M
sample1 1M
sample2 500K
## Testing
The script performance_tests.sh measures memory and bandwidth usage for different git commands. It sources creation_repo.sh in order to have an adequate repository to test on. It also sources the script driglibash-base.
NAME
performance_tests.sh
SYNOPSIS
performance_tests.sh [-a] [-h] [-n number]
OPTIONS
-a excutes all the tests.
-n number executes test number
-h prints the help.
DESCRIPTION
This script is in writing. It allows you to measure memory and bandwidth usage. The first four test different cloning methods. Te following change the local remote by adding a 1M "sample5" file before testing fetching and merging commands.
TEST0: classic cloning
TEST1: --single-branch
TEST2: --depth=1 --no-single-branch
TEST3: --depth=1
TEST4: sparse-checking 1M sample0 only
_________________________________________
TEST5: classic fetching and merging
TEST6: