Eskil

Check-in [acde364bc7]
Login

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

Overview
Comment:Optimise current vs checkout for Fossil and GIT
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: acde364bc7faf70d6d3002480c07e508467289eb
User & Date: peter 2015-03-20 22:37:01.746
Context
2015-03-31
21:17
Moved download to main menu check-in: e368b1bdca user: peter tags: trunk
2015-03-20
22:37
Optimise current vs checkout for Fossil and GIT check-in: acde364bc7 user: peter tags: trunk
21:59
Optimise dirdiff vs SVN VFS. Handle some errors in VFS better. (Most of this change was mistakenly in previous commit) check-in: 80ddbb6d24 user: peter tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/rev.tcl.
274
275
276
277
278
279
280




























281
282
283
284
285
286
287
    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]







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
    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
}
proc eskil::rev::FOSSIL::localChanges {dir} {
    set old [pwd]
    cd $dir
    set info [exec fossil changes]
    cd $old
    set changes {}
    foreach line [split $info \n] {
        set line [string trim $line]
        if {[regexp {^\S+\s+(\S+)$} $line -> file]} {
            lappend changes [file join $dir $file]
        }
    }
    return $changes
}
proc eskil::rev::GIT::localChanges {dir} {
    set old [pwd]
    cd $dir
    set info [exec git status -s --porcelain]
    cd $old
    set changes {}
    foreach line [split $info \n] {
        set line [string trim $line]
        if {[regexp {^(\S+)\s+(\S+)$} $line -> pre 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]