| Line 155... |
Line 155... |
| 155 |
// Subversion TAG validation
|
155 |
// Subversion TAG validation
|
| 156 |
var SVNTagValidCharsRE = /^[0-9a-z_\.\-\/\@]+$/i;
|
156 |
var SVNTagValidCharsRE = /^[0-9a-z_\.\-\/\@]+$/i;
|
| 157 |
var SVNTagInValidTrunkAnywhereRE = /\/trunk\//i;
|
157 |
var SVNTagInValidTrunkAnywhereRE = /\/trunk\//i;
|
| 158 |
var SVNTagInValidAt = /@[0-9]*[^0-9$]+/i;
|
158 |
var SVNTagInValidAt = /@[0-9]*[^0-9$]+/i;
|
| 159 |
var SVNTagInValidSlashAtBOL = /^\/.*$/i;
|
159 |
var SVNTagInValidSlashAtBOL = /^\/.*$/i;
|
| 160 |
var SVNTagInValidTrunkRE = /\/trunk[^@$]+/i;
|
160 |
var SVNTagInValidTrunkRE = /\/trunk[^@]+/i;
|
| 161 |
var SVNTagInValidSlashAt = /\/@/i;
|
161 |
var SVNTagInValidSlashAt = /\/@/i;
|
| 162 |
var SVNTagInValidAtSlash = /@\//i;
|
162 |
var SVNTagInValidAtSlash = /@\//i;
|
| 163 |
var SVNTagInValidSlash = /^.*\/\/.*$/i;
|
163 |
var SVNTagInValidSlash = /^.*\/\/.*$/i;
|
| 164 |
var SVNTagValidTagAnywhereRE = /^.*\/tags\/.*$/i;
|
164 |
var SVNTagValidTagAnywhereRE = /^.*\/tags\/.*$/i;
|
| 165 |
var SVNTagValidBranchAnywhereRE = /^.*\/branches\/.*$/i;
|
165 |
var SVNTagValidBranchAnywhereRE = /^.*\/branches\/.*$/i;
|
| 166 |
var SVNTagValidTrunkEOLRE = /^.*\/trunk$/i;
|
- |
|
| 167 |
var SVNTagValidTrunkAtNumberRE = /^.*\/trunk@[0-9]+$/i;
|
166 |
var SVNTagValidTrunkAtNumberRE = /^.*\/trunk@[0-9]+$/i;
|
| 168 |
|
167 |
|
| 169 |
if (val.search(SVNTagValidCharsRE) < 0)
|
168 |
if (val.search(SVNTagValidCharsRE) < 0)
|
| 170 |
errors += val += ' - '+nm+' uses invalid character. Allowed characters are / A-Z a-z 0-9 . - _ @\n';
|
169 |
errors += val += ' - '+nm+' uses invalid character. Allowed characters are / A-Z a-z 0-9 . - _ @\n';
|
| 171 |
else {
|
170 |
else {
|
| Line 177... |
Line 176... |
| 177 |
else {
|
176 |
else {
|
| 178 |
if (val.search(SVNTagInValidSlashAtBOL) >= 0)
|
177 |
if (val.search(SVNTagInValidSlashAtBOL) >= 0)
|
| 179 |
errors += val += ' - '+nm+' begins with a /. This is not allowed.\n';
|
178 |
errors += val += ' - '+nm+' begins with a /. This is not allowed.\n';
|
| 180 |
else {
|
179 |
else {
|
| 181 |
if (val.search(SVNTagInValidTrunkRE) >= 0)
|
180 |
if (val.search(SVNTagInValidTrunkRE) >= 0)
|
| 182 |
errors += val += ' - '+nm+' contains invlaid /trunk. This must be followed by an @<number>, or the end of the line.\n';
|
181 |
errors += val += ' - '+nm+' contains invalid /trunk. This must be followed by an @<number>.\n';
|
| 183 |
else {
|
182 |
else {
|
| 184 |
if ((val.search(SVNTagInValidSlashAt) >= 0) || (val.search(SVNTagInValidAtSlash) >= 0))
|
183 |
if ((val.search(SVNTagInValidSlashAt) >= 0) || (val.search(SVNTagInValidAtSlash) >= 0))
|
| 185 |
errors += val += ' - '+nm+' contains /@ or @/. This is not allowed.\n';
|
184 |
errors += val += ' - '+nm+' contains /@ or @/. This is not allowed.\n';
|
| 186 |
else {
|
185 |
else {
|
| 187 |
if (val.search(SVNTagInValidSlash) >= 0)
|
186 |
if (val.search(SVNTagInValidSlash) >= 0)
|
| Line 189... |
Line 188... |
| 189 |
else {
|
188 |
else {
|
| 190 |
var count_valid_forms = 0;
|
189 |
var count_valid_forms = 0;
|
| 191 |
|
190 |
|
| 192 |
if (val.search(SVNTagValidTrunkAtNumberRE) >= 0) count_valid_forms++;
|
191 |
if (val.search(SVNTagValidTrunkAtNumberRE) >= 0) count_valid_forms++;
|
| 193 |
|
192 |
|
| 194 |
if (val.search(SVNTagValidTrunkEOLRE) >= 0) count_valid_forms++;
|
- |
|
| 195 |
|
- |
|
| 196 |
if (val.search(SVNTagValidBranchAnywhereRE) >= 0) count_valid_forms++;
|
193 |
if (val.search(SVNTagValidBranchAnywhereRE) >= 0) count_valid_forms++;
|
| 197 |
|
194 |
|
| 198 |
if (val.search(SVNTagValidTagAnywhereRE) >= 0) count_valid_forms++;
|
195 |
if (val.search(SVNTagValidTagAnywhereRE) >= 0) count_valid_forms++;
|
| 199 |
|
196 |
|
| 200 |
if (count_valid_forms == 0) errors += val += ' - '+nm+' does not end in /trunk or /trunk@<number>,\nor does not contain /tags/ or /branches/\n';
|
197 |
if (count_valid_forms == 0) errors += val += ' - '+nm+' does not end in /trunk@<number>,\nor does not contain /tags/ or /branches/\n';
|
| 201 |
|
198 |
|
| 202 |
if (count_valid_forms > 1) errors += val += ' - '+nm+' cannot combine use of trunk, /tags/, or /branches/ in one subversion tag\n';
|
199 |
if (count_valid_forms > 1) errors += val += ' - '+nm+' cannot combine use of trunk, /tags/, or /branches/ in one subversion tag\n';
|
| 203 |
}
|
200 |
}
|
| 204 |
}
|
201 |
}
|
| 205 |
}
|
202 |
}
|