Tcl Library Source Code

Check-in [f5d2be5a46]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fixed issues with repository scan - Forgot to handle trunk revision, and mixup of parent/child times and descriptions.
Timelines: family | ancestors | descendants | both | tcllib-1-16-rc
Files: files | file ages | folders
SHA1: f5d2be5a46d9e17525c4ce16f131de364680a56c
User & Date: aku 2014-01-31 07:33:41
Context
2014-01-31
07:39
Bumped versions of modified packages and missed so far. check-in: f06124e3c3 user: aku tags: tcllib-1-16-rc
07:33
Fixed issues with repository scan - Forgot to handle trunk revision, and mixup of parent/child times and descriptions. check-in: f5d2be5a46 user: aku tags: tcllib-1-16-rc
06:31
Bumped ftp to 2.4.12, see [3b14767f50]. check-in: 6e03cd1a77 user: aku tags: tcllib-1-16-rc
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to support/devel/sak/readme/readme.tcl.

    28     28       # Future: Consolidate with ... review ...
    29     29       # Determine which packages are potentially changed, from the set
    30     30       # of modules touched since the last release, as per the fossil
    31     31       # repository's commit log.
    32     32   
    33     33       set trunk     [sak::review::Leaf trunk]            ;# rid
    34     34       set release   [sak::review::YoungestOfTag release] ;# datetime
           35  +
    35     36       sak::review::AllParentsAfter $trunk $release -> rid {
    36     37   	sak::review::FileSet $rid -> path action {
    37     38   	    lappend modifiedm [lindex [file split $path] 1]
    38     39   	}
    39     40       }
    40     41       set modifiedm [lsort -unique $modifiedm]
    41     42   

Changes to support/devel/sak/review/review.tcl.

    67     67   	    lappend cm($themodule) $d
    68     68   
    69     69   	    # ignore files in modules/
    70     70   	    if {[llength $px] < 3} continue
    71     71   	    lappend pt($themodule) [file join {*}[lrange $px 2 end]]
    72     72   	}
    73     73       }
           74  +
           75  +    Next
    74     76   
    75     77       # cleanup module list, may have duplicates
    76     78       set modifiedm [lsort -unique $modifiedm]
    77     79   
    78     80       array set review {}
    79     81   
    80     82       # package -> list(version)
................................................................................
   295    297   
   296    298   proc ::sak::review::AllParentsAfter {rid cut _ rv script} {
   297    299       upvar 1 $rv therev
   298    300   
   299    301       array set rev {}
   300    302       set rev($rid) .
   301    303       lappend front $rid
          304  +
          305  +    # Initial run, for the starting revision.
          306  +    set therev   $rid
          307  +    uplevel 1 $script
   302    308   
   303    309       # Standard iterative incremental transitive-closure. We have a
   304    310       # front of revisions whose parents we take, which become the new
   305    311       # front to follow, until no parents are delivered anymore due to
   306    312       # the cutoff condition (timestamp, only the revisions coming after
   307    313       # are accepted).
   308    314   
   309    315       while {1} {
   310    316   	set new {}
   311    317   	foreach cid $front {
   312    318   	    foreach pid [split [Parents $cid $cut] \n] {
   313         -		lappend new $pid
          319  +		foreach {pid uuid mtraw mtime} [split [string trim $pid |] |] break
          320  +		lappend new $pid $mtime $uuid
          321  +
          322  +		if {$mtraw <= $cut} {
          323  +		    puts "Overshot: $rid $mtime $uuid"
          324  +		}
          325  +
   314    326   	    }
   315    327   	}
   316    328   	if {![llength $new]} break
   317    329   
   318    330   	# record new parents, and make them the new starting points
   319    331   	set front {}
   320         -	foreach pid $new {
          332  +	foreach {pid mtime uuid} $new {
   321    333   	    if {[info exists rev($pid)]} continue
   322    334   	    set rev($pid) .
   323    335   	    lappend front $pid
   324    336   
   325         -	    set therev $pid
          337  +	    set therev   $pid
   326    338   	    uplevel 1 $script
   327    339   	}
   328    340       }
   329    341   }
   330    342   
   331    343   proc ::sak::review::Parents {rid cut} {
   332    344       lappend map @[email protected]    $rid
   333    345       lappend map @[email protected] $cut
   334    346       F [string map $map {
   335         -	SELECT pid FROM plink
          347  +	SELECT pid, blob.uuid, event.mtime, datetime(event.mtime)
          348  +	FROM  plink, blob, event
   336    349   	WHERE plink.cid   = @[email protected]
   337         -	AND   plink.mtime > @[email protected]
          350  +	AND   plink.pid = blob.rid
          351  +	AND   plink.pid = event.objid
          352  +	AND   event.mtime > @[email protected]
   338    353   	;
   339    354       }]
   340    355   }
   341    356   
   342    357   proc ::sak::review::YoungestOfTag {tag} {
   343    358       lappend map @[email protected] $tag
          359  +    puts "last $tag = [F [string map $map {
          360  +	SELECT datetime (event.mtime)
          361  +	FROM   tag, tagxref, event
          362  +	WHERE tag.tagname     = 'sym-' || '@[email protected]'
          363  +	AND   tagxref.tagid   = tag.tagid
          364  +	AND   tagxref.tagtype > 0
          365  +	AND   tagxref.rid     = event.objid
          366  +	AND   event.type      = 'ci'
          367  +	ORDER BY event.mtime DESC
          368  +	LIMIT 1
          369  +	;
          370  +    }]]"
   344    371       F [string map $map {
   345    372   	SELECT event.mtime
   346    373   	FROM   tag, tagxref, event
   347    374   	WHERE tag.tagname     = 'sym-' || '@[email protected]'
   348    375   	AND   tagxref.tagid   = tag.tagid
   349    376   	AND   tagxref.tagtype > 0
   350    377   	AND   tagxref.rid     = event.objid