Support diff by revsion too, not only by date. This is a workaround
if the ports/INDEX file was not updated regularly. To select a revsion, replace the value for the cgi variable 'time' with rev<revsion>, e.g.: /cgi/ports.cgi?type=new&time=rev1.200&sektion=all print a diff for all new ports since rev 1.200
This commit is contained in:
parent
2c711ba108
commit
f0f990c2ba
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=3964
1 changed files with 22 additions and 4 deletions
|
|
@ -24,7 +24,7 @@
|
||||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
# SUCH DAMAGE.
|
# SUCH DAMAGE.
|
||||||
#
|
#
|
||||||
# $Id: ports.cgi,v 1.30 1998-12-18 17:30:39 wosch Exp $
|
# $Id: ports.cgi,v 1.31 1998-12-26 17:03:44 wosch Exp $
|
||||||
#
|
#
|
||||||
# ports.cgi - search engine for FreeBSD ports
|
# ports.cgi - search engine for FreeBSD ports
|
||||||
# o search for a port by name or description
|
# o search for a port by name or description
|
||||||
|
|
@ -138,14 +138,16 @@ sub last_update {
|
||||||
open(DB, $file) || do {
|
open(DB, $file) || do {
|
||||||
&warn("$file: $!\n"); &exit;
|
&warn("$file: $!\n"); &exit;
|
||||||
};
|
};
|
||||||
|
local($head);
|
||||||
while(<DB>) {
|
while(<DB>) {
|
||||||
|
$head = $1 if (/^head\s+([0-9.]+);?\s*$/);
|
||||||
if (/^date/ && /^date\s+([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+);\s+/) {
|
if (/^date/ && /^date\s+([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+);\s+/) {
|
||||||
$date = ($1 + 1900) . qq{-$2-$3 $4:$5:$6 UTC};
|
$date = ($1 + 1900) . qq{-$2-$3 $4:$5:$6 UTC};
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close DB;
|
close DB;
|
||||||
return $date;
|
return $date . "; based on revision " . $head;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub last_update_message {
|
sub last_update_message {
|
||||||
|
|
@ -199,7 +201,19 @@ sub exit { exit 0 };
|
||||||
|
|
||||||
sub readindex {
|
sub readindex {
|
||||||
local($date, *var, *msec) = @_;
|
local($date, *var, *msec) = @_;
|
||||||
local(@co) = ('co', '-p', '-D', $date, $ports_database);
|
local(@co) = ('co', '-p');
|
||||||
|
|
||||||
|
if ($date =~ /^rev([1-9]+\.[0-9]+)$/) {
|
||||||
|
# diff by revision
|
||||||
|
push(@co, ('-r', $1));
|
||||||
|
} else {
|
||||||
|
# diff by date
|
||||||
|
push(@co, ('-D', $date));
|
||||||
|
}
|
||||||
|
|
||||||
|
push(@co, $ports_database);
|
||||||
|
|
||||||
|
|
||||||
local(@tmp, @s);
|
local(@tmp, @s);
|
||||||
|
|
||||||
open(C, "-|") || exec (@cvscmd, @co);
|
open(C, "-|") || exec (@cvscmd, @co);
|
||||||
|
|
@ -543,7 +557,11 @@ sub check_input {
|
||||||
&exit(0);
|
&exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($time !~ /^[1-9][0-9]*\s+(month|week)\s+ago$/) {
|
if ($time !~ /^[1-9][0-9]*\s+(month|week)\s+ago$/ &&
|
||||||
|
# support diff by revision too
|
||||||
|
$time !~ /^rev[1-9]+\.[0-9]+$/
|
||||||
|
)
|
||||||
|
{
|
||||||
&warn("unkwnon date: `$time'\n");
|
&warn("unkwnon date: `$time'\n");
|
||||||
&exit(0);
|
&exit(0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue