[![Build Status](https://travis-ci.org/patrikx3/gitlist.svg?branch=master)](https://travis-ci.org/patrikx3/gitlist) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/patrikx3/gitlist/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/patrikx3/gitlist/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/patrikx3/gitlist/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/patrikx3/gitlist/?branch=master)
# 🤖 P3X Gitlist v2.8.0
This is an open-source project. Star this repository if you like it, or even donate! Thank you so much! :)
I run my own server with dynamic IP address so it may happen that the server can not be reachable for about max 15 minutes due to the dynamic DNS. The server may also be unreachable when I backup the SSD with Clonzilla (very rarely) or an electrical issue (but this should not happen again). When the server is down, please hang on for 15-30 minutes and the server will be back up.
All my domains (patrikx3.com and corifeus.com) could have errors since I am developing in my free time. However, it is usually stable.
### Node Version Requirement
### Built on Node
The ```async``` and ```await``` keywords are required.
This is Klaus Silveira's fork, with multiple themes (dark/light), sub-modules, uglify-es, webpack, toast, pure Bootstrap 3 and upgraded to PHP7.1 with all components.
### PHP > 7.1 only
# Release version/update info
Done, just put on your server, nothing to build:
### Web server
You might need to tune your web server, to only parse the `public/index.php` PHP script, so you can view your `php` files in `P3X GitList`.
#### PHP Memory
**By now, I am loading the diffs via `AJAX`. I render in the browser the diffs even deffered. For a huge commit `twig` rendered the `PHP` using over `512MB`, now it works with `128MB`. The browser does not hang anymore.**
##### This what it was before ...
It is possible, that some big commits are huge and for now, it loads everything. In `V3`, everything will be `lazy`, but looks like I had a huge commit and I had to set my `PHP.ini` had to change like:
max_execution_time = 240
max_input_time = 240
memory_limit = 1024m
I checked and the big commit was using 258 MBytes.
Though even the `browser` is almost `hanging`, take a long time to `render` the page.
## There is a changing break
Before, everything was in the `root` of the web server.
Which is not secure.
For now, you can create a folder eg. `/var/www/gitlist.me.com/` and make sure, that you server does not point to `/var/www/gitlist.me.com/`, but instead, point to `/var/www/gitlist.me.com/public`.
The `config.ini` file with `url_subdir` or later `clone_subdir` variable has been changed to the `git_clone_subdir` variable.
### Third 😀
I removed `Babel`, we are in 2018. If you want use an older `Browser` (like iPhone 5), you can probably install latest `Chrome` and it will work.
#### The last version with Babel
The following versions are not using `Babel`!!!! Yikes!
### Unreleased / in progress
* Allow to edit non binary files
* Upload binary files
* Add new files
* Delete files
* In submodules, if the "submodule" and "path" is not the same, it chokes (it should work the submodule name and path are not the same)
* submodule "path/name"
* path path/name
* Not working
* submodule "name"
* path path/name
[Change log](changelog.md) ...
# Old info
# Live demo
By now `composer` is not enough. We are using `webpack`, `babel`, `less`, `grunt` ...
For the build on your workstation (less, babel, Bootstrap themes, and webpack):
* ```NodeJs``` >= 10
* ```Grunt``` (npm install -g npm grunt-cli)
In order to run GitList on your server, you'll need:
* ```Apache``` with ```mod_rewrite``` enabled or ```nginx```
* ```PHP``` >= 7.1
## By hand
If you have Composer in your path, things get easier. But you know the drill.
If want to get the project dependencies, and build everything:
git clone https://github.com/patrikx3/gitlist.git
curl -s http://getcomposer.org/installer | php
php composer.phar install
# i use Node v10 and NPM v6
sudo npm install -g npm grunt-cli
# if you do not want to create a release
# just work on it
# now the js and css is built on the fly
# in the ./public folder
npm run watch
# if you have bash and want to create a full release
# and strip all unneeded files,
# optimize the packagist vendor folder
# you might need zip from linux
# the files will be in the ./build/release folder
# and the zip is in the ./build/release/p3x-gitlist-a.b.c.zip file
[Install](INSTALL.md) - here.
[**P3X-GITLIST**](https://pages.corifeus.com/gitlist) Build v2.8.0
[![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact)
## P3X Sponsors
[IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com)
[The Smartest IDE for MongoDB](https://www.nosqlbooster.com)