List of commits:
Subject Hash Author Date (UTC)
Added git hosting solution comparison page 8eca6c104373fd0dbcde54691edfd9e81a3a59be Catalin(ux) M. BOIE 2016-11-02 19:54:26
Be sure a key is present or use a default one (api) 842d587f948ff4ec9de56e2ebfd591d96b066a43 Catalin(ux) M. BOIE 2016-10-13 22:45:51
Small correction in wording agains CLA 70dc902b1c84e6ee416d7af2af8bef319dbb7504 Catalin(ux) M. BOIE 2016-10-11 15:50:07
Make it the default: word-wrap: break-word 1512f51eba93b6dd296246bf20432ec9223148d9 Catalin(ux) M. BOIE 2016-10-08 07:53:19
Footer: reverse last two columns d9fe4e8adf980996d5ca06387a0a2c49236e7ad4 Catalin(ux) M. BOIE 2016-10-08 07:51:55
Post configuration must include also web conf file 3583e8915579dc8e4c9a508bac7998a3e612e501 Catalin(ux) M. BOIE 2016-10-08 07:50:00
ssl_request_log -> rocketgit-ssl_request_log 639e5532748729cd8a6ac8e4cf082b24e15e2eeb Catalin(ux) M. BOIE 2016-10-08 07:47:45
Add 'SSLCipherSuite PROFILE=SYSTEM' to the SSL configuration 100d73878b3da1718cf97c58d016ed182c690a9b Catalin(ux) M. BOIE 2016-10-08 06:33:09
Instruct login user to create a repo if she/he has none. f6f2f438deadb1ec80d32acbc8947dcc849dca19 Catalin(ux) M. BOIE 2016-10-08 06:24:57
Small changes at vm docs 8106a47f5bf89990ba7f7dbb0f8feb319ba4d883 Catalin(ux) M. BOIE 2016-10-05 03:32:37
No need to login to find out the ip address 55a3abd3dda66d9d0dccdc0fc27dc3dc3e7c3fa1 Catalin(ux) M. BOIE 2016-10-05 03:25:47
Bump version to 0.62 61acc979d8c3bb629e03dc371bba1f604f300205 Catalin(ux) M. BOIE 2016-10-04 18:49:31
TODO updates cc78fa90ebdb7605013f2ba40b7d196d708d7415 Catalin(ux) M. BOIE 2016-10-04 18:49:04
Allow php-fpm to use lock files and to regenerate authorized_keys file 5970fcb677e3443ff96549413df105c9956f0abf Catalin(ux) M. BOIE 2016-10-04 18:48:35
Add ServerName and ServerAlias also for TLS virtual host 08bf46f86137767e4432222475a3ea31034a132a Catalin(ux) M. BOIE 2016-10-04 18:47:47
Bump version to 0.61 99a6ed768168adf45bab328c7405cd10a3e3a81d Catalin(ux) M. BOIE 2016-10-03 16:31:43
TODO updates cdc8de4255d6c343a9223bcf334228651e41ae6f Catalin(ux) M. BOIE 2016-10-03 16:31:22
Small adjustments to unit/functional tests db54e9be71a96b185713ccbc76dff2b462113755 Catalin(ux) M. BOIE 2016-10-03 16:13:46
Allow the use of multiple workers 0ba944fa4f60754b31ec29a676e72a9b870698cc Catalin(ux) M. BOIE 2016-10-03 16:13:15
Docker fixes 36653f824b0c2f7159a0cdbfa50e38aea714a0b5 Catalin(ux) M. BOIE 2016-10-03 16:12:48
Commit 8eca6c104373fd0dbcde54691edfd9e81a3a59be - Added git hosting solution comparison page
Author: Catalin(ux) M. BOIE
Author date (UTC): 2016-11-02 19:54
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2016-11-02 19:55
Parent(s): 842d587f948ff4ec9de56e2ebfd591d96b066a43
Signing key:
Tree: b7556166ac9f8941e7b5c42f9916afcacdda9a13
File Lines added Lines deleted
Compare.txt 0 37
Makefile.in 4 1
compare.csv 37 0
inc/dispatch/dispatch.php 8 3
misc/compare.php 81 0
root/themes/default/.gitignore 1 0
root/themes/default/index.html 2 1
root/themes/default/main.css 2 0
File Compare.txt deleted (index 6ef73b2..0000000)
1 RocketGit Gitlab GitHub Gitorious unfuddle.com gitolite Pagure.io
2
3 License Affero GPLv3+ OpenCore? Proprietary ?open ? ? ?
4 Needs CLA? No Yes! n/a ? ? ? ?
5
6 [Features]
7 Easy installation Yes No Yes? No! ? Yes No
8 SELinux friendly Yes ? ? ? ? ? ?
9 Distro friendly Yes No (see 2) No (see 2) No ? Yes No (see 2)
10 Bug tracker Yes Yes Yes No ? No ?
11 CLI commands (SSH) Yes ? ? ? ? ? ?
12 API Yes ? Yes ? ? ? ?
13 Anonymous push Yes ? No ? ? ? ?
14 Languages 1 ? ? ? ? ? ?
15 IPv6 Yes ? ? ? ? ? ?
16 Submodules ? ? ? ? ? ? ?
17 Usable with lynx ? ? ? ? ? ? ?
18 2fa Yes ? Yes (see 1) ? ? ? ?
19 Web Hooks Yes Yes Yes ? ? No ?
20 Web Hooks - client certs Yes No No ? ? n/a ?
21 Web Hooks - auth server (CA cert) Yes No No ? ? n/a ?
22
23 [Rights]
24 Path control Yes ? ? ? ? ? ?
25 Refs control Yes ? ? ? ? ? ?
26 IP control Yes ? ? ? ? ? ?
27
28
29 [Details]
30 Language PHP Ruby+Perl Ruby Ruby ? Perl Python
31 Cache Custom Redis ? ? ? No ?
32 Database Postgres MySQL ? ? ? ? ?
33 Webserver Apache Nginx ? ? ? ? ?
34
35
36 1) Seems is not really secure: if key is leaking, the attacker can push.
37 2) They have a distro inside a distro; so, upgrading distro does not update the software (pip, gem etc.).
File Makefile.in changed (mode: 100644) (index 9946568..49fb9ac)
1 1 .PHONY: all .PHONY: all
2 all: selinux
2 all: selinux compare
3 3
4 4 .PHONY: selinux .PHONY: selinux
5 5 selinux: selinux:
6 6 @echo "Building SELinux..." @echo "Building SELinux..."
7 7 cd selinux && ./build.sh cd selinux && ./build.sh
8 8
9 compare: compare.csv
10 php misc/compare.php compare.csv root/themes/default/compare.html
11
9 12 .PHONY: clean .PHONY: clean
10 13 clean: clean:
11 14 make -C tests clean make -C tests clean
File compare.csv added (mode: 100644) (index 0000000..3bafaac)
1 "Features / Product",RocketGit,Gitlab CE,GitHub,Gitorious,unfuddle.com,gitolite,Pagure.io
2 [Legal],,,,,,,
3 License,Affero GPLv3+,OpenCore?,Proprietary,?open,?,?,?
4 Developers keep copyright (see 1),Yes,No,n/a,?,?,?,?
5 ,,,,,,,
6 [Features],,,,,,,
7 Easy installation,Yes,No,Yes?,No!,?,Yes,No
8 SELinux friendly,Yes,No,?,?,?,?,?
9 Distro friendly,Yes,No (see 2),No (see 2),No,?,Yes,No (see 2)
10 Bug tracker,Yes,Yes,Yes,No,?,No,?
11 CLI commands (SSH),Yes,?,?,?,?,?,?
12 API,Yes,Yes,Yes,?,?,?,?
13 Anonymous push,Yes,No,No,?,?,?,?
14 Languages available,1,?,?,?,?,?,?
15 IPv6,Yes,?,?,?,?,?,?
16 Submodules,?,?,?,?,?,?,?
17 Usable with lynx,Yes,Yes,Yes,?,?,n/a,Yes
18 2fa,Yes,Yes,Yes (see 3),?,?,?,?
19 Web Hooks,Yes,Yes,Yes,?,?,No,?
20 Web Hooks - provide client certs,Yes,No,No,?,?,n/a,?
21 Web Hooks - authenticate server (CA cert),Yes,No,No,?,?,n/a,?
22 ,,,,,,,
23 [Rights],,,,,,,
24 Path control,Yes,?,?,?,?,?,?
25 Refs control,Yes,?,?,?,?,?,?
26 IP control,Yes,?,?,?,?,?,?
27 ,,,,,,,
28 [Details],,,,,,,
29 Language,PHP,Ruby+Perl,Ruby,Ruby,?,Perl,Python
30 Cache,Yes (custom),Yes (redis),?,?,?,n/a,?
31 Database,PostgreSQL,My/PostgresSQL,?,?,?,?,?
32 Webserver,Apache,apache/nginx,?,?,?,?,?
33 ,,,,,,,
34 [Notes],,,,,,,
35 "*","1) Signing a Contributor Licence Agreement (CLA) is very bad for free software.",,,,,,
36 "*","2) It has a not standard package manager; upgrading distro does not update the git software (pip, gem etc.). Or is a big archive including packages already found in the distribution.",,,,,,
37 "*","3) Seems is not really secure: if key is leaking, the attacker can push.",,,,,,
File inc/dispatch/dispatch.php changed (mode: 100644) (index 6a03b86..868d9e3)
... ... case 'doc':
111 111 $sec = array_shift($paras); $sec = array_shift($paras);
112 112 switch ($sec) { switch ($sec) {
113 113 case 'api': case 'api':
114 $body .= rg_template('doc/api.html', $rg,
115 TRUE /* xss */);
114 $body .= rg_template('doc/api.html', $rg, TRUE /*xss*/);
116 115 break; break;
116
117 117 case 'worker': case 'worker':
118 118 $body .= rg_template('doc/worker.html', $rg, $body .= rg_template('doc/worker.html', $rg,
119 TRUE /* xss */);
119 TRUE /*xss*/);
120 120 break; break;
121
121 122 case 'demo': case 'demo':
122 123 $body .= rg_demo($rg, $paras); $body .= rg_demo($rg, $paras);
123 124 break; break;
125
126 case 'compare':
127 $body .= rg_template('compare.html', $rg, TRUE /*xss*/);
128 break;
124 129 } }
125 130 break; break;
126 131
File misc/compare.php added (mode: 100644) (index 0000000..c9360a0)
1 <?php
2 // Build the compare.html from compare.csv
3 // compare.csv is easy edited with LibreOffice
4 // compare.html gets included in the website
5
6 $INC = dirname(__FILE__) . '/../inc';
7 require_once($INC . '/util.inc.php');
8
9 $h = fopen($_SERVER['argv'][1], 'r');
10 if (!$h)
11 die('Cannot open incput file!' . "\n");
12
13 $out = fopen($_SERVER['argv'][2], 'w');
14 if (!$out)
15 die('Cannot open out file!' . "\n");
16
17 fwrite($out, '<div class="main_title">Git hosting solutions comparison</div>' . "\n");
18 fwrite($out, '<table class="compare">' . "\n");
19
20 $lineno = 1;
21 while (($line = fgetcsv($h, 4000, ',')) !== FALSE) {
22 if ($lineno == 1) {
23 // First line
24 $td = 'th';
25 $rows = count($line);
26 } else {
27 $td = 'td';
28 }
29
30 // Insert an empty line
31 if (empty($line[0])) {
32 fwrite($out, '<tr><' . $td . ' colspan="'
33 . $rows . '">&nbsp;</' . $td . '></tr>' . "\n");
34 continue;
35 }
36
37 if (empty($line[1])) {
38 // We have a chapter
39 $title = str_replace('[', '', $line[0]);
40 $title = str_replace(']', '', $title);
41 fwrite($out,
42 '<tr><' . $td . ' colspan="' . $rows . '">'
43 . '<b>' . rg_xss_safe($title) . '</b>'
44 . '</' . $td . '></tr>' . "\n");
45 $lineno++;
46 continue;
47 }
48
49 // Notes
50 if (strcmp($line[0], '*') == 0) {
51 fwrite($out,
52 '<tr><' . $td . ' colspan="' . $rows . '">'
53 . rg_xss_safe($line[1])
54 . '</' . $td . '></tr>' . "\n");
55 continue;
56 }
57
58 fwrite($out, '<tr>');
59 foreach ($line as $i => $f) {
60 if ($i == 0)
61 $color = '';
62 else if (stristr($f, 'no'))
63 $color = ' bgcolor="#f00"';
64 else if (stristr($f, 'yes'))
65 $color = ' bgcolor="#0f0"';
66 else
67 $color = '';
68
69 fwrite($out,
70 '<' . $td . $color . '>'
71 . rg_xss_safe($f)
72 . '</' . $td . '>');
73 }
74 fwrite($out, '</tr>' . "\n");
75 $lineno++;
76 }
77 fwrite($out, '</table>' . "\n");
78 fclose($out);
79 fclose($h);
80
81 ?>
File root/themes/default/.gitignore added (mode: 100644) (index 0000000..ff53649)
1 compare.html
File root/themes/default/index.html changed (mode: 100644) (index 3c0bbb2..65d058f)
57 57
58 58 <div class="footer_info"> <div class="footer_info">
59 59 <a href="/op/doc/demo">Tutorials</a><br /> <a href="/op/doc/demo">Tutorials</a><br />
60 <a href="/op/doc/api">API</a>
60 <a href="/op/doc/api">API</a><br />
61 <a href="/op/doc/compare">Compare</a>
61 62 </div> </div>
62 63
63 64 <div class="footer_info"> <div class="footer_info">
File root/themes/default/main.css changed (mode: 100644) (index cddd368..167fe1e)
... ... legend { padding: 0px 2pt; }
599 599 .nav span { .nav span {
600 600 padding: 4px; padding: 4px;
601 601 } }
602
603 .compare { }
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rocketgit

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main