[Evolvis-commits] r607: Renamed db-upgrade26.pl to db-upgrade.pl. ↵

lo-lan-do at evolvis.org lo-lan-do at evolvis.org
Thu Feb 25 15:30:47 CET 2010


Author: lo-lan-do
Date: 2010-02-25 15:30:46 +0100 (Thu, 25 Feb 2010)
New Revision: 607

Removed:
   trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade26.pl
Modified:
   trunk/gforge_base/evolvisforge/
   trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl
   trunk/gforge_base/evolvisforge/gforge/deb-specific/install-db.sh
   trunk/gforge_base/evolvisforge/gforge/debian/changelog
   trunk/gforge_base/evolvisforge/gforge/debian/rules
Log:
Renamed db-upgrade26.pl to db-upgrade.pl.



Property changes on: trunk/gforge_base/evolvisforge
___________________________________________________________________
Modified: bzr:revision-info
   - timestamp: 2002-03-14 17:37:24.000000000 +0000
committer: lo-lan-do

   + timestamp: 2002-03-14 17:44:07.000000000 +0000
committer: lo-lan-do

Modified: bzr:file-ids
   - gforge/deb-specific/db-upgrade26.pl	221 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fgforge%2Fdeb-specific%2Fdb-upgrade26.pl

   + gforge/deb-specific/db-upgrade.pl	7 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fgforge%2Fdeb-specific%2Fdb-upgrade.pl
gforge/deb-specific/install-db.sh	203 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fgforge%2Fdeb-specific%2Finstall-db.sh
gforge/debian/changelog	7 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fgforge%2Fdebian%2Fchangelog
gforge/debian/rules	7 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fgforge%2Fdebian%2Frules

Modified: bzr:revision-id:v4
   - 1 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1
2 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2
3 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:7
4 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:9
5 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:10
6 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:11
7 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:12
8 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:13
9 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:14
10 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:15
11 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:16
12 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:17
13 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:18
14 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:19
15 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:20
16 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:21
17 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:22
18 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:23
19 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:24
20 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:25
21 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:26
22 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:27
23 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:28
24 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:29
25 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:30
26 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:31
27 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:32
28 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:33
29 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:34
30 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:35
31 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:36
32 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:37
33 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:38
34 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:39
35 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:40
36 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:41
37 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:42
38 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:43
39 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:44
40 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:45
41 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:46
42 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:47
43 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:48
44 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:49
45 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:50
46 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:51
47 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:52
48 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:53
49 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:54
50 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:55
51 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:56
52 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:57
53 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:58
54 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:59
55 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:60
56 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:61
57 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:62
58 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:63
59 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:64
60 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:65
61 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:66
62 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:67
63 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:68
64 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:69
65 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:70
66 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:71
67 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:72
68 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:73
69 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:74
70 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:75
71 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:76
72 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:77
73 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:78
74 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:79
75 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:80
76 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:81
77 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:82
78 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:83
79 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:84
80 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:85
81 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:86
82 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:87
83 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:88
84 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:89
85 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:90
86 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:91
87 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:92
88 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:93
89 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:94
90 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:95
91 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:96
92 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:97
93 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:98
94 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:99
95 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:100
96 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:101
97 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:102
98 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:103
99 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:104
100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:105
101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:106
102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:107
103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:108
104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:109
105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:110
106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:111
107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:112
108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:113
109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:114
110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:115
111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:116
112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:117
113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:118
114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:119
115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:120
116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:121
117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:122
118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:123
119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:124
120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:125
121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:126
122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:127
123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:128
124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:129
125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:130
126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:131
127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:132
128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:133
129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:134
130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:135
131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:136
132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:137
133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:138
134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:139
135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:140
136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:141
137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:142
138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:143
139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:144
140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:145
141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:146
142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:147
143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:148
144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:149
145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:150
146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:151
147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:152
148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:153
149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:154
150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:155
151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:156
152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:157
153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:158
154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:159
155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:160
156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:161
157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:162
158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:163
159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:164
160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:165
161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:166
162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:167
163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:168
164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:169
165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:170
166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:172
167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:173
168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:174
169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:175
170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:176
171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:180
172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:184
173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:186
174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:187
175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:188
176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:189
177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:190
178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:191
179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:192
180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:193
181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:194
182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:195
183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:196
184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:197
185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:198
186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:199
187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:200
188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:202
189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:203
190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:204
191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:205
192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:206
193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:207
194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:208
195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:209
196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:210
197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:211
198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:212
199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:213
200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:214
201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:215
202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:216
203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:217
204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:218
205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:219
206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:220
207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:221
208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:222
209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:223
210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:224
211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:225
212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:226
213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:227
214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:228
215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:229
216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:230
217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:231
218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:232
219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:233
220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:234
221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:235
222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:236
223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:237
224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:238
225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:241
226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:250
227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:253
228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:254
229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:255
230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:256
231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:258
232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:263
233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:264
234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:265
235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:266
236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:268
237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:269
238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:271
239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:275
240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:276
241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:277
242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:278
243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:288
244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:289
245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:290
246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:291
247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:292
248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:293
249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:294
250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:295
251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:296
252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:297
253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:298
254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:310
255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:311
256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:313
257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:315
258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:323
259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:324
260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:325
261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:326
262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:327
263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:328
264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:329
265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:331
266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:336
267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:337
268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:338
269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:339
270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:340
271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:341
272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:343
273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:359
274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:360
275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:361
276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:362
277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:363
278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:364
279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:365
280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:369
281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:371
282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:375
283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:377
284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:378
285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:379
286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:380
287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:384
288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:386
289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:387
290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:388
291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:390
292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:391
293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:392
294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:394
295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:395
296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:406
297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:407
298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:408
299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:409
300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:410
301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:411
302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:412
303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:413
304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:414
305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:415
306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:416
307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:417
308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:418
309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:419
310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:420
311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:421
312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:422
313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:427
314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:428
315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:429
316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:435
317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:436
318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:437
319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:438
320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:442
321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:443
322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:444
323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:448
324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:449
325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:450
326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:451
327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:452
328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:453
329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:454
330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:455
331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:456
332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:457
333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:458
334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:459
335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:460
336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:461
337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:463
338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:464
339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:465
340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:466
341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:467
342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:468
343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:476
344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:477
345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:478
346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:479
347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:480
348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:481
349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:488
350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:497
351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:498
352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:499
353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:500
354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:501
355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:502
356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:503
357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:504
358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:505
359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:506
360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:507
361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:508
362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:509
363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:510
364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:511
365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:512
366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:513
367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:514
368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:515
369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:516
370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:517
371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:518
372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:521

   + 1 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1
2 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2
3 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:7
4 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:9
5 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:10
6 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:11
7 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:12
8 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:13
9 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:14
10 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:15
11 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:16
12 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:17
13 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:18
14 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:19
15 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:20
16 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:21
17 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:22
18 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:23
19 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:24
20 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:25
21 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:26
22 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:27
23 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:28
24 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:29
25 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:30
26 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:31
27 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:32
28 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:33
29 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:34
30 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:35
31 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:36
32 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:37
33 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:38
34 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:39
35 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:40
36 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:41
37 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:42
38 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:43
39 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:44
40 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:45
41 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:46
42 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:47
43 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:48
44 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:49
45 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:50
46 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:51
47 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:52
48 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:53
49 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:54
50 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:55
51 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:56
52 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:57
53 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:58
54 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:59
55 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:60
56 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:61
57 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:62
58 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:63
59 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:64
60 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:65
61 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:66
62 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:67
63 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:68
64 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:69
65 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:70
66 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:71
67 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:72
68 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:73
69 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:74
70 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:75
71 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:76
72 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:77
73 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:78
74 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:79
75 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:80
76 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:81
77 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:82
78 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:83
79 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:84
80 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:85
81 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:86
82 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:87
83 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:88
84 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:89
85 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:90
86 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:91
87 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:92
88 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:93
89 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:94
90 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:95
91 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:96
92 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:97
93 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:98
94 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:99
95 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:100
96 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:101
97 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:102
98 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:103
99 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:104
100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:105
101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:106
102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:107
103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:108
104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:109
105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:110
106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:111
107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:112
108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:113
109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:114
110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:115
111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:116
112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:117
113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:118
114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:119
115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:120
116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:121
117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:122
118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:123
119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:124
120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:125
121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:126
122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:127
123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:128
124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:129
125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:130
126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:131
127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:132
128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:133
129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:134
130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:135
131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:136
132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:137
133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:138
134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:139
135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:140
136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:141
137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:142
138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:143
139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:144
140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:145
141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:146
142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:147
143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:148
144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:149
145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:150
146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:151
147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:152
148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:153
149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:154
150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:155
151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:156
152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:157
153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:158
154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:159
155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:160
156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:161
157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:162
158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:163
159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:164
160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:165
161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:166
162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:167
163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:168
164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:169
165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:170
166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:172
167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:173
168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:174
169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:175
170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:176
171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:180
172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:184
173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:186
174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:187
175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:188
176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:189
177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:190
178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:191
179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:192
180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:193
181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:194
182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:195
183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:196
184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:197
185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:198
186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:199
187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:200
188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:202
189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:203
190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:204
191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:205
192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:206
193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:207
194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:208
195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:209
196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:210
197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:211
198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:212
199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:213
200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:214
201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:215
202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:216
203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:217
204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:218
205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:219
206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:220
207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:221
208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:222
209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:223
210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:224
211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:225
212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:226
213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:227
214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:228
215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:229
216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:230
217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:231
218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:232
219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:233
220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:234
221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:235
222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:236
223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:237
224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:238
225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:241
226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:250
227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:253
228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:254
229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:255
230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:256
231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:258
232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:263
233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:264
234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:265
235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:266
236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:268
237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:269
238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:271
239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:275
240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:276
241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:277
242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:278
243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:288
244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:289
245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:290
246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:291
247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:292
248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:293
249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:294
250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:295
251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:296
252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:297
253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:298
254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:310
255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:311
256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:313
257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:315
258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:323
259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:324
260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:325
261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:326
262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:327
263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:328
264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:329
265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:331
266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:336
267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:337
268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:338
269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:339
270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:340
271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:341
272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:343
273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:359
274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:360
275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:361
276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:362
277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:363
278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:364
279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:365
280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:369
281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:371
282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:375
283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:377
284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:378
285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:379
286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:380
287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:384
288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:386
289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:387
290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:388
291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:390
292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:391
293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:392
294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:394
295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:395
296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:406
297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:407
298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:408
299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:409
300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:410
301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:411
302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:412
303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:413
304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:414
305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:415
306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:416
307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:417
308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:418
309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:419
310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:420
311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:421
312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:422
313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:427
314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:428
315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:429
316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:435
317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:436
318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:437
319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:438
320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:442
321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:443
322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:444
323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:448
324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:449
325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:450
326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:451
327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:452
328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:453
329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:454
330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:455
331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:456
332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:457
333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:458
334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:459
335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:460
336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:461
337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:463
338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:464
339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:465
340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:466
341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:467
342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:468
343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:476
344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:477
345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:478
346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:479
347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:480
348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:481
349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:488
350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:497
351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:498
352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:499
353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:500
354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:501
355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:502
356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:503
357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:504
358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:505
359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:506
360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:507
361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:508
362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:509
363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:510
364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:511
365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:512
366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:513
367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:514
368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:515
369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:516
370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:517
371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:518
372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:521
373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:522

