<commit_before>Git4P
=====

"Git4P" stands for "Git for PHP" and is a native PHP Git library that can access
a Git repository without using external help like the standard git commands.

Simple example
--------------

```php
$git = Git::init('/tmp/mytestrepo');

$readme = "GIT4P\n=====\n\nThis is a simple test repo for git4p.\n";

$blob = new GitBlob($git);
$blob->setData($readme)
     ->store();
```

This overly simplistic example creates a new bare repository and inside it, an
orphaned blob object. In other words an object that's not pointed to by any
tree object, etc.

Development stages
------------------

This library is being developed using the following rough phases or stages:

- Write support for bare repositories (no pack support)
- Read only support for bare repositories (no pack support)
- Read only support for bare repositories including pack support
- Write support for bare repositories including pack support

*Undecided since this would make it a non-server side library*

- Read support (i.e. did something change) for working dirs
- Write support for working dirs

Status of this library
----------------------

It can now:

- create a bare repo
- create git commit, blob and tree objects on disk
- create tags (simple and object) and branches
- read individual commit objects
<commit_msg>Add simple todo list to readme<commit_after>Git4P
=====

"Git4P" stands for "Git for PHP" and is a native PHP Git library that can access
a Git repository without using external help like the standard git commands.

Simple example
--------------

```php
$git = Git::init('/tmp/mytestrepo');

$readme = "GIT4P\n=====\n\nThis is a simple test repo for git4p.\n";

$blob = new GitBlob($git);
$blob->setData($readme)
     ->store();
```

This overly simplistic example creates a new bare repository and inside it, an
orphaned blob object. In other words an object that's not pointed to by any
tree object, etc.

Development stages
------------------

This library is being developed using the following rough phases or stages:

- Write support for bare repositories (no pack support)
- Read only support for bare repositories (no pack support)
- Read only support for bare repositories including pack support
- Write support for bare repositories including pack support

*Undecided since this would make it a non-server side library*

- Read support (i.e. did something change) for working dirs
- Write support for working dirs

Status of this library
----------------------

It can now:

- create a bare repo
- create git commit, blob and tree objects on disk
- create tags (simple and object) and branches
- read individual commit objects

Some TODOs
----------

- Add proper unit tests
- Improve examples in readme
- Add proper phpdoc blocks
- Add proper autoloading (PSR-4)
- Add support for logging? (PSR-3)
{'fraction_non_alphanumeric': 0.11173974540311174, 'fraction_numerical': 0.003536067892503536, 'mean_word_length': 3.3724884080370945, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4165453', 'n_tokens_mistral': 777, 'n_tokens_neox': 734, 'n_words': 390}