259
260
261
262
263
264
265
266
267
268
269
270
271
272
|
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
}
}
if {$old != ""} {
cd $old
}
}
# List local changes in a checkout
proc eskil::rev::SVN::localChanges {dir} {
set old [pwd]
cd $dir
set info [exec svn status --ignore-externals -q]
cd $old
set changes {}
foreach line [split $info \n] {
set line [string trim $line]
if {[regexp {\S+$} $line file]} {
lappend changes [file join $dir $file]
}
}
return $changes
}
# Get a SVN patch
proc eskil::rev::SVN::getPatch {revs {files {}}} {
set cmd [list exec svn diff]
foreach rev $revs {
# TODO: What happens in strange combinations ?
if {[string match "*://*" $rev]} {
|
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
|
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
|
-
+
+
|
set Url [eskil::rev::SVN::LookForBranch $filename $rev]
if {$Url ne ""} {
set rev $atRev
}
}
if {$rev eq "_"} {
# Common name for current
set rev [eskil::rev::SVN::GetCurrent $filename]
#set rev [eskil::rev::SVN::GetCurrent $filename]
set rev BASE
} elseif {[string is integer -strict $rev] && $rev <= 0} {
# Zero means current
# A negative integer rev is a relative rev
# Save a roundtrip to the server in the case where we
# can start from current
if {$Url eq "" && $rev >= -1} {
set curr [eskil::rev::SVN::GetCurrent $filename]
|