Check-in [011fb38dda]
Not logged in
Overview

SHA1 Hash:011fb38dda2194b63ac19adcfd5c5c8a3d2a9d2c
Date: 2008-03-05 03:30:43
User: aku
Comment:Remember #commits to a workspace (= lod), and also their parental relationship. This will be used to control branch tagging (add/cancel), and provides us with the proper names for the tags as well.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified tools/cvs2fossil/lib/c2f_ristate.tcl from [ed78c7f7f7] to [29b3696463].

@@ -57,12 +57,13 @@
 		[info exists mystate($parentlod)]
 	    } {Trying to inherit from undefined lod "$parentlod"}
 
 	    set pwss $mystate($parentlod)
 
-	    $wss defstate [$pwss getstate]
-	    $wss defid    [$pwss getid]
+	    $wss defstate  [$pwss getstate]
+	    $wss defid     [$pwss getid]
+	    $wss defparent $pwss
 	}
 
 	return $wss
     }
 

Modified tools/cvs2fossil/lib/c2f_wsstate.tcl from [7ce7d95914] to [ab8cd1f9b9].

@@ -29,15 +29,18 @@
     # # ## ### ##### ######## #############
     ## Public API
 
     constructor {lod} {
 	# Start with an empty state
-	set myname $lod
+	set myname   $lod
+	set myticks  0
+	set myparent {}
 	return
     }
 
-    method name {} { return $myname }
+    method name   {} { return $myname }
+    method ticks  {} { return $myticks }
 
     method add {oprevisioninfo} {
 	# oprevisioninfo = list (rid path label op ...) /quadruples
 
 	# Overwrite all changed files (identified by path) with the
@@ -55,10 +58,12 @@
 		}
 	    } else {
 		set mystate($path) [list $rid $label]
 	    }
 	}
+
+	incr myticks
 	return
     }
 
     method get {} {
 	set res {}
@@ -77,10 +82,16 @@
     method getid {} { return $myid }
 
     method defstate {s} { array set mystate $s ; return }
     method getstate {}  { return [array get mystate] }
 
+    method parent {} { return $myparent }
+    method defparent {parent} {
+	set myparent $parent
+	return
+    }
+
     # # ## ### ##### ######## #############
     ## State
 
     variable myname {}         ; # Name of the LOD the workspace is
 				 # for.
@@ -87,10 +98,13 @@
     variable myid   {}         ; # Record id of the fossil manifest
 				 # associated with the current state.
     variable mystate -array {} ; # Map from paths to the recordid of
 				 # the file revision behind it, and
 				 # the associated label for logging.
+    variable myticks 0         ; # Number of 'add' operations
+				 # performed on the state.
+    variable myparent {}       ; # Reference to the parent workspace.
 
     typevariable myop -array {
 	-1 REM
 	0  ---
 	1  ADD