aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorChris Rees <crees@FreeBSD.org>2012-09-16 13:31:39 +0000
committerChris Rees <crees@FreeBSD.org>2012-09-16 13:31:39 +0000
commit028474b3d4ba185ef1720566e0070398237e1214 (patch)
treed897256f943ff5d93534046d41804b605996874d /Tools
parentc50d41b654b6faf11dfbb3889909e89d5e053d19 (diff)
downloadports-028474b3d4ba185ef1720566e0070398237e1214.tar.gz
ports-028474b3d4ba185ef1720566e0070398237e1214.zip
Accepts the new svn_revision tag in the removed ports xml database.
Apologies for the complexity of the code; it's optimised for speed. Soon I will be able to remove the section working with dates.
Notes
Notes: svn path=/head/; revision=304348
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/scripts/addport16
1 files changed, 11 insertions, 5 deletions
diff --git a/Tools/scripts/addport b/Tools/scripts/addport
index 07193a2c7b5b..9cabca072693 100755
--- a/Tools/scripts/addport
+++ b/Tools/scripts/addport
@@ -332,11 +332,17 @@ foreach my $thisdir (@dirs) {
my $oldportlist;
if ($oldportlist = get('http://people.FreeBSD.org/~crees/removed_ports/index.xml')) {
foreach (split("\n", $oldportlist)) {
- if (/^ +\<port\>$category\/$portname\<removed_date\>([^<]*)/) {
- $previous_incarnation = $1;
- $previous_incarnation =~ s,/,-,g;
+ if (/^ +\<port\>$category\/$portname(?:\<removed_revision\>r([0-9]*)\<\/removed_revision\>)?\<removed_date\>([^<]*)/) {
print "Found one!\n";
- print "This port was last alive on $previous_incarnation.\n";
+ if ($1 == "") {
+ $previous_incarnation = $2;
+ $previous_incarnation =~ s,/,-,g;
+ print "This port was last alive on $previous_incarnation.\n";
+ $previous_incarnation = "\{$previous_incarnation\}";
+ } else {
+ $previous_incarnation = $1 - 1;
+ print "The last living revision of this port was r$previous_incarnation.\n";
+ }
last;
}
}
@@ -345,7 +351,7 @@ foreach my $thisdir (@dirs) {
}
if ($previous_incarnation ne "bogus") {
print "Fetching older version... ";
- system("svn cp -q '$repo/$category/$portname\@{$previous_incarnation}' .");
+ system("svn cp -q '$repo/$category/$portname\@$previous_incarnation' .");
print "[DONE]\n";
print "Removing irrelevant files and directories... ";
my @oldfiles = split("\0", `cd $portname && find . -type f -print0`);