Eskil

Diff
Login

Differences From Artifact [ff02aa077e]:

To Artifact [8d8b55c73f]:


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]