File README.vm deleted (index 59d8bb0..0000000) |
1 |
|
How to customize Fedora virtual machine image |
|
2 |
|
|
|
3 |
|
- Generate new SSL keys |
|
4 |
|
- Update the virtual machine to the latest version: "yum -y update". |
|
5 |
|
- Edit /etc/sysconfig/clock to set the timezone (needs a restart of some |
|
6 |
|
services or reboot). |
|
7 |
|
- Change root password: run 'passwd' (initial password is 'aaaa') |
|
8 |
|
|
|
9 |
|
- Allow this virtual machine to send mail (add it to the relay allow list). |
|
10 |
|
- You may want to set a static IP address instead of DHCP. |
|
11 |
|
- You may want to add it to the DNS server. |
|
12 |
|
- Add a RNG device inside virtual machine? |
|
13 |
|
- You may want to adjust logrotate times. |
|
14 |
|
- Customize /etc/rocketgit/config.php |
|
15 |
|
- |
|
16 |
|
|
|
17 |
|
It takes around 2 minutes for the first boot to setup needed things to run. |
|
File TODO changed (mode: 100644) (index e7d7c91..9498d65) |
1 |
1 |
== Where I stopped last time == |
== Where I stopped last time == |
|
2 |
|
[ ] Switch to startssl certificates. |
2 |
3 |
[ ] Add "Spread the word!" on website. |
[ ] Add "Spread the word!" on website. |
3 |
|
|
|
4 |
4 |
[ ] Run unit testing. |
[ ] Run unit testing. |
5 |
5 |
[ ] SPF? mail-ul ajunge in spam! |
[ ] SPF? mail-ul ajunge in spam! |
6 |
|
[ ] Upload kvm image to downloads.rocketgit.com. Sign it? sha256 it? |
|
7 |
|
[ ] Release virtual machine. |
|
8 |
|
[ ] https access before first launch? |
|
|
6 |
|
[ ] Rebuild virtual machine with the latest rocketgit version. |
9 |
7 |
[ ] |
[ ] |
10 |
8 |
|
|
11 |
9 |
== BEFORE NEXT RELEASE == |
== BEFORE NEXT RELEASE == |
|
10 |
|
[ ] On upgrade, we must restart the cache daemon? |
|
11 |
|
[ ] Real SSL certificates. |
|
12 |
|
[ ] Backup for rg2! |
|
13 |
|
[ ] Sign vm images. |
|
14 |
|
[ ] Run tidy on http_* tests to validate the HTML. |
|
15 |
|
[ ] Check if link to repos are created in /var/lib/rocketgit/by_name. |
|
16 |
|
I suspect they are not always created. |
12 |
17 |
[ ] Add uid to events so we can delete old events for tests or abusing users? |
[ ] Add uid to events so we can delete old events for tests or abusing users? |
13 |
18 |
[ ] Should we just set no password somehow for ssh access to be able to signal |
[ ] Should we just set no password somehow for ssh access to be able to signal |
14 |
19 |
the user that has no key uploaded? |
the user that has no key uploaded? |
File inc/git.inc.php changed (mode: 100644) (index 058ca02..54743d1) |
... |
... |
function rg_git_diff($a, $template_file) |
927 |
927 |
$f = rg_xss_safe($finfo['file']); |
$f = rg_xss_safe($finfo['file']); |
928 |
928 |
$ret .= "<a name=\"$f\"></a>\n"; |
$ret .= "<a name=\"$f\"></a>\n"; |
929 |
929 |
|
|
930 |
|
$ret .= "<table class=\"chunk\" width=\"100%\">\n"; |
|
|
930 |
|
$ret .= "<table class=\"chunk\">\n"; |
931 |
931 |
$ret .= "<tr style=\"border: 1px; background: #dddddd\"><td colspan=\"4\">"; |
$ret .= "<tr style=\"border: 1px; background: #dddddd\"><td colspan=\"4\">"; |
932 |
932 |
if (strstr($finfo['flags'], "N")) |
if (strstr($finfo['flags'], "N")) |
933 |
933 |
$ret .= "File <b>$f</b> added"; |
$ret .= "File <b>$f</b> added"; |
File inc/user/repo-page.php changed (mode: 100644) (index e1133d0..7989e48) |
... |
... |
if ($rg['ri']['ok'] != 1) { |
27 |
27 |
return; |
return; |
28 |
28 |
} |
} |
29 |
29 |
|
|
30 |
|
$x = array(); |
|
31 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
32 |
|
$x['type'] = 'repo'; |
|
33 |
|
$x['owner'] = $rg['ri']['uid']; |
|
34 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
35 |
|
$x['username'] = $rg['login_ui']['username']; |
|
36 |
|
$x['needed_rights'] = 'A'; |
|
37 |
|
$x['ip'] = $rg['ip']; |
|
38 |
|
$x['misc'] = ""; |
|
39 |
|
if (($rg['ri']['exists'] != 1) || (rg_rights_allow($db, $x) !== TRUE)) { |
|
|
30 |
|
$allow = FALSE; |
|
31 |
|
while (1) { |
|
32 |
|
if ($rg['ri']['exists'] != 1) |
|
33 |
|
break; |
|
34 |
|
|
|
35 |
|
$x = array(); |
|
36 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
37 |
|
$x['type'] = 'repo'; |
|
38 |
|
$x['owner'] = $rg['ri']['uid']; |
|
39 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
40 |
|
$x['username'] = $rg['login_ui']['username']; |
|
41 |
|
$x['needed_rights'] = 'A'; |
|
42 |
|
$x['ip'] = $rg['ip']; |
|
43 |
|
$x['misc'] = ""; |
|
44 |
|
if (rg_rights_allow($db, $x) !== TRUE) |
|
45 |
|
break; |
|
46 |
|
|
|
47 |
|
$allow = TRUE; |
|
48 |
|
break; |
|
49 |
|
} |
|
50 |
|
if ($allow !== TRUE) { |
40 |
51 |
$_repo_page .= rg_template("user/repo/deny.html", $rg); |
$_repo_page .= rg_template("user/repo/deny.html", $rg); |
41 |
52 |
return; |
return; |
42 |
53 |
} |
} |
File root/themes/default/download-vm.html added (mode: 100644) (index 0000000..2e615a2) |
|
1 |
|
<div class="islands"> |
|
2 |
|
<h2>Download - virtual machines</h2> |
|
3 |
|
|
|
4 |
|
<div class="island_row"> |
|
5 |
|
<div class="island_cell"> |
|
6 |
|
<div class="island"> |
|
7 |
|
<div class="island_title">qemu based virtualization</div> |
|
8 |
|
|
|
9 |
|
Steps to follow:<br /> |
|
10 |
|
- make sure libvirtd is started:<br /> |
|
11 |
|
<div class="xcode"> |
|
12 |
|
systemctl enable libvirtd<br /> |
|
13 |
|
systemctl start libvirtd |
|
14 |
|
</div> |
|
15 |
|
<br /> |
|
16 |
|
|
|
17 |
|
- download qemu image:<br /> |
|
18 |
|
<div class="xcode"> |
|
19 |
|
wget -c -O /var/lib/libvirt/images/rocketgit1-master.qcow2 |
|
20 |
|
http://downloads.rocketgit.com/vm/rocketgit1.qcow2.xz |
|
21 |
|
</div> |
|
22 |
|
<br /> |
|
23 |
|
|
|
24 |
|
- download libvirt vm description file:<br /> |
|
25 |
|
<div class="xcode"> |
|
26 |
|
wget -c -O /var/lib/libvirt/images/rocketgit.xml |
|
27 |
|
http://downloads.rocketgit.com/vm/rocketgit.xml |
|
28 |
|
</div> |
|
29 |
|
<br /> |
|
30 |
|
|
|
31 |
|
- decompress qemu image:<br /> |
|
32 |
|
<div class="xcode"> |
|
33 |
|
cd /var/lib/libvirt/images/<br /> |
|
34 |
|
xz -v -d rocketgit1-master.qcow2.xz |
|
35 |
|
</div> |
|
36 |
|
<br /> |
|
37 |
|
|
|
38 |
|
- create a clone of the image to be able to start over or to make |
|
39 |
|
multiple instances:<br /> |
|
40 |
|
<div class="xcode"> |
|
41 |
|
qemu-img create -f qcow2 -b rocketgit1-master.qcow2 rocketgit1.qcow2 |
|
42 |
|
</div> |
|
43 |
|
<br /> |
|
44 |
|
|
|
45 |
|
- add the rocketgit1 virtual machine:<br /> |
|
46 |
|
<div class="xcode"> |
|
47 |
|
virsh define --file /var/lib/libvirt/images/rocketgit.xml |
|
48 |
|
</div> |
|
49 |
|
<br /> |
|
50 |
|
|
|
51 |
|
- make it start at boot:<br /> |
|
52 |
|
<div class="xcode"> |
|
53 |
|
virsh autostart rocketgit1 |
|
54 |
|
</div> |
|
55 |
|
<br /> |
|
56 |
|
|
|
57 |
|
- now, you may want to change some virtual machine parameters using |
|
58 |
|
virt-manager or 'virsh edit rocketgit1' command. Pay attention to |
|
59 |
|
the network definition.<br /> |
|
60 |
|
<br /> |
|
61 |
|
|
|
62 |
|
- start the virtual machine:<br /> |
|
63 |
|
<div class="xcode"> |
|
64 |
|
virsh start rocketgit1 |
|
65 |
|
</div> |
|
66 |
|
<br /> |
|
67 |
|
|
|
68 |
|
- attach to the console to find out the ip address:<br /> |
|
69 |
|
<div class="xcode"> |
|
70 |
|
virsh console rocketgit1</br /> |
|
71 |
|
# login as root with password 'aaaa'<br /> |
|
72 |
|
ip ad li dev eth0 |
|
73 |
|
</div> |
|
74 |
|
<br /> |
|
75 |
|
|
|
76 |
|
- now, point your browser to the ip address found, using http or |
|
77 |
|
https and create an admin account.<br /> |
|
78 |
|
<br /> |
|
79 |
|
|
|
80 |
|
- finally, you must check the following list because you may want to:<br /> |
|
81 |
|
* generate new SSL/TLS keys<br /> |
|
82 |
|
* Add the vm in the update plan (periodic 'yum update')<br /> |
|
83 |
|
* edit /etc/sysconfig/clock to set the timezone (needs a restart of |
|
84 |
|
some services or reboot)<br /> |
|
85 |
|
* change root password: run 'passwd' (initial password is 'aaaa')<br /> |
|
86 |
|
* allow this virtual machine to send mail (add it to the relay allow list)<br /> |
|
87 |
|
* set a static IP address instead of DHCP<br /> |
|
88 |
|
* add it to the DNS server to be able to access it by name<br /> |
|
89 |
|
* adjust logrotate times<br /> |
|
90 |
|
* customize /etc/rocketgit/config.php<br /> |
|
91 |
|
Enjoy your new RocketGit instance!<br /> |
|
92 |
|
<br /> |
|
93 |
|
|
|
94 |
|
If you want to create a new RocketGit instance, you can create a new |
|
95 |
|
image based on rocketgit1-master: |
|
96 |
|
<div class="xcode"> |
|
97 |
|
cd /var/lib/libvirt/images/<br /> |
|
98 |
|
qemu-img create -f qcow2 -b rocketgit1-master.qcow2 rocketgit2.qcow2<br /> |
|
99 |
|
# edit rocketgit.xml and replace any reference of rocketgit1 to<br /> |
|
100 |
|
# rocketgit2; leave alone the reference to rocketgit1-master.qcow2<br /> |
|
101 |
|
virsh define --file rocketgit.xml<br /> |
|
102 |
|
virsh edit rocketgit2<br /> |
|
103 |
|
virsh autostart rocketgit2<br /> |
|
104 |
|
virsh start rocketgit2<br /> |
|
105 |
|
virsh console rocketgit2<br /> |
|
106 |
|
</div> |
|
107 |
|
|
|
108 |
|
</div> |
|
109 |
|
</div> |
|
110 |
|
</div> |
|
111 |
|
|
|
112 |
|
<div class="island_row"> |
|
113 |
|
<div class="island_cell"> |
|
114 |
|
<div class="island"> |
|
115 |
|
<div class="island_title">Soon for other virtualization solutions</div> |
|
116 |
|
Stay tuned! |
|
117 |
|
</div> |
|
118 |
|
</div> |
|
119 |
|
</div> |
|
120 |
|
|
|
121 |
|
</div> |
File root/themes/default/download.html changed (mode: 100644) (index 1d60ff9..3650165) |
13 |
13 |
<div class="island_cell"> |
<div class="island_cell"> |
14 |
14 |
<div class="island"> |
<div class="island"> |
15 |
15 |
<div class="island_title">Fedora</div> |
<div class="island_title">Fedora</div> |
16 |
|
From here you can download all the RPMs needed for a Fedora installation. |
|
17 |
|
Allow us few days to prepare the packages. |
|
|
16 |
|
If you are running a Fedora server, just add DinoRepo to your system |
|
17 |
|
and install rocketgit package:<br /> |
|
18 |
|
<div class="xcode"> |
|
19 |
|
yum install http://kernel.embedromix.ro/dinorepo-0.0.10-1.noarch.rpm<br /> |
|
20 |
|
yum install rocketgit |
|
21 |
|
</div> |
18 |
22 |
</div> |
</div> |
19 |
23 |
</div> |
</div> |
20 |
24 |
</div> |
</div> |
|
25 |
29 |
<div class="island_title">Other distributions</div> |
<div class="island_title">Other distributions</div> |
26 |
30 |
In the near future, we will provide packages ready for installation |
In the near future, we will provide packages ready for installation |
27 |
31 |
for all major distributions. If you know how to do a package, please |
for all major distributions. If you know how to do a package, please |
28 |
|
help us. Thank you. |
|
|
32 |
|
help us. Thank you! |
29 |
33 |
</div> |
</div> |
30 |
34 |
</div> |
</div> |
31 |
35 |
|
|
32 |
36 |
<div class="island_cell"> |
<div class="island_cell"> |
33 |
37 |
<div class="island"> |
<div class="island"> |
34 |
38 |
<div class="island_title">Virtual machines images</div> |
<div class="island_title">Virtual machines images</div> |
35 |
|
For KVM based machines, use this |
|
36 |
|
<a href="http://downloads.embedromix.ro/rocketgit-kvm-0.22.qcow2">link</a> (193MiB). |
|
|
39 |
|
For KVM based virtualization, use this |
|
40 |
|
<a href="/op/download/vm">link</a>. |
37 |
41 |
Please allow us few days to provide images for VirtualBox and VMWare. |
Please allow us few days to provide images for VirtualBox and VMWare. |
38 |
42 |
We will do our best to go under 200MiB per image. |
We will do our best to go under 200MiB per image. |
39 |
43 |
</div> |
</div> |
File root/themes/default/tos.html changed (mode: 100644) (index f499325..76a10fd) |
1 |
|
<div class="tos"> |
|
2 |
|
<h2>Terms of service v1</h2> |
|
3 |
|
<br /> |
|
|
1 |
|
<div class="islands"> |
|
2 |
|
<h2>Terms of service</h2> |
4 |
3 |
|
|
5 |
|
<ul> |
|
6 |
|
<li>You must not abuse RocketGit servers.</li> |
|
7 |
|
<li>You must not abuse other's servers using RocketGit as a proxy.</li> |
|
8 |
|
<li>You must not upload illegal content.</li> |
|
9 |
|
<li>You must not harass other users.</li> |
|
10 |
|
<li>You must enjoy your stay here.</li> |
|
11 |
|
</ul> |
|
|
4 |
|
<div class="island_row"> |
|
5 |
|
<div class="island_cell"> |
|
6 |
|
<div class="island"> |
|
7 |
|
|
|
8 |
|
- You must not abuse RocketGit servers.<br /> |
|
9 |
|
- You must not abuse other's servers using RocketGit as a proxy.<br /> |
|
10 |
|
- You must not upload illegal content.<br /> |
|
11 |
|
- You must not harass other users.<br /> |
|
12 |
|
- You must enjoy your stay here.<br /> |
|
13 |
|
|
|
14 |
|
</div> |
|
15 |
|
</div> |
|
16 |
|
</div> |
12 |
17 |
</div> |
</div> |
File tests/git_log1.expected changed (mode: 100644) (index a23c181..821a524) |
1 |
1 |
<div class="diff"> |
<div class="diff"> |
2 |
2 |
<br /> |
<br /> |
3 |
3 |
<a name="dis1"></a> |
<a name="dis1"></a> |
4 |
|
<table class="chunk" width="100%"> |
|
|
4 |
|
<table class="chunk"> |
5 |
5 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> changed (mode: 100644) (index 2c4179b..2bf9115):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> changed (mode: 100644) (index 2c4179b..2bf9115):</td></tr> |
6 |
6 |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
7 |
7 |
2 1 #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
2 1 #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
11 |
11 |
<div class="diff"> |
<div class="diff"> |
12 |
12 |
<br /> |
<br /> |
13 |
13 |
<a name="dis1"></a> |
<a name="dis1"></a> |
14 |
|
<table class="chunk" width="100%"> |
|
|
14 |
|
<table class="chunk"> |
15 |
15 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> added (mode: 100644) (index 0000000..2c4179b):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> added (mode: 100644) (index 0000000..2c4179b):</td></tr> |
16 |
16 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
17 |
17 |
2 #eeeeee #00ff00 baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
2 #eeeeee #00ff00 baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
20 |
20 |
<div class="diff"> |
<div class="diff"> |
21 |
21 |
<br /> |
<br /> |
22 |
22 |
<a name="a b c"></a> |
<a name="a b c"></a> |
23 |
|
<table class="chunk" width="100%"> |
|
|
23 |
|
<table class="chunk"> |
24 |
24 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a b c</b> added (mode: 100644) (index 0000000..72943a1):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a b c</b> added (mode: 100644) (index 0000000..72943a1):</td></tr> |
25 |
25 |
1 #eeeeee #00ff00 aaa |
1 #eeeeee #00ff00 aaa |
26 |
26 |
</table> |
</table> |
|
28 |
28 |
<div class="diff"> |
<div class="diff"> |
29 |
29 |
<br /> |
<br /> |
30 |
30 |
<a name="a3"></a> |
<a name="a3"></a> |
31 |
|
<table class="chunk" width="100%"> |
|
|
31 |
|
<table class="chunk"> |
32 |
32 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> deleted (index 193814c..0000000):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> deleted (index 193814c..0000000):</td></tr> |
33 |
33 |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
34 |
34 |
</table> |
</table> |
|
36 |
36 |
<div class="diff"> |
<div class="diff"> |
37 |
37 |
<br /> |
<br /> |
38 |
38 |
<a name="a3"></a> |
<a name="a3"></a> |
39 |
|
<table class="chunk" width="100%"> |
|
|
39 |
|
<table class="chunk"> |
40 |
40 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> renamed from a2 (similarity 100%):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> renamed from a2 (similarity 100%):</td></tr> |
41 |
41 |
</table> |
</table> |
42 |
42 |
<br /> |
<br /> |
43 |
43 |
<a name="c"></a> |
<a name="c"></a> |
44 |
|
<table class="chunk" width="100%"> |
|
|
44 |
|
<table class="chunk"> |
45 |
45 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>c</b> added (mode: 100644) (index 0000000..8ded189):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>c</b> added (mode: 100644) (index 0000000..8ded189):</td></tr> |
46 |
46 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaa |
47 |
47 |
</table> |
</table> |
|
49 |
49 |
<div class="diff"> |
<div class="diff"> |
50 |
50 |
<br /> |
<br /> |
51 |
51 |
<a name="a2"></a> |
<a name="a2"></a> |
52 |
|
<table class="chunk" width="100%"> |
|
|
52 |
|
<table class="chunk"> |
53 |
53 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a2</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a2</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
54 |
54 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
55 |
55 |
</table> |
</table> |
|
57 |
57 |
<div class="diff"> |
<div class="diff"> |
58 |
58 |
<br /> |
<br /> |
59 |
59 |
<a name="empty.txt"></a> |
<a name="empty.txt"></a> |
60 |
|
<table class="chunk" width="100%"> |
|
|
60 |
|
<table class="chunk"> |
61 |
61 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>empty.txt</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>empty.txt</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
62 |
62 |
</table> |
</table> |
63 |
63 |
</div> |
</div> |
64 |
64 |
<div class="diff"> |
<div class="diff"> |
65 |
65 |
<br /> |
<br /> |
66 |
66 |
<a name="xx"yy"></a> |
<a name="xx"yy"></a> |
67 |
|
<table class="chunk" width="100%"> |
|
|
67 |
|
<table class="chunk"> |
68 |
68 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>xx"yy</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>xx"yy</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
69 |
69 |
</table> |
</table> |
70 |
70 |
</div> |
</div> |
71 |
71 |
<div class="diff"> |
<div class="diff"> |
72 |
72 |
<br /> |
<br /> |
73 |
73 |
<a name="a"></a> |
<a name="a"></a> |
74 |
|
<table class="chunk" width="100%"> |
|
|
74 |
|
<table class="chunk"> |
75 |
75 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
76 |
76 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
77 |
77 |
</table> |
</table> |
File tests/git_log1.final changed (mode: 100644) (index a23c181..821a524) |
1 |
1 |
<div class="diff"> |
<div class="diff"> |
2 |
2 |
<br /> |
<br /> |
3 |
3 |
<a name="dis1"></a> |
<a name="dis1"></a> |
4 |
|
<table class="chunk" width="100%"> |
|
|
4 |
|
<table class="chunk"> |
5 |
5 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> changed (mode: 100644) (index 2c4179b..2bf9115):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> changed (mode: 100644) (index 2c4179b..2bf9115):</td></tr> |
6 |
6 |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
7 |
7 |
2 1 #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
2 1 #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
11 |
11 |
<div class="diff"> |
<div class="diff"> |
12 |
12 |
<br /> |
<br /> |
13 |
13 |
<a name="dis1"></a> |
<a name="dis1"></a> |
14 |
|
<table class="chunk" width="100%"> |
|
|
14 |
|
<table class="chunk"> |
15 |
15 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> added (mode: 100644) (index 0000000..2c4179b):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>dis1</b> added (mode: 100644) (index 0000000..2c4179b):</td></tr> |
16 |
16 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
17 |
17 |
2 #eeeeee #00ff00 baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
2 #eeeeee #00ff00 baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
20 |
20 |
<div class="diff"> |
<div class="diff"> |
21 |
21 |
<br /> |
<br /> |
22 |
22 |
<a name="a b c"></a> |
<a name="a b c"></a> |
23 |
|
<table class="chunk" width="100%"> |
|
|
23 |
|
<table class="chunk"> |
24 |
24 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a b c</b> added (mode: 100644) (index 0000000..72943a1):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a b c</b> added (mode: 100644) (index 0000000..72943a1):</td></tr> |
25 |
25 |
1 #eeeeee #00ff00 aaa |
1 #eeeeee #00ff00 aaa |
26 |
26 |
</table> |
</table> |
|
28 |
28 |
<div class="diff"> |
<div class="diff"> |
29 |
29 |
<br /> |
<br /> |
30 |
30 |
<a name="a3"></a> |
<a name="a3"></a> |
31 |
|
<table class="chunk" width="100%"> |
|
|
31 |
|
<table class="chunk"> |
32 |
32 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> deleted (index 193814c..0000000):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> deleted (index 193814c..0000000):</td></tr> |
33 |
33 |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
1 #ff0000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #eeeeee |
34 |
34 |
</table> |
</table> |
|
36 |
36 |
<div class="diff"> |
<div class="diff"> |
37 |
37 |
<br /> |
<br /> |
38 |
38 |
<a name="a3"></a> |
<a name="a3"></a> |
39 |
|
<table class="chunk" width="100%"> |
|
|
39 |
|
<table class="chunk"> |
40 |
40 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> renamed from a2 (similarity 100%):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a3</b> renamed from a2 (similarity 100%):</td></tr> |
41 |
41 |
</table> |
</table> |
42 |
42 |
<br /> |
<br /> |
43 |
43 |
<a name="c"></a> |
<a name="c"></a> |
44 |
|
<table class="chunk" width="100%"> |
|
|
44 |
|
<table class="chunk"> |
45 |
45 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>c</b> added (mode: 100644) (index 0000000..8ded189):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>c</b> added (mode: 100644) (index 0000000..8ded189):</td></tr> |
46 |
46 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaa |
47 |
47 |
</table> |
</table> |
|
49 |
49 |
<div class="diff"> |
<div class="diff"> |
50 |
50 |
<br /> |
<br /> |
51 |
51 |
<a name="a2"></a> |
<a name="a2"></a> |
52 |
|
<table class="chunk" width="100%"> |
|
|
52 |
|
<table class="chunk"> |
53 |
53 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a2</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a2</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
54 |
54 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
55 |
55 |
</table> |
</table> |
|
57 |
57 |
<div class="diff"> |
<div class="diff"> |
58 |
58 |
<br /> |
<br /> |
59 |
59 |
<a name="empty.txt"></a> |
<a name="empty.txt"></a> |
60 |
|
<table class="chunk" width="100%"> |
|
|
60 |
|
<table class="chunk"> |
61 |
61 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>empty.txt</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>empty.txt</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
62 |
62 |
</table> |
</table> |
63 |
63 |
</div> |
</div> |
64 |
64 |
<div class="diff"> |
<div class="diff"> |
65 |
65 |
<br /> |
<br /> |
66 |
66 |
<a name="xx"yy"></a> |
<a name="xx"yy"></a> |
67 |
|
<table class="chunk" width="100%"> |
|
|
67 |
|
<table class="chunk"> |
68 |
68 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>xx"yy</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>xx"yy</b> added (mode: 100644) (index 0000000..e69de29):</td></tr> |
69 |
69 |
</table> |
</table> |
70 |
70 |
</div> |
</div> |
71 |
71 |
<div class="diff"> |
<div class="diff"> |
72 |
72 |
<br /> |
<br /> |
73 |
73 |
<a name="a"></a> |
<a name="a"></a> |
74 |
|
<table class="chunk" width="100%"> |
|
|
74 |
|
<table class="chunk"> |
75 |
75 |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
<tr style="border: 1px; background: #dddddd"><td colspan="4">File <b>a</b> added (mode: 100644) (index 0000000..193814c):</td></tr> |
76 |
76 |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
1 #eeeeee #00ff00 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
77 |
77 |
</table> |
</table> |
File tests/http.inc.php changed (mode: 100644) (index d323c52..44344d8) |
... |
... |
function do_req($url, &$data, &$headers) |
46 |
46 |
$ret['body'] = substr($r, $header_size); |
$ret['body'] = substr($r, $header_size); |
47 |
47 |
curl_close($c); |
curl_close($c); |
48 |
48 |
|
|
|
49 |
|
// Check with tidy |
|
50 |
|
if (!empty($ret['body'])) { // we may have a redirect |
|
51 |
|
file_put_contents("http.tidy.in", $ret['body']); |
|
52 |
|
$cmd = "tidy -errors -utf8 -file http.tidy.out http.tidy.in"; |
|
53 |
|
system($cmd, $ec); |
|
54 |
|
if ($ec != 0) { |
|
55 |
|
echo "tidy ec=$ec\n"; |
|
56 |
|
echo file_get_contents("http.tidy.out"); |
|
57 |
|
exit(1); |
|
58 |
|
} |
|
59 |
|
} |
|
60 |
|
|
49 |
61 |
// find sid |
// find sid |
50 |
62 |
$x = preg_match('/Set-Cookie: sid=([a-zA-Z0-9]*)/', $ret['header'], $matches); |
$x = preg_match('/Set-Cookie: sid=([a-zA-Z0-9]*)/', $ret['header'], $matches); |
51 |
63 |
if (($x === FALSE) || (!isset($matches[1]))) { |
if (($x === FALSE) || (!isset($matches[1]))) { |