@@ -16,109 +16,86 @@
16 16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17 17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18 18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -----------------------------------------------------------------------------
19 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# API
20 20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Define repository file, and connect to workspace in CWD.
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::vc::fossil::ws::new {} {
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable fr [file normalize [fileutil::tempfile import2_fsl_rp_]]
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # pwd = workspace
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dova new $fr ; # create and
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dova open $fr ; # connect
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write 0 fossil "Repository: $fr"
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $fr
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Move generated fossil repository to final destination
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::vc::fossil::ws::destination {path} {
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable fr
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file rename $fr $path
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- namespace eval ::vc::fossil::ws {
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Repository file
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable fr {}
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Debug the commit command (write a Tcl script containing the
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # exact command used). And the file the data goes to.
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable debugcommit 0
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable dcfile {}
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::vc::fossil::ws::debugcommit {flag} {
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable debugcommit $flag
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$debugcommit} {
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable dcfile [file normalize cvs2fossil_commit.tcl]
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::vc::fossil::ws::commit {break appname nosign meta ignore} {
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable lastuuid
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable debugcommit
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable dcfile
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # vc::fossil::ws::configure key value - Configure the subsystem.
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # vc::fossil::ws::begin src - Start new workspace for directory
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # vc::fossil::ws::done dst - Close workspace and copy to destination.
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # vc::fossil::ws::commit cset usr time msg - Look for changes and commit as new revision.
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Configuration keys:
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -nosign bool default 0 (= sign imported changesets)
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -breakat num default empty, no breakpoint.
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Otherwise stop before committing the identified changeset.
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -saveto path default empty, no saving.
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Otherwise save the commit command to a file.
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -appname string Default empty. Text to add to all commit messages.
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -ignore cmdprefix Command to check if a file is relevant to the commit or not.
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Signature: cmdprefix path -> bool; true => ignore.
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # API Implementation
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::configure {key value} {
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable nosign
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable breakat
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable saveto
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable appname
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable ignore
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch -exact -- $key {
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -appname { set appname $value }
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -breakat { set breakat $value }
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -ignore { set ignore $value }
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -nosign {
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {![string is boolean -strict $value]} {
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return -code error "Expected boolean, got \"$value\""
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set nosign $value
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -saveto { set saveto $value }
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default {
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return -code error "Unknown switch $key, expected one of \
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -appname, -breakat, -ignore, -nosign, or -saveto"
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::begin {origin} {
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable rp [file normalize [fileutil::tempfile import2_fsl_rp_]]
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cd $origin
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dova new $rp ; # create and ...
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dova open $rp ; # ... connect
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ write 0 fossil "Repository: $rp"
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::done {destination} {
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable rp
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file rename -force $rp $destination
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set rp {}
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::commit {cset user timestamp message} {
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lastuuid
65 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
66 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Commit the current state of the workspace. Scan for new and
67 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# removed files and issue the appropriate fossil add/rm commands
68 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# before actually comitting.
69 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Modified/Removed files first, that way there won't be any ADDED
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # indicators. Nor REMOVED, only EDITED. Removed files show up as
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # EDITED while they are not registered as removed.
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set added 0
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set removed 0
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set changed 0
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach line [split [dova changes] \n] {
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- regsub {^\s*EDITED\s*} $line {} path
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[IGNORE $ignore $path]} continue
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {![file exists $path]} {
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dova rm $path
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- incr removed
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write 2 fossil "- $path"
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- incr changed
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write 2 fossil "* $path"
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Now look for unregistered added files.
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach path [split [dova extra] \n] {
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[IGNORE $ignore $path]} continue
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dova add $path
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- incr added
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write 2 fossil "+ $path"
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ HandleChanges added removed changed
100 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
101 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Now commit, using the provided meta data, and capture the uuid
102 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# of the new baseline.
103 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach {user message tstamp} $meta break
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set message [join [list \
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "-- Originally by $user @ $tstamp" \
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "-- Imported by $appname" \
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $message] \n]
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cmd [list commit -m $message]
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$nosign} { lappend cmd --nosign }
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$debugcommit} {
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileutil::writeFile $dcfile "$cmd\n"
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Stop, do not actually commit.
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$break} return
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set cmd [Command $cset [Message $user $timestamp $message]]
120 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
121 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[catch {
122 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do $cmd
123 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} line]} {
124 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {![string match "*nothing has changed*" $line]} {
@@ -133,28 +110,106 @@
133 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
write 1 fossil "UNCHANGED, keeping last"
134 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
135 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return [list $lastuuid 0 0 0]
136 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
137 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set line [string trim $line]
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- regsub -nocase -- {^\s*New_Version:\s*} $line {} uuid
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Extract the uuid of the new revision.
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regsub -nocase -- {^\s*New_Version:\s*} [string trim $line] {} uuid
140 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set lastuuid $uuid
142 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return [list $uuid $added $removed $changed]
143 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144 121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
145 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -----------------------------------------------------------------------------
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Internal helper commands
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Internal helper commands, and data structures.
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::HandleChanges {av rv cv} {
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ upvar 1 $av added $rv removed $cv changed
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set added 0
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set removed 0
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set changed 0
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Look for modified/removed files first, that way there won't be
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # any ADDED indicators. Nor REMOVED, only EDITED. Removed files
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # show up as EDITED while they are not registered as removed.
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach line [split [do changes] \n] {
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regsub {^\s*EDITED\s*} $line {} path
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {[Ignore $path]} continue
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {![file exists $path]} {
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dova rm $path
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ incr removed
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ write 2 fossil "- $path"
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } else {
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ incr changed
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ write 2 fossil "* $path"
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Now look for unregistered added files.
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach path [split [do extra] \n] {
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {[Ignore $path]} continue
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dova add $path
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ incr added
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ write 2 fossil "+ $path"
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::Message {user timestamp message} {
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable appname
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set lines {}
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lappend lines "-- Originally by $user @ $timestamp"
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$appname ne ""} {
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lappend lines "-- Imported by $appname"
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lappend lines [string trim $message]
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return [join $lines \n]
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::Command {cset message} {
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable nosign
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable saveto
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable breakat
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set cmd [list commit -m $message]
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$nosign} { lappend cmd --nosign }
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$saveto ne ""} { fileutil::writeFile $saveto "$cmd\n" }
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$breakat eq $cset} {
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ write 0 fossil Stopped.
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ exit 0
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return $cmd
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
147 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::vc::fossil::ws::IGNORE {ignore path} {
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc ::vc::fossil::ws::Ignore {path} {
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable ignore
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {![llength $ignore]} {return 0}
149 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return [uplevel #0 [linsert $ignore end $path]]
150 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
151 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
152 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
namespace eval ::vc::fossil::ws {
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- namespace export new destination debugcommit commit
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Configuration settings.
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable nosign 0 ; # Sign imported changesets
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable breakat {} ; # Do not stop
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable saveto {} ; # Do not save commit message
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable appname {} ; # Name of importer application using the package.
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable ignore {} ; # No files to ignore.
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable rp {} ; # Repository the package works on.
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lastuuid {} ; # Uuid of last imported changeset.
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ namespace export configure begin done commit
154 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
155 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
156 211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -----------------------------------------------------------------------------
157 212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Ready
158 213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
159 214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
package provide vc::fossil::ws 1.0
160 215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
161 216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!