File Annotation
Not logged in
84de38d73f 2007-10-10       aku: ## -*- tcl -*-
84de38d73f 2007-10-10       aku: # # ## ### ##### ######## ############# #####################
84de38d73f 2007-10-10       aku: ## Copyright (c) 2007 Andreas Kupries.
84de38d73f 2007-10-10       aku: #
84de38d73f 2007-10-10       aku: # This software is licensed as described in the file LICENSE, which
84de38d73f 2007-10-10       aku: # you should have received as part of this distribution.
84de38d73f 2007-10-10       aku: #
84de38d73f 2007-10-10       aku: # This software consists of voluntary contributions made by many
84de38d73f 2007-10-10       aku: # individuals.  For exact contribution history, see the revision
84de38d73f 2007-10-10       aku: # history and logs, available at http://fossil-scm.hwaci.com/fossil
84de38d73f 2007-10-10       aku: # # ## ### ##### ######## ############# #####################
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: ## Revisions per file.
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: # # ## ### ##### ######## ############# #####################
84de38d73f 2007-10-10       aku: ## Requirements
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: package require Tcl 8.4                             ; # Required runtime.
84de38d73f 2007-10-10       aku: package require snit                                ; # OO system.
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: # # ## ### ##### ######## ############# #####################
84de38d73f 2007-10-10       aku: ##
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: snit::type ::vc::fossil::import::cvs::file::rev {
84de38d73f 2007-10-10       aku:     # # ## ### ##### ######## #############
84de38d73f 2007-10-10       aku:     ## Public API
84de38d73f 2007-10-10       aku: 
bd131addb9 2007-10-12       aku:     constructor {date author state thefile} {
84de38d73f 2007-10-10       aku: 	return
84de38d73f 2007-10-10       aku:     }
84de38d73f 2007-10-10       aku: 
bd131addb9 2007-10-12       aku:     method hascommitmsg {} {
bd131addb9 2007-10-12       aku: 	# TODO: check that we have the commit message
bd131addb9 2007-10-12       aku: 	return 0
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     method setcommitmsg {cm} {
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     method settext {text} {
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     # # ## ### ##### ######## #############
bd131addb9 2007-10-12       aku:     ## Type API
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     typemethod istrunkrevnr {revnr} {
bd131addb9 2007-10-12       aku: 	return [expr {[llength [split $revnr .]] == 1}]
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     typemethod 2branchnr {revnr} {
bd131addb9 2007-10-12       aku: 	# Input is a branch revision number, i.e. a revision number
bd131addb9 2007-10-12       aku: 	# with an even number of components; for example '2.9.2.1'
bd131addb9 2007-10-12       aku: 	# (never '2.9.2' nor '2.9.0.2').  The return value is the
bd131addb9 2007-10-12       aku: 	# branch number (for example, '2.9.2').  For trunk revisions,
bd131addb9 2007-10-12       aku: 	# like '3.4', we return the empty string.
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku: 	if {[$type istrunkrevnr $revnr]} {
bd131addb9 2007-10-12       aku: 	    return ""
bd131addb9 2007-10-12       aku: 	}
bd131addb9 2007-10-12       aku: 	return [join [lrange [split $revnr .] 0 end-1] .]
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     typemethod isbranchrevnr {revnr _ bv} {
bd131addb9 2007-10-12       aku: 	if {[regexp $mybranchpattern $revnr -> head tail]} {
bd131addb9 2007-10-12       aku: 	    upvar 1 $bv branchnr
bd131addb9 2007-10-12       aku: 	    set branchnr ${head}.$tail
bd131addb9 2007-10-12       aku: 	    return 1
bd131addb9 2007-10-12       aku: 	}
bd131addb9 2007-10-12       aku: 	return 0
bd131addb9 2007-10-12       aku:     }
bd131addb9 2007-10-12       aku: 
84de38d73f 2007-10-10       aku:     # # ## ### ##### ######## #############
84de38d73f 2007-10-10       aku:     ## State
bd131addb9 2007-10-12       aku: 
bd131addb9 2007-10-12       aku:     typevariable mybranchpattern {^((?:\d+\.\d+\.)+)(?:0\.)?(\d+)$}
bd131addb9 2007-10-12       aku:     # First a nonzero even number of digit groups with trailing dot
bd131addb9 2007-10-12       aku:     # CVS then sticks an extra 0 in here; RCS does not.
bd131addb9 2007-10-12       aku:     # And the last digit group.
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku:     # # ## ### ##### ######## #############
84de38d73f 2007-10-10       aku:     ## Internal methods
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku:     # # ## ### ##### ######## #############
84de38d73f 2007-10-10       aku:     ## Configuration
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku:     pragma -hastypeinfo    no  ; # no type introspection
84de38d73f 2007-10-10       aku:     pragma -hasinfo        no  ; # no object introspection
bd131addb9 2007-10-12       aku:     #pragma -hastypemethods no  ; # type is not relevant.
84de38d73f 2007-10-10       aku:     pragma -simpledispatch yes ; # simple fast dispatch
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku:     # # ## ### ##### ######## #############
84de38d73f 2007-10-10       aku: }
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: namespace eval ::vc::fossil::import::cvs::file {
84de38d73f 2007-10-10       aku:     namespace export rev
84de38d73f 2007-10-10       aku: }
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: # # ## ### ##### ######## ############# #####################
84de38d73f 2007-10-10       aku: ## Ready
84de38d73f 2007-10-10       aku: 
84de38d73f 2007-10-10       aku: package provide vc::fossil::import::cvs::file::rev 1.0
84de38d73f 2007-10-10       aku: return