Modified: bzr:text-parents
   - gforge/deb-specific/db-upgrade26.pl	svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:513

   + gforge/deb-specific/db-upgrade.pl	svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:7
gforge/deb-specific/install-db.sh	svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:502
gforge/debian/changelog	svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:518
gforge/debian/rules	svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:499


Modified: trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl	2010-02-25 14:30:41 UTC (rev 606)
+++ trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl	2010-02-25 14:30:46 UTC (rev 607)
@@ -1,20 +1,26 @@
 #!/usr/bin/perl -w
 #
+# $Id$
+#
 # Debian-specific script to upgrade the database between releases
+# Roland Mas <lolando at debian.org>
 
-use DBI ;
 use strict ;
 use diagnostics ;
 
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
 use vars qw/$dbh @reqlist/ ;
-
 use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
     $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
     $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
     $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
     $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
     $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
-    $server_admin $domain_name $newsadmin_groupid $skill_list/ ;
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
 
 sub is_lesser ( $$ ) ;
 sub is_greater ( $$ ) ;
@@ -28,14 +34,17 @@
 
 &db_connect ;
 
+# debug "Connected to the database OK." ;
+
 $dbh->{AutoCommit} = 0;
 $dbh->{RaiseError} = 1;
 eval {
-    my ($query, $sth, @array, $version, $action) ;
+    my ($query, $sth, @array, $version, $action, $path, $target) ;
 
     # Do we have at least the basic schema?
 
     $query = "SELECT count(*) from pg_class where relname = 'groups'";
+    # debug $query ;
     $sth = $dbh->prepare ($query) ;
     $sth->execute () ;
     @array = $sth->fetchrow_array () ;
@@ -44,185 +53,296 @@
     # Create Sourceforge database
 
     if ($array [0] == 0) {
+	# Installing SF 2.6 from scratch
 	$action = "installation" ;
 	debug "Creating initial Sourceforge database from files." ;
 
-	my @filelist = qw{ /usr/lib/sourceforge/db/SourceForge.sql
-			       /usr/lib/sourceforge/db/trove_defaults.sql
-			       /usr/lib/sourceforge/db/init-extra.sql } ;
-	# TODO: user_rating.sql
-			      
-	foreach my $file (@filelist) {
-	    debug "Processing $file" ;
-	    @reqlist = @{ &parse_sql_file ($file) } ;
-	    
- 	    foreach my $s (@reqlist) {
- 		$query = $s ;
-  		$sth = $dbh->prepare ($query) ;
-  		$sth->execute () ;
-  		$sth->finish () ;
- 	    }
- 	}
-	@reqlist = () ;
+	&create_metadata_table ("2.5.9999") ;
 
-	debug "Adding local data." ;
+	debug "Updating debian_meta_data table." ;
+	$query = "INSERT INTO debian_meta_data (key, value) VALUES ('current-path', 'scratch-to-2.6')" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+	debug "Committing." ;
+	$dbh->commit () ;
 
-	
-	do "/etc/sourceforge/local.pl" or die "Cannot read /etc/sourceforge/local.pl" ;
+    } else {
+	$action = "upgrade" ;
 
-	my ($login, $pwd, $md5pwd, $email, $shellbox, $noreplymail, $date) ;
-
-	$login = $admin_login ;
-	$pwd = $admin_password ;
-	$md5pwd=qx/echo -n $pwd | md5sum/ ;
-	chomp $md5pwd ;
-	$email = $server_admin ;
-	$shellbox = $domain_name ;
-	$noreplymail="noreply\@$domain_name" ;
-	$date = time () ;
-	
- 	@reqlist = (
- 	    "INSERT INTO groups (group_id, group_name, homepage, is_public, status, unix_group_name, unix_box,
-                     http_domain, short_description, cvs_box, license, register_purpose,
-                     license_other, register_time, use_bugs, rand_hash, use_mail, use_survey,
-                     use_patch, use_forum, use_pm, use_cvs, use_news, use_support, new_bug_address,
-                     new_patch_address, new_support_address, type, use_docman, send_all_bugs,
-                     send_all_patches, send_all_support, new_task_address, send_all_tasks,
-                     use_bug_depend_box, use_pm_depend_box)
- 	    VALUES (1, 'Site Admin', '$domain_name/admin/', 1, 'A', 'siteadmin', 'shell1', 
- 	    	    NULL, NULL, 'cvs1', 'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0, 1, 1, '', '', '', 1, 1, 0, 0, 0, '', 0, 0, 0)",
- 	    "INSERT INTO groups (group_id, group_name, homepage, is_public, status, unix_group_name, unix_box,
-                     http_domain, short_description, cvs_box, license, register_purpose,
-                     license_other, register_time, use_bugs, rand_hash, use_mail, use_survey,
-                     use_patch, use_forum, use_pm, use_cvs, use_news, use_support, new_bug_address,
-                     new_patch_address, new_support_address, type, use_docman, send_all_bugs,
-                     send_all_patches, send_all_support, new_task_address, send_all_tasks,
-                     use_bug_depend_box, use_pm_depend_box)
- 	    VALUES ($newsadmin_groupid, 'Site News Admin', '$domain_name/news/', 0, 'A', 'newsadmin', 'shell1',
-                     NULL, NULL, 'cvs1', 'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0, 1, 1, '', '',
-                     '', 1, 0, 0, 0, 0, '', 0, 0, 0)",
- 	    "INSERT INTO users (user_id, user_name, email, user_pw)  
- 		    VALUES (100,'None','$noreplymail','*********')", 
- 	    "INSERT INTO users VALUES (101,'$login','$email','$md5pwd','Sourceforge admin','A','/bin/bash','','N',2000,'$shellbox',$date,'',1,0,NULL,NULL,0,'','GMT', 1)", 
- 	    "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 1, 'A')",
- 	    "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, $newsadmin_groupid, 'A')",
- 	    "INSERT INTO bug_category (bug_category_id, group_id, category_name) VALUES (100,1,'None')",
- 	    "INSERT INTO bug_group (bug_group_id, group_id, group_name) VALUES (100,1,'None')",
- 	    "INSERT INTO bug (bug_id,group_id,status_id,category_id,bug_group_id,submitted_by,assigned_to,resolution_id)
- 		    VALUES (100,1,100,100,100,100,100,100)",
- 	    "INSERT INTO patch_category (patch_category_id, group_id, category_name) VALUES (100,1,'None')",
- 	    "INSERT INTO patch (group_id,patch_status_id,patch_category_id,submitted_by,assigned_to)
- 		    VALUES (1,100,100,100,100)",
- 	    "INSERT INTO project_group_list (group_project_id,group_id) VALUES (1,1)",
- 	    "INSERT INTO project_task (group_project_id,created_by,status_id)
- 		    VALUES (1,100,100)",
- 	    "INSERT INTO support_category VALUES ('100','1','None')"
- 		    ) ;
-
- 	foreach my $s (@reqlist) {
- 	    $query = $s ;
- 	    $sth = $dbh->prepare ($query) ;
- 	    $sth->execute () ;
- 	    $sth->finish () ;
- 	}
-	@reqlist = () ;
-
-	debug "Initialising sequences." ;
-
-	@filelist = qw{ /usr/lib/sourceforge/db/init-sequences.sql } ;
-			      
-	foreach my $file (@filelist) {
-	    debug "Processing $file" ;
-	    @reqlist = @{ &parse_sql_file ($file) } ;
+	$version = &get_db_version ;
+	if (is_lesser $version, "2.5.9999") {
+	    debug "Found an old (2.5) database, will upgrade to 2.6" ;
 	    
- 	    foreach my $s (@reqlist) {
- 		$query = $s ;
-  		$sth = $dbh->prepare ($query) ;
-  		$sth->execute () ;
-  		$sth->finish () ;
- 	    }
- 	} 
-	@reqlist = () ;
+	    $query = "SELECT count(*) from debian_meta_data where key = 'current-path'";
+	    # debug $query ;
+	    $sth = $dbh->prepare ($query) ;
+	    $sth->execute () ;
+	    @array = $sth->fetchrow_array () ;
+	    $sth->finish () ;
 
-	debug "Inserting skills." ;
-
-	foreach my $skill (split /;/, $skill_list) {
-	    push @reqlist, "INSERT INTO people_skill (name) VALUES ('$skill')" ;
+	    if ($array[0] == 0) {
+		# debug "Updating debian_meta_data table." ;
+		$query = "INSERT INTO debian_meta_data (key, value) VALUES ('current-path', '2.5-to-2.6')" ;
+		# debug $query ;
+		$sth = $dbh->prepare ($query) ;
+		$sth->execute () ;
+		$sth->finish () ;
+		debug "Committing." ;
+		$dbh->commit () ;
+	    }
 	}
-
- 	foreach my $s (@reqlist) {
- 	    $query = $s ;
- 	    $sth = $dbh->prepare ($query) ;
- 	    $sth->execute () ;
- 	    $sth->finish () ;
- 	}
-	@reqlist = () ;
-
- 	debug "Committing." ;
- 	$dbh->commit () ;
-    } else {
-	$action = "upgrade" ;
     }
 
-    # Do we have the metadata table?
-
-    $query = "SELECT count(*) from pg_class where relname = 'debian_meta_data'";
+    $query = "SELECT count(*) from debian_meta_data where key = 'current-path'";
+    # debug $query ;
     $sth = $dbh->prepare ($query) ;
     $sth->execute () ;
     @array = $sth->fetchrow_array () ;
     $sth->finish () ;
 
-    # Let's create this table if we have it not
-
-    if ($array [0] == 0) {
-	debug "Creating debian_meta_data table." ;
-	$query = "CREATE TABLE debian_meta_data (key varchar primary key, value text not null)" ;
+    if ($array[0] == 0) {
+	$path = "" ;
+    } else {
+	$query = "SELECT value from debian_meta_data where key = 'current-path'";
+	# debug $query ;
 	$sth = $dbh->prepare ($query) ;
 	$sth->execute () ;
+	@array = $sth->fetchrow_array () ;
 	$sth->finish () ;
 	
-	# Now table should exist, let's enter its first value in it
+	$path = $array[0] ;
+    }
 
-	debug "Inserting first data into debian_meta_data table." ;
-	$query = "INSERT INTO debian_meta_data (key, value) VALUES ('db-version', '2.5-7+just+before+8')" ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
+  PATH_SWITCH: {
+      ($path eq 'scratch-to-2.6') && do {
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.1+global+data+done" ;
+	  if (is_lesser $version, $target) {
+	      my @filelist = qw{ /usr/lib/sourceforge/db/sf-2.6-complete.sql } ;
+	      # TODO: user_rating.sql
 
-	debug "Committing." ;
-	$dbh->commit () ;
-    }
+	      foreach my $file (@filelist) {
+		  debug "Processing $file" ;
+		  @reqlist = @{ &parse_sql_file ($file) } ;
+		  
+		  foreach my $s (@reqlist) {
+		      $query = $s ;
+		      # debug $query ;
+		      $sth = $dbh->prepare ($query) ;
+		      $sth->execute () ;
+		      $sth->finish () ;
+		  }
+	      }
+	      @reqlist = () ;
+	      
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
 
-    # Now we have the metadata table with at least the "db-version" key
-    # We can continue our work based on the associated value
-    
-    $query = "select value from debian_meta_data where key = 'db-version'" ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-    
-    $version = $array [0] ;
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.2+local+data+done" ;
+	  if (is_lesser $version, $target) {
+	      debug "Adding local data." ;
+	      
+	      do "/etc/sourceforge/local.pl" or die "Cannot read /etc/sourceforge/local.pl" ;
+	      
+	      my ($login, $pwd, $md5pwd, $email, $shellbox, $noreplymail, $date) ;
+	      
+	      $login = $admin_login ;
+	      $pwd = $admin_password ;
+	      $md5pwd=qx/echo -n $pwd | md5sum/ ;
+	      chomp $md5pwd ;
+	      $email = $server_admin ;
+	      $shellbox = "shell" ;
+	      $noreplymail="noreply\@$domain_name" ;
+	      $date = time () ;
+	      
+	      @reqlist = (
+			  "UPDATE groups SET homepage = '$domain_name/admin/' where group_id = 1",
+			  "UPDATE groups SET homepage = '$domain_name/news/' where group_id = 2",
+			  "UPDATE groups SET homepage = '$domain_name/stats/' where group_id = 3",
+			  "UPDATE groups SET homepage = '$domain_name/peerrating/' where group_id = 4",
+			  "UPDATE users SET email = '$noreplymail' where user_id = 100",
+			  "INSERT INTO users VALUES (101,'$login','$email','$md5pwd','Sourceforge admin','A','/bin/bash','','N',2000,'$shellbox',$date,'',1,0,NULL,NULL,0,'','GMT', 1, 0)", 
+			  "SELECT setval ('\"users_pk_seq\"', 102, 'f')",
+			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 1, 'A')",
+			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 2, 'A')",
+			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 3, 'A')",
+			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 4, 'A')"
+			  ) ;
+	      
+	      foreach my $s (@reqlist) {
+		  $query = $s ;
+		  # debug $query ;
+		  $sth = $dbh->prepare ($query) ;
+		  $sth->execute () ;
+		  $sth->finish () ;
+	      }
+	      @reqlist = () ;
+	      
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
+	  
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.3+skills+done" ;
+	  if (is_lesser $version, $target) {
+	      debug "Inserting skills." ;
+	      
+	      foreach my $skill (split /;/, $skill_list) {
+		  push @reqlist, "INSERT INTO people_skill (name) VALUES ('$skill')" ;
+	      }
+	      
+	      foreach my $s (@reqlist) {
+		  $query = $s ;
+		  # debug $query ;
+		  $sth = $dbh->prepare ($query) ;
+		  $sth->execute () ;
+		  $sth->finish () ;
+	      }
+	      @reqlist = () ;
+	      
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
 
-    # $version is the last successfully installed version
-    
-    if (is_lesser $version, "2.5-8") {
-	debug "Found version $version lesser than 2.5-8, adding row to people_job_category." ;
-	$query = "INSERT INTO people_job_category VALUES (100, 'Undefined', 0)" ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
+	  $version = &get_db_version ;
+	  $target = "2.6-0" ;
+	  if (is_lesser $version, $target) {
+	      debug "Updating debian_meta_data table." ;
+	      $query = "DELETE FROM debian_meta_data WHERE key = 'current-path'" ;
+	      # debug $query ;
+	      $sth = $dbh->prepare ($query) ;
+	      $sth->execute () ;
+	      $sth->finish () ;
+	      
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
 
-	debug "Updating debian_meta_data table." ;
-	$query = "UPDATE debian_meta_data SET value = '2.5-8' where key = 'db-version'" ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
+	  last PATH_SWITCH ;
+      } ;
 
-	debug "Committing." ;
-	$dbh->commit () ;
-    }
+      ($path eq '2.5-to-2.6') && do {
+	  
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.1+data+upgraded" ;
+	  if (is_lesser $version, $target) {
+	      debug "Upgrading your database scheme from 2.5" ;
 
+	      @reqlist = @{ &parse_sql_file ("/usr/lib/sourceforge/db/sf2.5-to-sf2.6.sql") } ;
+	      foreach my $s (@reqlist) {
+		  $query = $s ;
+		  debug $query ;
+		  $sth = $dbh->prepare ($query) ;
+		  $sth->execute () ;
+		  $sth->finish () ;
+	      }
+	      @reqlist = () ;
+
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
+
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.2+artifact+transcoded" ;
+	  if (is_lesser $version, $target) {
+	      debug "Transcoding the artifact data fields" ;
+
+	      $query = "SELECT id,bin_data FROM artifact_file ORDER BY id ASC" ;
+	      # debug $query ;
+	      $sth = $dbh->prepare ($query) ;
+	      $sth->execute () ;
+	      while (@array = $sth->fetchrow_array) {
+		  my $query2 = "UPDATE artifact_file SET bin_data='" ;
+		  $query2 .= encode_base64 (decode_entities ($array [1])) ;
+		  $query2 .= "' WHERE id=" ;
+		  $query2 .= $array [0] ;
+		  $query2 .= "" ;
+		  # debug $query2 ;
+		  my $sth2 =$dbh->prepare ($query2) ;
+		  $sth2->execute () ;
+		  $sth2->finish () ;
+	      }
+	      $sth->finish () ;
+
+	  $version = &get_db_version ;
+	  $target = "2.5.9999.3+groups+inserted" ;
+	  if (is_lesser $version, $target) {
+	      debug "Inserting missing groups" ;
+
+	      @reqlist = (
+			  "INSERT INTO groups (group_name, homepage,
+                           is_public, status, unix_group_name, unix_box,
+                           http_domain, short_description, cvs_box, license,
+                           register_purpose, license_other, register_time,
+                           use_bugs, rand_hash, use_mail, use_survey, use_patch,
+                           use_forum, use_pm, use_cvs, use_news, use_support,
+                           new_bug_address, new_patch_address,
+                           new_support_address, type, use_docman, send_all_bugs,
+                           send_all_patches, send_all_support, new_task_address,
+                           send_all_tasks, use_bug_depend_box,
+                           use_pm_depend_box)
+       	                   VALUES ('Stats', '$domain_name/top/', 1,
+       	    	           'A', 'stats', '$shellbox', NULL, NULL, 'cvs',
+       	    	           'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0,
+       	    	           1, 1, '', '', '', 1, 1, 0, 0, 0, '', 0, 0, 0)",
+			  "INSERT INTO groups (group_name, homepage,
+                           is_public, status, unix_group_name, unix_box,
+                           http_domain, short_description, cvs_box, license,
+                           register_purpose, license_other, register_time,
+                           use_bugs, rand_hash, use_mail, use_survey, use_patch,
+                           use_forum, use_pm, use_cvs, use_news, use_support,
+                           new_bug_address, new_patch_address,
+                           new_support_address, type, use_docman, send_all_bugs,
+                           send_all_patches, send_all_support, new_task_address,
+                           send_all_tasks, use_bug_depend_box,
+                           use_pm_depend_box)
+                           VALUES ('Peer Ratings', '$domain_name/people/', 0,
+                           'A', 'peerrating', '$shellbox', NULL, NULL, 'cvs1',
+                           'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0,
+                           1, 1, '', '', '', 1, 0, 0, 0, 0, '', 0, 0, 0)"
+			  ) ;
+	      
+	      foreach my $s (@reqlist) {
+		  $query = $s ;
+		  debug $query ;
+		  $sth = $dbh->prepare ($query) ;
+		  $sth->execute () ;
+		  $sth->finish () ;
+	      }
+	      @reqlist = () ;
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
+
+	  $version = &get_db_version ;
+	  $target = "2.6-0" ;
+	  if (is_lesser $version, $target) {
+	      debug "Database has successfully been converted." ;
+	      $query = "DELETE FROM debian_meta_data WHERE key = 'current-path'" ;
+	      # debug $query ;
+	      $sth = $dbh->prepare ($query) ;
+	      $sth->execute () ;
+	      $sth->finish () ;
+	      
+	      &update_db_version ($target) ;
+	      debug "Committing." ;
+	      $dbh->commit () ;
+	  }
+
+	  last PATH_SWITCH ;
+      } ;
+  }
+    
     debug "It seems your database $action went well and smoothly.  That's cool." ;
     debug "Please enjoy using Debian Sourceforge." ;
     
@@ -277,96 +397,510 @@
     # This is a state machine to parse potentially complex SQL files
     # into individual SQL requests/statements
     
+    my %states = ('INIT' => 0,
+		  'SCAN' => 1,
+		  'SQL_SCAN' => 2,
+		  'IN_SQL' => 3,
+		  'END_SQL' => 4,
+		  'QUOTE_SCAN' => 5,
+		  'IN_QUOTE' => 6,
+		  'START_COPY' => 7,
+		  'IN_COPY' => 8,
+		  'ERROR' => 666,
+		  'DONE' => 999) ;
+    my ($state, $l, $par_level, $chunk, $rest, $sql, @sql_list, $copy_table, $copy_rest, @copy_data, @copy_data_tmp, $copy_field) ;
+
     # Init the state machine
 
-    my ($l, $level, $inquote, $chunk, $rest) ;
-    my $sql = "" ;
-    my @sql_list = () ;
+    $state = $states{INIT} ;
     
     # my $n = 0 ;
+    
+  STATE_LOOP: while ($state != $states{DONE}) { # State machine main loop
+      # debug "STATE_LOOP: state = $state" ;
+    STATE_SWITCH: {		# State machine step processing
+	$state == $states{INIT} && do {
+	    # debug "State = INIT" ;
+	    $par_level = 0 ;
+	    $l = $sql = $chunk = $rest = "" ;	 
+	    @sql_list = () ;
+	    $copy_table = $copy_rest = "" ;
+	    @copy_data = @copy_data_tmp = () ;
+	    $copy_field = "" ;
+	    
+	    $state = $states{SCAN} ;
+	    last STATE_SWITCH ;
+	} ;			# End of INIT state
+	
+	$state == $states{SCAN} && do {
+	    # debug "State = SCAN" ;
+	  SCAN_STATE_SWITCH: {
+	      ( ($l eq "") or ($l =~ /^\s*$/) or ($l =~ /^--/) ) && do {
+		  $l = <F> ;
+		  unless ($l) {
+		      $state = $states{DONE} ;
+		      last SCAN_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+		  
+		  last SCAN_STATE_SWITCH ;
+	      } ;
 
-  FILELOOP: while ($l = <F>) {	# Loop over the file
-      chomp $l ;
-      $level = 0 ;
-      $inquote = 0 ;
-      $chunk = "" ;
-      $rest = "" ;
-      
-    PARSELOOP: while (1) {	# Parse a request
+	      ( ($l =~ m/\s*copy\s+\"[\w_]+\"\s+from\s+stdin\s*;/i) 
+		or ($l =~ m/\s*copy\s+[\w_]+\s+from\s+stdin\s*;/i) ) && do {
+		    # Nothing to do
+		    
+		    $state = $states{START_COPY} ;
+		    last SCAN_STATE_SWITCH ;
+		} ;
+	      
+	      ( 1 ) && do {
+		  $sql = "" ;
 
-	while ( ($l eq "") or ((! $inquote) and ($l =~ /^\s*$/)) ) {
-	    $l = <F> ;
-	    if ($l) {
- 		chomp $l ;
- 	    } else {
- 		last PARSELOOP ;
- 	    }
-	}
-	($chunk, $rest) = ($l =~ /^([^()\\\';]*)(.*)/) ;
-	$sql .= $chunk ;
-	# debug "level = $level, inquote = $inquote, chunk = <$chunk>, rest = <$rest>, sql = <$sql>";
+		  $state = $states{SQL_SCAN} ;
+		  last SCAN_STATE_SWITCH ;
+	      } ;
 
-	# Here come the state transitions
-      SWITCH: {
-	  if ($rest =~ /^\(/) {	# Enter a paren block (unless we're inside a string)
-	      $level += 1 unless $inquote ;
-	      $sql .= '(' ;
-	      $rest = substr $rest, 1 ;
-	      last SWITCH;
-	  }
-	  if ($rest =~ /^\)/) {	# Exit a paren block (unless we're inside a string)
-	      $level -= 1 unless $inquote ;
-	      $sql .= ')' ;
-	      $rest = substr $rest, 1 ;
-	      last SWITCH;
-	  }
-	  if ($rest =~ /^\\\'/) { # Escaped single quote
-	      if (!$inquote) {
-		  debug "Encountered a \' sequence outside of a string." ;
-		  debug "This really shouldn't have happened." ;
-		  debug "I find it more prudent to just die now." ;
-		  die "\' outside of a string -- check SQL file" ;
-	      }
-	      $sql .= '\\\'' ;
-	      $rest = substr $rest, 2 ;
-	      last SWITCH;
-	  }
-	  if ($rest =~ /^\\/) { # Other backslash is a normal character
-	      $sql .= '\\' ;
-	      $rest = substr $rest, 1 ;
-	      last SWITCH;
-	  }
-	  if ($rest =~ /^;/) { # Semi-colon
-	      if ($inquote) { # If inside a string, treat as a normal character
+	  }			# SCAN_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of SCAN state
+	
+	$state == $states{SQL_SCAN} && do {
+	    # debug "State = SQL_SCAN" ;
+	  SQL_SCAN_STATE_SWITCH: {
+	      ( ($l eq "") or ($l =~ /^\s*$/) or ($l =~ /^--/) ) && do {
+		  $l = <F> ;
+		  unless ($l) {
+		      debug "End of file detected during an SQL statement." ;
+		      $state = $states{ERROR} ;
+		      last SQL_SCAN_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+		  
+		  $state = $states{SQL_SCAN} ;
+		  last SQL_SCAN_STATE_SWITCH ;
+	      } ;
+
+	      ( 1 ) && do {
+		  ($chunk, $rest) = ($l =~ /^([^()\';-]*)(.*)/) ;
+		  $sql .= $chunk ;
+		  
+		  $state = $states{IN_SQL} ;
+		  last SQL_SCAN_STATE_SWITCH ;
+	      } ;
+	      
+	  }			# SQL_SCAN_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of SQL_SCAN state
+	
+	$state == $states{IN_SQL} && do {
+	    # debug "State = IN_SQL" ;
+	  IN_SQL_STATE_SWITCH: {
+	      ($rest =~ /^\(/) && do {
+		  $par_level += 1 ;
+		  $sql .= '(' ;
+		  $rest = substr $rest, 1 ;
+		  $l = $rest ;
+
+		  $state = $states{SQL_SCAN} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ( ($rest =~ /^\)/) and ($par_level > 0) ) && do {
+		  $par_level -= 1 ;
+		  $sql .= ')' ;
+		  $rest = substr $rest, 1 ;
+		  $l = $rest ;
+		  
+		  $state = $states{SQL_SCAN} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^\)/) && do {
+		  debug "Detected ')' without any matching '('." ;
+		  $state = $states{ERROR} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^--/) && do {
+		  $rest = "" ;
+		  $l = $rest ;
+		  
+		  $state = $states{SQL_SCAN} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^-[^-]/) && do {
+		  $sql .= '-' ;
+		  $rest = substr $rest, 1 ;
+		  $l = $rest ;
+		  
+		  $state = $states{SQL_SCAN} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ( ($rest =~ /^;/) and ($par_level == 0) ) && do {
 		  $sql .= ';' ;
 		  $rest = substr $rest, 1 ;
-	      } elsif ($level == 0) { # If out of a string and toplevel, end of SQL statement
-		  last PARSELOOP;
-	      } else{ # What, a semi-colon by itself not at toplevel?
-		  debug "Encountered a semi-colon outside of a string and not at toplevel" ;
-		  debug "This really shouldn't have happened." ;
-		  debug "I find it more prudent to just die now." ;
-		  die "semi-colon outside of a string and not at toplevel -- check SQL file" ;
-	      }
-	      last SWITCH;
-	  }
-	  if ($rest =~ /^\'/) { # Non-escaped single quote -- string delimiter
-	      $inquote = $inquote ? 0 : 1 ; # Toggle $inquote
-	      $sql .= '\'' ;
-	      $rest = substr $rest, 1 ;
-	      last SWITCH;
-	  }
-      } # SWITCH
-	$l = $rest ;
-    } # PARSELOOP
-      
-      # (Do something with $sql now that we have it :-)
-      push @sql_list, $sql unless $sql eq "" ;
-      # $n++ ; debug "SQL OK $n" ;
-      $sql = "" ;
-  } # FILELOOP
-    
+		  
+		  $state = $states{END_SQL} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^;/) && do {
+		  debug "Detected ';' within a parenthesis." ;
+		  $state = $states{ERROR} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest eq "") && do {
+		  $l = $rest ;
+		  $sql .= " " ;
+
+		  $state = $states{SQL_SCAN} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^\'/) && do {
+		  $sql .= '\'' ;
+		  $rest = substr $rest, 1 ;
+		  $l = $rest ;
+		  
+		  $state = $states{IN_QUOTE} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+	      
+	      ( 1 ) && do {
+		  debug "Unknown event in IN_SQL state" ;
+		  $state = $states{ERROR} ;
+		  last IN_SQL_STATE_SWITCH ;
+	      } ;
+	  }			# IN_SQL_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of IN_SQL state
+
+	$state == $states{END_SQL} && do {
+	    # debug "State = END_SQL" ;
+	  END_SQL_STATE_SWITCH: {
+	      ($sql =~ /^\s*$/) && do {
+		  $sql = "" ;
+		  $l = $rest ;
+
+		  $state = $states{SCAN} ;
+		  last END_SQL_STATE_SWITCH ;
+	      } ;
+
+	      ( 1 ) && do {
+		  push @sql_list, $sql ;
+		  $sql = "" ;
+		  $l = $rest ;
+
+		  $state = $states{SCAN} ;
+		  last END_SQL_STATE_SWITCH ;
+	      } ;
+
+	  }			# END_SQL_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of END_SQL state
+
+	$state == $states{QUOTE_SCAN} && do {
+	    # debug "State = QUOTE_SCAN" ;
+	  QUOTE_SCAN_STATE_SWITCH: {
+	      ($rest eq "") && do {
+		  $sql .= "\n" ;
+		  $l = <F> ;
+		  unless ($l) {
+		      debug "Detected end of file inside a quoted string." ;
+		      $state = $states{ERROR} ;
+		      last QUOTE_SCAN_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+		  $rest = $l ;
+		  
+		  last QUOTE_SCAN_STATE_SWITCH ;
+	      } ;
+
+	      ( 1 ) && do {
+		  ($chunk, $rest) = ($l =~ /^([^\\\']*)(.*)/) ;
+		  # debug "chunk = $chunk" ;
+		  # debug "rest = $rest" ;
+		  $sql .= $chunk ;
+		  
+		  $state = $states{IN_QUOTE} ;
+		  last QUOTE_SCAN_STATE_SWITCH ;
+	      } ;
+
+	  }			# QUOTE_SCAN_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of QUOTE_SCAN state
+	
+	$state == $states{IN_QUOTE} && do {
+	    # debug "State = IN_QUOTE" ;
+	  IN_QUOTE_STATE_SWITCH: {
+	      ($rest =~ /^\'/) && do {
+		  $sql .= '\'' ;
+		  $rest = substr $rest, 1 ;
+		  $l = $rest ;
+		  
+		  $state = $states{SQL_SCAN} ;
+		  last IN_QUOTE_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^\\\'/) && do {
+		  $sql .= '\\\'' ;
+		  $rest = substr $rest, 2 ;
+		  
+		  last IN_QUOTE_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^\\[^\\]/) && do {
+		  $sql .= '\\' ;
+		  $rest = substr $rest, 1 ;
+		  
+		  last IN_QUOTE_STATE_SWITCH ;
+	      } ;
+
+	      ($rest =~ /^\\$/) && do {
+		  $sql .= "\n" ;
+		  $rest = substr $rest, 1 ;
+		  
+		  last IN_QUOTE_STATE_SWITCH ;
+	      } ;
+
+	      ( 1 ) && do {
+		  $l = $rest ;
+		  
+		  $state = $states{QUOTE_SCAN} ;
+		  last IN_QUOTE_STATE_SWITCH ;
+	      } ;
+
+	  }			# IN_QUOTE_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of IN_QUOTE state
+
+	$state == $states{START_COPY} && do {
+	    # debug "State = START_COPY" ;
+	  START_COPY_STATE_SWITCH: {
+	      ($l =~ m/\s*copy\s+\"[\w_]+\"\s+from\s+stdin\s*;/i) && do {
+		  ($copy_table, $copy_rest) = ($l =~ /\s*copy\s+\"([\w_]+)\"\s+from\s+stdin\s*;(.*)/i) ;
+		  $l = <F> ;
+		  unless ($l) {
+		      debug "Detected end of file within a COPY statement." ;
+		      $state = $states{ERROR} ;
+		      last START_COPY_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+		  
+		  $state = $states{IN_COPY} ;
+		  last START_COPY_STATE_SWITCH ;
+	      } ;
+
+	      ($l =~ m/\s*copy\s+[\w_]+\s+from\s+stdin\s*;/i) && do {
+		  ($copy_table, $copy_rest) = ($l =~ /\s*copy\s+([\w_]+)\s+from\s+stdin\s*;(.*)/i) ;
+		  $l = <F> ;
+		  unless ($l) {
+		      debug "Detected end of file within a COPY statement." ;
+		      $state = $states{ERROR} ;
+		      last START_COPY_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+
+		  $state = $states{IN_COPY} ;
+		  last START_COPY_STATE_SWITCH ;
+	      } ;
+	      
+	      ( 1 ) && do {
+		  debug "Unknown event in START_COPY state." ;
+		  $state = $states{ERROR} ;
+		  last START_COPY_STATE_SWITCH ;
+	      } ;
+
+	  }			# START_COPY_STATE_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of START_COPY state
+
+	$state == $states{IN_COPY} && do {
+	    # debug "State = IN_COPY" ;
+	  IN_COPY_STATE_SWITCH: {
+	      ($l =~ /^\\\.$/) && do {
+		  $l = $copy_rest ;
+
+		  $state = $states{SCAN} ;
+		  last IN_COPY_STATE_SWITCH ;
+	      } ;
+	      
+	      ( 1 ) && do {
+		  @copy_data = () ;
+		  @copy_data_tmp = split /\t/, $l ;
+		  foreach $copy_field (@copy_data_tmp) {
+		      if ($copy_field eq '\N') {
+			  $copy_field = 'NULL' ;
+		      } else {
+			  $copy_field =~ s/\'/\\\'/g ;
+			  $copy_field = "'" . $copy_field . "'" ;
+		      }
+		      push @copy_data, $copy_field ;
+		  }
+		  $sql = "INSERT INTO \"$copy_table\" VALUES (" ;
+		  $sql .= join (", ", @copy_data) ;
+		  $sql .= ")" ;
+		  push @sql_list, $sql ;
+		  $l = <F> ;
+		  unless ($l) {
+		      debug "Detected end of file within a COPY statement." ;
+		      $state = $states{ERROR} ;
+		      last IN_COPY_STATE_SWITCH ;
+		  }
+		  chomp $l ;
+
+		  last IN_COPY_STATE_SWITCH ;
+	      } ;
+
+	  }			# IN_COPY_SWITCH
+	    last STATE_SWITCH ;
+	} ;			# End of IN_COPY state
+
+	$state == $states{DONE} && do {
+	    # debug "State = DONE" ;
+	    last STATE_SWITCH ;
+	} ;			# End of DONE state
+
+	$state == $states{ERROR} && do {
+	    # debug "State = ERROR" ;
+	    debug "Reached the ERROR state.  Dying." ;
+	    die "State machine is buggy." ;
+	    
+	    last STATE_SWITCH ;
+	} ;			# End of ERROR state
+
+	( 1 ) && do {
+	    debug "State machine went in an unknown state...  Redirecting to ERROR." ;
+	    $state = $states{ERROR} ;
+	    last STATE_SWITCH ;
+	} ;
+
+    }				# STATE_SWITCH
+  }				# STATE_LOOP
+
     close F ;
-    
     return \@sql_list ;
 }
+
+sub create_metadata_table ( $ ) {
+    my $v = shift || "2.5-7+just+before+8" ;
+    # Do we have the metadata table?
+
+    my $query = "SELECT count(*) from pg_class where relname = 'debian_meta_data'";
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    # Let's create this table if we have it not
+
+    if ($array [0] == 0) {
+	debug "Creating debian_meta_data table." ;
+	$query = "CREATE TABLE debian_meta_data (key varchar primary key, value text not null)" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+    
+    $query = "SELECT count(*) from debian_meta_data where key = 'db-version'";
+    # debug $query ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    # Empty table?  We'll have to fill it up a bit
+
+    if ($array [0] == 0) {
+	debug "Inserting first data into debian_meta_data table." ;
+	$query = "INSERT INTO debian_meta_data (key, value) VALUES ('db-version', '$v')" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub update_db_version ( $ ) {
+    my $v = shift or die "Not enough arguments" ;
+
+    debug "Updating debian_meta_data table." ;
+    my $query = "UPDATE debian_meta_data SET value = '$v' where key = 'db-version'" ;
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    $sth->finish () ;
+}
+
+sub get_db_version () {
+    my $query = "select value from debian_meta_data where key = 'db-version'" ;
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+    
+    my $version = $array [0] ;
+
+    return $version ;
+}
+
+sub drop_table_if_exists ( $ ) {
+    my $tname = shift or die  "Not enough arguments" ;
+    my $query = "select count(*) from pg_class where relname='$tname'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+    
+    if ($array [0] != 0) {
+	# debug "Dropping table $tname" ;
+	$query = "drop table $tname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_sequence_if_exists ( $ ) {
+    my $sname = shift or die  "Not enough arguments" ;
+    my $query = "select count(*) from pg_class where relname='$sname'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+    
+    if ($array [0] != 0) {
+	# debug "Dropping sequence $sname" ;
+	$query = "drop sequence $sname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_index_if_exists ( $ ) {
+    my $iname = shift or die  "Not enough arguments" ;
+    my $query = "select count(*) from pg_class where relname='$iname'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+    
+    if ($array [0] != 0) {
+	# debug "Dropping index $iname" ;
+	$query = "drop index $iname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}

Deleted: trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade26.pl
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade26.pl	2010-02-25 14:30:41 UTC (rev 606)
+++ trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade26.pl	2010-02-25 14:30:46 UTC (rev 607)
@@ -1,906 +0,0 @@
-#!/usr/bin/perl -w
-#
-# $Id$
-#
-# Debian-specific script to upgrade the database between releases
-# Roland Mas <lolando at debian.org>
-
-use strict ;
-use diagnostics ;
-
-use DBI ;
-use MIME::Base64 ;
-use HTML::Entities ;
-
-use vars qw/$dbh @reqlist/ ;
-use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
-    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
-    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
-    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
-    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
-    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
-    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
-    $skill_list/ ;
-
-sub is_lesser ( $$ ) ;
-sub is_greater ( $$ ) ;
-sub debug ( $ ) ;
-sub parse_sql_file ( $ ) ;
-
-require ("/usr/lib/sourceforge/lib/include.pl") ; # Include all the predefined functions 
-
-debug "You'll see some debugging info during this installation." ;
-debug "Do not worry unless told otherwise." ;
-
-&db_connect ;
-
-# debug "Connected to the database OK." ;
-
-$dbh->{AutoCommit} = 0;
-$dbh->{RaiseError} = 1;
-eval {
-    my ($query, $sth, @array, $version, $action, $path, $target) ;
-
-    # Do we have at least the basic schema?
-
-    $query = "SELECT count(*) from pg_class where relname = 'groups'";
-    # debug $query ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    # Create Sourceforge database
-
-    if ($array [0] == 0) {
-	# Installing SF 2.6 from scratch
-	$action = "installation" ;
-	debug "Creating initial Sourceforge database from files." ;
-
-	&create_metadata_table ("2.5.9999") ;
-
-	debug "Updating debian_meta_data table." ;
-	$query = "INSERT INTO debian_meta_data (key, value) VALUES ('current-path', 'scratch-to-2.6')" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-	debug "Committing." ;
-	$dbh->commit () ;
-
-    } else {
-	$action = "upgrade" ;
-
-	$version = &get_db_version ;
-	if (is_lesser $version, "2.5.9999") {
-	    debug "Found an old (2.5) database, will upgrade to 2.6" ;
-	    
-	    $query = "SELECT count(*) from debian_meta_data where key = 'current-path'";
-	    # debug $query ;
-	    $sth = $dbh->prepare ($query) ;
-	    $sth->execute () ;
-	    @array = $sth->fetchrow_array () ;
-	    $sth->finish () ;
-
-	    if ($array[0] == 0) {
-		# debug "Updating debian_meta_data table." ;
-		$query = "INSERT INTO debian_meta_data (key, value) VALUES ('current-path', '2.5-to-2.6')" ;
-		# debug $query ;
-		$sth = $dbh->prepare ($query) ;
-		$sth->execute () ;
-		$sth->finish () ;
-		debug "Committing." ;
-		$dbh->commit () ;
-	    }
-	}
-    }
-
-    $query = "SELECT count(*) from debian_meta_data where key = 'current-path'";
-    # debug $query ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array[0] == 0) {
-	$path = "" ;
-    } else {
-	$query = "SELECT value from debian_meta_data where key = 'current-path'";
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	@array = $sth->fetchrow_array () ;
-	$sth->finish () ;
-	
-	$path = $array[0] ;
-    }
-
-  PATH_SWITCH: {
-      ($path eq 'scratch-to-2.6') && do {
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.1+global+data+done" ;
-	  if (is_lesser $version, $target) {
-	      my @filelist = qw{ /usr/lib/sourceforge/db/sf-2.6-complete.sql } ;
-	      # TODO: user_rating.sql
-
-	      foreach my $file (@filelist) {
-		  debug "Processing $file" ;
-		  @reqlist = @{ &parse_sql_file ($file) } ;
-		  
-		  foreach my $s (@reqlist) {
-		      $query = $s ;
-		      # debug $query ;
-		      $sth = $dbh->prepare ($query) ;
-		      $sth->execute () ;
-		      $sth->finish () ;
-		  }
-	      }
-	      @reqlist = () ;
-	      
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.2+local+data+done" ;
-	  if (is_lesser $version, $target) {
-	      debug "Adding local data." ;
-	      
-	      do "/etc/sourceforge/local.pl" or die "Cannot read /etc/sourceforge/local.pl" ;
-	      
-	      my ($login, $pwd, $md5pwd, $email, $shellbox, $noreplymail, $date) ;
-	      
-	      $login = $admin_login ;
-	      $pwd = $admin_password ;
-	      $md5pwd=qx/echo -n $pwd | md5sum/ ;
-	      chomp $md5pwd ;
-	      $email = $server_admin ;
-	      $shellbox = "shell" ;
-	      $noreplymail="noreply\@$domain_name" ;
-	      $date = time () ;
-	      
-	      @reqlist = (
-			  "UPDATE groups SET homepage = '$domain_name/admin/' where group_id = 1",
-			  "UPDATE groups SET homepage = '$domain_name/news/' where group_id = 2",
-			  "UPDATE groups SET homepage = '$domain_name/stats/' where group_id = 3",
-			  "UPDATE groups SET homepage = '$domain_name/peerrating/' where group_id = 4",
-			  "UPDATE users SET email = '$noreplymail' where user_id = 100",
-			  "INSERT INTO users VALUES (101,'$login','$email','$md5pwd','Sourceforge admin','A','/bin/bash','','N',2000,'$shellbox',$date,'',1,0,NULL,NULL,0,'','GMT', 1, 0)", 
-			  "SELECT setval ('\"users_pk_seq\"', 102, 'f')",
-			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 1, 'A')",
-			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 2, 'A')",
-			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 3, 'A')",
-			  "INSERT INTO user_group (user_id, group_id, admin_flags) VALUES (101, 4, 'A')"
-			  ) ;
-	      
-	      foreach my $s (@reqlist) {
-		  $query = $s ;
-		  # debug $query ;
-		  $sth = $dbh->prepare ($query) ;
-		  $sth->execute () ;
-		  $sth->finish () ;
-	      }
-	      @reqlist = () ;
-	      
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-	  
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.3+skills+done" ;
-	  if (is_lesser $version, $target) {
-	      debug "Inserting skills." ;
-	      
-	      foreach my $skill (split /;/, $skill_list) {
-		  push @reqlist, "INSERT INTO people_skill (name) VALUES ('$skill')" ;
-	      }
-	      
-	      foreach my $s (@reqlist) {
-		  $query = $s ;
-		  # debug $query ;
-		  $sth = $dbh->prepare ($query) ;
-		  $sth->execute () ;
-		  $sth->finish () ;
-	      }
-	      @reqlist = () ;
-	      
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  $version = &get_db_version ;
-	  $target = "2.6-0" ;
-	  if (is_lesser $version, $target) {
-	      debug "Updating debian_meta_data table." ;
-	      $query = "DELETE FROM debian_meta_data WHERE key = 'current-path'" ;
-	      # debug $query ;
-	      $sth = $dbh->prepare ($query) ;
-	      $sth->execute () ;
-	      $sth->finish () ;
-	      
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  last PATH_SWITCH ;
-      } ;
-
-      ($path eq '2.5-to-2.6') && do {
-	  
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.1+data+upgraded" ;
-	  if (is_lesser $version, $target) {
-	      debug "Upgrading your database scheme from 2.5" ;
-
-	      @reqlist = @{ &parse_sql_file ("/usr/lib/sourceforge/db/sf2.5-to-sf2.6.sql") } ;
-	      foreach my $s (@reqlist) {
-		  $query = $s ;
-		  debug $query ;
-		  $sth = $dbh->prepare ($query) ;
-		  $sth->execute () ;
-		  $sth->finish () ;
-	      }
-	      @reqlist = () ;
-
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.2+artifact+transcoded" ;
-	  if (is_lesser $version, $target) {
-	      debug "Transcoding the artifact data fields" ;
-
-	      $query = "SELECT id,bin_data FROM artifact_file ORDER BY id ASC" ;
-	      # debug $query ;
-	      $sth = $dbh->prepare ($query) ;
-	      $sth->execute () ;
-	      while (@array = $sth->fetchrow_array) {
-		  my $query2 = "UPDATE artifact_file SET bin_data='" ;
-		  $query2 .= encode_base64 (decode_entities ($array [1])) ;
-		  $query2 .= "' WHERE id=" ;
-		  $query2 .= $array [0] ;
-		  $query2 .= "" ;
-		  # debug $query2 ;
-		  my $sth2 =$dbh->prepare ($query2) ;
-		  $sth2->execute () ;
-		  $sth2->finish () ;
-	      }
-	      $sth->finish () ;
-
-	  $version = &get_db_version ;
-	  $target = "2.5.9999.3+groups+inserted" ;
-	  if (is_lesser $version, $target) {
-	      debug "Inserting missing groups" ;
-
-	      @reqlist = (
-			  "INSERT INTO groups (group_name, homepage,
-                           is_public, status, unix_group_name, unix_box,
-                           http_domain, short_description, cvs_box, license,
-                           register_purpose, license_other, register_time,
-                           use_bugs, rand_hash, use_mail, use_survey, use_patch,
-                           use_forum, use_pm, use_cvs, use_news, use_support,
-                           new_bug_address, new_patch_address,
-                           new_support_address, type, use_docman, send_all_bugs,
-                           send_all_patches, send_all_support, new_task_address,
-                           send_all_tasks, use_bug_depend_box,
-                           use_pm_depend_box)
-       	                   VALUES ('Stats', '$domain_name/top/', 1,
-       	    	           'A', 'stats', '$shellbox', NULL, NULL, 'cvs',
-       	    	           'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0,
-       	    	           1, 1, '', '', '', 1, 1, 0, 0, 0, '', 0, 0, 0)",
-			  "INSERT INTO groups (group_name, homepage,
-                           is_public, status, unix_group_name, unix_box,
-                           http_domain, short_description, cvs_box, license,
-                           register_purpose, license_other, register_time,
-                           use_bugs, rand_hash, use_mail, use_survey, use_patch,
-                           use_forum, use_pm, use_cvs, use_news, use_support,
-                           new_bug_address, new_patch_address,
-                           new_support_address, type, use_docman, send_all_bugs,
-                           send_all_patches, send_all_support, new_task_address,
-                           send_all_tasks, use_bug_depend_box,
-                           use_pm_depend_box)
-                           VALUES ('Peer Ratings', '$domain_name/people/', 0,
-                           'A', 'peerrating', '$shellbox', NULL, NULL, 'cvs1',
-                           'website', NULL, NULL, 0, 0, NULL, 1, 0, 0, 0, 0, 0,
-                           1, 1, '', '', '', 1, 0, 0, 0, 0, '', 0, 0, 0)"
-			  ) ;
-	      
-	      foreach my $s (@reqlist) {
-		  $query = $s ;
-		  debug $query ;
-		  $sth = $dbh->prepare ($query) ;
-		  $sth->execute () ;
-		  $sth->finish () ;
-	      }
-	      @reqlist = () ;
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  $version = &get_db_version ;
-	  $target = "2.6-0" ;
-	  if (is_lesser $version, $target) {
-	      debug "Database has successfully been converted." ;
-	      $query = "DELETE FROM debian_meta_data WHERE key = 'current-path'" ;
-	      # debug $query ;
-	      $sth = $dbh->prepare ($query) ;
-	      $sth->execute () ;
-	      $sth->finish () ;
-	      
-	      &update_db_version ($target) ;
-	      debug "Committing." ;
-	      $dbh->commit () ;
-	  }
-
-	  last PATH_SWITCH ;
-      } ;
-  }
-    
-    debug "It seems your database $action went well and smoothly.  That's cool." ;
-    debug "Please enjoy using Debian Sourceforge." ;
-    
-    # There should be a commit at the end of every block above.
-    # If there is not, then it might be symptomatic of a problem.
-    # For safety, we roll back.
-    $dbh->rollback ();
-};
-
-if ($@) {
-    warn "Transaction aborted because $@" ;
-    debug "Transaction aborted because $@" ;
-    $dbh->rollback ;
-    debug "Please report this bug on the Debian bug-tracking system." ;
-    debug "Please include the previous messages as well to help debugging." ;
-    debug "You should not worry too much about this," ;
-    debug "your DB is still in a consistent state and should be usable." ;
-    exit 1 ;
-}
-
-$dbh->rollback ;
-$dbh->disconnect ;
-
-sub is_lesser ( $$ ) {
-    my $v1 = shift || 0 ;
-    my $v2 = shift || 0 ;
-
-    my $rc = system "dpkg --compare-versions $v1 lt $v2" ;
-    
-    return (! $rc) ;
-}
-
-sub is_greater ( $$ ) {
-    my $v1 = shift || 0 ;
-    my $v2 = shift || 0 ;
-
-    my $rc = system "dpkg --compare-versions $v1 gt $v2" ;
-    
-    return (! $rc) ;
-}
-
-sub debug ( $ ) {
-    my $v = shift ;
-    chomp $v ;
-    print STDERR "$v\n" ;
-}
-
-sub parse_sql_file ( $ ) {
-    my $f = shift ;
-    open F, $f || die "Could not open file $f: $!\n" ;
-
-    # This is a state machine to parse potentially complex SQL files
-    # into individual SQL requests/statements
-    
-    my %states = ('INIT' => 0,
-		  'SCAN' => 1,
-		  'SQL_SCAN' => 2,
-		  'IN_SQL' => 3,
-		  'END_SQL' => 4,
-		  'QUOTE_SCAN' => 5,
-		  'IN_QUOTE' => 6,
-		  'START_COPY' => 7,
-		  'IN_COPY' => 8,
-		  'ERROR' => 666,
-		  'DONE' => 999) ;
-    my ($state, $l, $par_level, $chunk, $rest, $sql, @sql_list, $copy_table, $copy_rest, @copy_data, @copy_data_tmp, $copy_field) ;
-
-    # Init the state machine
-
-    $state = $states{INIT} ;
-    
-    # my $n = 0 ;
-    
-  STATE_LOOP: while ($state != $states{DONE}) { # State machine main loop
-      # debug "STATE_LOOP: state = $state" ;
-    STATE_SWITCH: {		# State machine step processing
-	$state == $states{INIT} && do {
-	    # debug "State = INIT" ;
-	    $par_level = 0 ;
-	    $l = $sql = $chunk = $rest = "" ;	 
-	    @sql_list = () ;
-	    $copy_table = $copy_rest = "" ;
-	    @copy_data = @copy_data_tmp = () ;
-	    $copy_field = "" ;
-	    
-	    $state = $states{SCAN} ;
-	    last STATE_SWITCH ;
-	} ;			# End of INIT state
-	
-	$state == $states{SCAN} && do {
-	    # debug "State = SCAN" ;
-	  SCAN_STATE_SWITCH: {
-	      ( ($l eq "") or ($l =~ /^\s*$/) or ($l =~ /^--/) ) && do {
-		  $l = <F> ;
-		  unless ($l) {
-		      $state = $states{DONE} ;
-		      last SCAN_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-		  
-		  last SCAN_STATE_SWITCH ;
-	      } ;
-
-	      ( ($l =~ m/\s*copy\s+\"[\w_]+\"\s+from\s+stdin\s*;/i) 
-		or ($l =~ m/\s*copy\s+[\w_]+\s+from\s+stdin\s*;/i) ) && do {
-		    # Nothing to do
-		    
-		    $state = $states{START_COPY} ;
-		    last SCAN_STATE_SWITCH ;
-		} ;
-	      
-	      ( 1 ) && do {
-		  $sql = "" ;
-
-		  $state = $states{SQL_SCAN} ;
-		  last SCAN_STATE_SWITCH ;
-	      } ;
-
-	  }			# SCAN_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of SCAN state
-	
-	$state == $states{SQL_SCAN} && do {
-	    # debug "State = SQL_SCAN" ;
-	  SQL_SCAN_STATE_SWITCH: {
-	      ( ($l eq "") or ($l =~ /^\s*$/) or ($l =~ /^--/) ) && do {
-		  $l = <F> ;
-		  unless ($l) {
-		      debug "End of file detected during an SQL statement." ;
-		      $state = $states{ERROR} ;
-		      last SQL_SCAN_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-		  
-		  $state = $states{SQL_SCAN} ;
-		  last SQL_SCAN_STATE_SWITCH ;
-	      } ;
-
-	      ( 1 ) && do {
-		  ($chunk, $rest) = ($l =~ /^([^()\';-]*)(.*)/) ;
-		  $sql .= $chunk ;
-		  
-		  $state = $states{IN_SQL} ;
-		  last SQL_SCAN_STATE_SWITCH ;
-	      } ;
-	      
-	  }			# SQL_SCAN_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of SQL_SCAN state
-	
-	$state == $states{IN_SQL} && do {
-	    # debug "State = IN_SQL" ;
-	  IN_SQL_STATE_SWITCH: {
-	      ($rest =~ /^\(/) && do {
-		  $par_level += 1 ;
-		  $sql .= '(' ;
-		  $rest = substr $rest, 1 ;
-		  $l = $rest ;
-
-		  $state = $states{SQL_SCAN} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ( ($rest =~ /^\)/) and ($par_level > 0) ) && do {
-		  $par_level -= 1 ;
-		  $sql .= ')' ;
-		  $rest = substr $rest, 1 ;
-		  $l = $rest ;
-		  
-		  $state = $states{SQL_SCAN} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^\)/) && do {
-		  debug "Detected ')' without any matching '('." ;
-		  $state = $states{ERROR} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^--/) && do {
-		  $rest = "" ;
-		  $l = $rest ;
-		  
-		  $state = $states{SQL_SCAN} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^-[^-]/) && do {
-		  $sql .= '-' ;
-		  $rest = substr $rest, 1 ;
-		  $l = $rest ;
-		  
-		  $state = $states{SQL_SCAN} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ( ($rest =~ /^;/) and ($par_level == 0) ) && do {
-		  $sql .= ';' ;
-		  $rest = substr $rest, 1 ;
-		  
-		  $state = $states{END_SQL} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^;/) && do {
-		  debug "Detected ';' within a parenthesis." ;
-		  $state = $states{ERROR} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest eq "") && do {
-		  $l = $rest ;
-		  $sql .= " " ;
-
-		  $state = $states{SQL_SCAN} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^\'/) && do {
-		  $sql .= '\'' ;
-		  $rest = substr $rest, 1 ;
-		  $l = $rest ;
-		  
-		  $state = $states{IN_QUOTE} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-	      
-	      ( 1 ) && do {
-		  debug "Unknown event in IN_SQL state" ;
-		  $state = $states{ERROR} ;
-		  last IN_SQL_STATE_SWITCH ;
-	      } ;
-	  }			# IN_SQL_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of IN_SQL state
-
-	$state == $states{END_SQL} && do {
-	    # debug "State = END_SQL" ;
-	  END_SQL_STATE_SWITCH: {
-	      ($sql =~ /^\s*$/) && do {
-		  $sql = "" ;
-		  $l = $rest ;
-
-		  $state = $states{SCAN} ;
-		  last END_SQL_STATE_SWITCH ;
-	      } ;
-
-	      ( 1 ) && do {
-		  push @sql_list, $sql ;
-		  $sql = "" ;
-		  $l = $rest ;
-
-		  $state = $states{SCAN} ;
-		  last END_SQL_STATE_SWITCH ;
-	      } ;
-
-	  }			# END_SQL_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of END_SQL state
-
-	$state == $states{QUOTE_SCAN} && do {
-	    # debug "State = QUOTE_SCAN" ;
-	  QUOTE_SCAN_STATE_SWITCH: {
-	      ($rest eq "") && do {
-		  $sql .= "\n" ;
-		  $l = <F> ;
-		  unless ($l) {
-		      debug "Detected end of file inside a quoted string." ;
-		      $state = $states{ERROR} ;
-		      last QUOTE_SCAN_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-		  $rest = $l ;
-		  
-		  last QUOTE_SCAN_STATE_SWITCH ;
-	      } ;
-
-	      ( 1 ) && do {
-		  ($chunk, $rest) = ($l =~ /^([^\\\']*)(.*)/) ;
-		  # debug "chunk = $chunk" ;
-		  # debug "rest = $rest" ;
-		  $sql .= $chunk ;
-		  
-		  $state = $states{IN_QUOTE} ;
-		  last QUOTE_SCAN_STATE_SWITCH ;
-	      } ;
-
-	  }			# QUOTE_SCAN_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of QUOTE_SCAN state
-	
-	$state == $states{IN_QUOTE} && do {
-	    # debug "State = IN_QUOTE" ;
-	  IN_QUOTE_STATE_SWITCH: {
-	      ($rest =~ /^\'/) && do {
-		  $sql .= '\'' ;
-		  $rest = substr $rest, 1 ;
-		  $l = $rest ;
-		  
-		  $state = $states{SQL_SCAN} ;
-		  last IN_QUOTE_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^\\\'/) && do {
-		  $sql .= '\\\'' ;
-		  $rest = substr $rest, 2 ;
-		  
-		  last IN_QUOTE_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^\\[^\\]/) && do {
-		  $sql .= '\\' ;
-		  $rest = substr $rest, 1 ;
-		  
-		  last IN_QUOTE_STATE_SWITCH ;
-	      } ;
-
-	      ($rest =~ /^\\$/) && do {
-		  $sql .= "\n" ;
-		  $rest = substr $rest, 1 ;
-		  
-		  last IN_QUOTE_STATE_SWITCH ;
-	      } ;
-
-	      ( 1 ) && do {
-		  $l = $rest ;
-		  
-		  $state = $states{QUOTE_SCAN} ;
-		  last IN_QUOTE_STATE_SWITCH ;
-	      } ;
-
-	  }			# IN_QUOTE_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of IN_QUOTE state
-
-	$state == $states{START_COPY} && do {
-	    # debug "State = START_COPY" ;
-	  START_COPY_STATE_SWITCH: {
-	      ($l =~ m/\s*copy\s+\"[\w_]+\"\s+from\s+stdin\s*;/i) && do {
-		  ($copy_table, $copy_rest) = ($l =~ /\s*copy\s+\"([\w_]+)\"\s+from\s+stdin\s*;(.*)/i) ;
-		  $l = <F> ;
-		  unless ($l) {
-		      debug "Detected end of file within a COPY statement." ;
-		      $state = $states{ERROR} ;
-		      last START_COPY_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-		  
-		  $state = $states{IN_COPY} ;
-		  last START_COPY_STATE_SWITCH ;
-	      } ;
-
-	      ($l =~ m/\s*copy\s+[\w_]+\s+from\s+stdin\s*;/i) && do {
-		  ($copy_table, $copy_rest) = ($l =~ /\s*copy\s+([\w_]+)\s+from\s+stdin\s*;(.*)/i) ;
-		  $l = <F> ;
-		  unless ($l) {
-		      debug "Detected end of file within a COPY statement." ;
-		      $state = $states{ERROR} ;
-		      last START_COPY_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-
-		  $state = $states{IN_COPY} ;
-		  last START_COPY_STATE_SWITCH ;
-	      } ;
-	      
-	      ( 1 ) && do {
-		  debug "Unknown event in START_COPY state." ;
-		  $state = $states{ERROR} ;
-		  last START_COPY_STATE_SWITCH ;
-	      } ;
-
-	  }			# START_COPY_STATE_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of START_COPY state
-
-	$state == $states{IN_COPY} && do {
-	    # debug "State = IN_COPY" ;
-	  IN_COPY_STATE_SWITCH: {
-	      ($l =~ /^\\\.$/) && do {
-		  $l = $copy_rest ;
-
-		  $state = $states{SCAN} ;
-		  last IN_COPY_STATE_SWITCH ;
-	      } ;
-	      
-	      ( 1 ) && do {
-		  @copy_data = () ;
-		  @copy_data_tmp = split /\t/, $l ;
-		  foreach $copy_field (@copy_data_tmp) {
-		      if ($copy_field eq '\N') {
-			  $copy_field = 'NULL' ;
-		      } else {
-			  $copy_field =~ s/\'/\\\'/g ;
-			  $copy_field = "'" . $copy_field . "'" ;
-		      }
-		      push @copy_data, $copy_field ;
-		  }
-		  $sql = "INSERT INTO \"$copy_table\" VALUES (" ;
-		  $sql .= join (", ", @copy_data) ;
-		  $sql .= ")" ;
-		  push @sql_list, $sql ;
-		  $l = <F> ;
-		  unless ($l) {
-		      debug "Detected end of file within a COPY statement." ;
-		      $state = $states{ERROR} ;
-		      last IN_COPY_STATE_SWITCH ;
-		  }
-		  chomp $l ;
-
-		  last IN_COPY_STATE_SWITCH ;
-	      } ;
-
-	  }			# IN_COPY_SWITCH
-	    last STATE_SWITCH ;
-	} ;			# End of IN_COPY state
-
-	$state == $states{DONE} && do {
-	    # debug "State = DONE" ;
-	    last STATE_SWITCH ;
-	} ;			# End of DONE state
-
-	$state == $states{ERROR} && do {
-	    # debug "State = ERROR" ;
-	    debug "Reached the ERROR state.  Dying." ;
-	    die "State machine is buggy." ;
-	    
-	    last STATE_SWITCH ;
-	} ;			# End of ERROR state
-
-	( 1 ) && do {
-	    debug "State machine went in an unknown state...  Redirecting to ERROR." ;
-	    $state = $states{ERROR} ;
-	    last STATE_SWITCH ;
-	} ;
-
-    }				# STATE_SWITCH
-  }				# STATE_LOOP
-
-    close F ;
-    return \@sql_list ;
-}
-
-sub create_metadata_table ( $ ) {
-    my $v = shift || "2.5-7+just+before+8" ;
-    # Do we have the metadata table?
-
-    my $query = "SELECT count(*) from pg_class where relname = 'debian_meta_data'";
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    # Let's create this table if we have it not
-
-    if ($array [0] == 0) {
-	debug "Creating debian_meta_data table." ;
-	$query = "CREATE TABLE debian_meta_data (key varchar primary key, value text not null)" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-    
-    $query = "SELECT count(*) from debian_meta_data where key = 'db-version'";
-    # debug $query ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    # Empty table?  We'll have to fill it up a bit
-
-    if ($array [0] == 0) {
-	debug "Inserting first data into debian_meta_data table." ;
-	$query = "INSERT INTO debian_meta_data (key, value) VALUES ('db-version', '$v')" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub update_db_version ( $ ) {
-    my $v = shift or die "Not enough arguments" ;
-
-    debug "Updating debian_meta_data table." ;
-    my $query = "UPDATE debian_meta_data SET value = '$v' where key = 'db-version'" ;
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    $sth->finish () ;
-}
-
-sub get_db_version () {
-    my $query = "select value from debian_meta_data where key = 'db-version'" ;
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-    
-    my $version = $array [0] ;
-
-    return $version ;
-}
-
-sub drop_table_if_exists ( $ ) {
-    my $tname = shift or die  "Not enough arguments" ;
-    my $query = "select count(*) from pg_class where relname='$tname'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-    
-    if ($array [0] != 0) {
-	# debug "Dropping table $tname" ;
-	$query = "drop table $tname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_sequence_if_exists ( $ ) {
-    my $sname = shift or die  "Not enough arguments" ;
-    my $query = "select count(*) from pg_class where relname='$sname'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-    
-    if ($array [0] != 0) {
-	# debug "Dropping sequence $sname" ;
-	$query = "drop sequence $sname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_index_if_exists ( $ ) {
-    my $iname = shift or die  "Not enough arguments" ;
-    my $query = "select count(*) from pg_class where relname='$iname'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-    
-    if ($array [0] != 0) {
-	# debug "Dropping index $iname" ;
-	$query = "drop index $iname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}

Modified: trunk/gforge_base/evolvisforge/gforge/deb-specific/install-db.sh
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/deb-specific/install-db.sh	2010-02-25 14:30:41 UTC (rev 606)
+++ trunk/gforge_base/evolvisforge/gforge/deb-specific/install-db.sh	2010-02-25 14:30:46 UTC (rev 607)
@@ -84,7 +84,7 @@
 #$db_passwd
 #FIN
 	kill -HUP $(head -1 /var/lib/postgres/data/postmaster.pid)
-	/usr/lib/sourceforge/bin/db-upgrade26.pl 2>&1 | grep -v ^NOTICE:
+	/usr/lib/sourceforge/bin/db-upgrade.pl 2>&1 | grep -v ^NOTICE:
 	;;
     purge-files)
 	cp -a /etc/postgresql/pg_hba.conf /etc/postgresql/pg_hba.conf.sourceforge-new

Modified: trunk/gforge_base/evolvisforge/gforge/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/debian/changelog	2010-02-25 14:30:41 UTC (rev 606)
+++ trunk/gforge_base/evolvisforge/gforge/debian/changelog	2010-02-25 14:30:46 UTC (rev 607)
@@ -2,8 +2,9 @@
 
   * Let's continue
   * [Christian] Added dependancy on rcs for our patched cvsweb
+  * [Roland] Renamed db-upgrade26.pl to db-upgrade.pl.
 
- -- Christian Bayle <bayle at aist.enst.fr>  Tue, 12 Mar 2002 07:34:03 +0100
+ -- Roland Mas <lolando at debian.org>  Thu, 14 Mar 2002 18:39:29 +0100
 
 sourceforge (2.6-0+8) unstable; urgency=low
 

Modified: trunk/gforge_base/evolvisforge/gforge/debian/rules
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/debian/rules	2010-02-25 14:30:41 UTC (rev 606)
+++ trunk/gforge_base/evolvisforge/gforge/debian/rules	2010-02-25 14:30:46 UTC (rev 607)
@@ -104,7 +104,6 @@
 	install -m 755 deb-specific/install-db.sh $(CURDIR)/debian/sourceforge/usr/lib/sourceforge/bin/
 	install -m 755 deb-specific/install-apache.sh $(CURDIR)/debian/sourceforge/usr/lib/sourceforge/bin/
 	install -m 755 deb-specific/db-upgrade.pl $(CURDIR)/debian/sourceforge/usr/lib/sourceforge/bin/
-	install -m 755 deb-specific/db-upgrade26.pl $(CURDIR)/debian/sourceforge/usr/lib/sourceforge/bin/
 	install -m 755 deb-specific/fill-in-the-blanks.pl $(CURDIR)/debian/sourceforge/usr/lib/sourceforge/bin/
 	# install -m 755 deb-specific/sf-add-skill $(CURDIR)/debian/sourceforge/usr/bin/
 	# install -m 755 deb-specific/sf-register-theme $(CURDIR)/debian/sourceforge/usr/bin/




More information about the evolvis-commits mailing list