Eskil

Check-in [081ebab19e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Allow dirdiff without -r. Like files, try revision mode if only one dir given.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 081ebab19eb5578874f496ed0302a4dc554d35a9
User & Date: peter 2014-11-17 00:10:05.782
Context
2014-11-17
00:14
Pass read channel directly to vfs check-in: 6a2afdf1ab user: peter tags: trunk
00:10
Allow dirdiff without -r. Like files, try revision mode if only one dir given. check-in: 081ebab19e user: peter tags: trunk
2014-11-16
23:54
Handle Fossil revs a bit better check-in: 00d1e0c608 user: peter tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/dirdiff.tcl.
1261
1262
1263
1264
1265
1266
1267
1268
1269







1270
1271
1272
1273


1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
    }
    set ::eskil(.dirdiff,plugin) ""
    foreach {item val} [array get opts] {
        set ::eskil(.dirdiff,$item) $val
    }

    # Experiment to support -r for directory diff
    # Currently only Fossil/SVN is supported
    if {[info exists opts(doptrev1)] && $opts(doptrev1) ne ""} {







        set fullname $::dirdiff(leftDir)
        set type [detectRevSystem $fullname]
        # Is this a revision system with dirdiff support?
        if {[info commands eskil::rev::${type}::mount] ne ""} {


            set revs [list $opts(doptrev1)]
            if {[info exists opts(doptrev2)] && $opts(doptrev2) ne ""} {
                lappend revs $opts(doptrev2)
            }
            set revs [eskil::rev::${type}::ParseRevs $fullname $revs]
            set rev1 [lindex $revs 0]
            set rev2 [lindex $revs 1]
            set d1 [eskil::rev::${type}::mount $fullname $rev1]
            set ::dirdiff(leftDir) $d1
            if {$rev2 ne ""} {
                set d2 [eskil::rev::${type}::mount $fullname $rev2]







|

>
>
>
>
>
>
>




>
>
|
<
<
<







1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283



1284
1285
1286
1287
1288
1289
1290
    }
    set ::eskil(.dirdiff,plugin) ""
    foreach {item val} [array get opts] {
        set ::eskil(.dirdiff,$item) $val
    }

    # Experiment to support -r for directory diff
    set revs {}
    if {[info exists opts(doptrev1)] && $opts(doptrev1) ne ""} {
        lappend revs $opts(doptrev1)
    }
    if {[info exists opts(doptrev2)] && $opts(doptrev2) ne ""} {
        lappend revs $opts(doptrev2)
    }

    if {$::dirdiff(leftDir) eq $::dirdiff(rightDir)} {
        set fullname $::dirdiff(leftDir)
        set type [detectRevSystem $fullname]
        # Is this a revision system with dirdiff support?
        if {[info commands eskil::rev::${type}::mount] ne ""} {
            # No -r given; fall back on current.
            # Note: Only fossil and svn supports 0 for current currently
            if {[llength $revs] == 0} {set revs 0}



            set revs [eskil::rev::${type}::ParseRevs $fullname $revs]
            set rev1 [lindex $revs 0]
            set rev2 [lindex $revs 1]
            set d1 [eskil::rev::${type}::mount $fullname $rev1]
            set ::dirdiff(leftDir) $d1
            if {$rev2 ne ""} {
                set d2 [eskil::rev::${type}::mount $fullname $rev2]
Changes to src/rev.tcl.
814
815
816
817
818
819
820
821

822
823
824
825
826
827
828
829
830
831
832
                set atRev ""
            }
            set Url [eskil::rev::SVN::LookForBranch $filename $rev]
            if {$Url ne ""} {
                set rev $atRev
            }
        }
        if {[string is integer -strict $rev] && $rev < 0} {

            # 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]
                set rev [expr {$curr + $rev}]
            } else {
                # Get a list from the log
                if {$filename eq ""} {
                    set filename "."
                }







|
>



|







814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
                set atRev ""
            }
            set Url [eskil::rev::SVN::LookForBranch $filename $rev]
            if {$Url ne ""} {
                set rev $atRev
            }
        }
        if {[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]
                set rev [expr {$curr + $rev}]
            } else {
                # Get a list from the log
                if {$filename eq ""} {
                    set filename "."
                }