Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added Mercurial (HG) support. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7935c006be9845408c003484f3b762a5 |
User & Date: | peter 2008-02-07 20:09:42.000 |
Context
2008-02-07
| ||
20:15 | Documented Mercurial support. check-in: 157bd4fbf9 user: peter tags: trunk | |
20:09 | Added Mercurial (HG) support. check-in: 7935c006be user: peter tags: trunk | |
19:47 | Added text on Subversion and Git. check-in: bf14ee8cda user: peter tags: trunk | |
Changes
Changes to src/rev.tcl.
︙ | ︙ | |||
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | namespace eval eskil::rev::CVS {} namespace eval eskil::rev::RCS {} namespace eval eskil::rev::CT {} namespace eval eskil::rev::GIT {} namespace eval eskil::rev::SVN {} proc eskil::rev::CVS::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir CVS]]} { if {[auto_execok cvs] ne ""} { return 1 } } return 0 } proc eskil::rev::SVN::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir .svn]]} { if {[auto_execok svn] ne ""} { return 1 } } return 0 } proc eskil::rev::RCS::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir RCS]] || [file exists $file,v]} { | > > > > > > > > > > > > > > | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | namespace eval eskil::rev::CVS {} namespace eval eskil::rev::RCS {} namespace eval eskil::rev::CT {} namespace eval eskil::rev::GIT {} namespace eval eskil::rev::SVN {} namespace eval eskil::rev::HG {} proc eskil::rev::CVS::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir CVS]]} { if {[auto_execok cvs] ne ""} { return 1 } } return 0 } proc eskil::rev::SVN::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir .svn]]} { if {[auto_execok svn] ne ""} { return 1 } } return 0 } proc eskil::rev::HG::detect {file} { set dir [file dirname $file] # HG, detect two steps down. Could be improved. FIXA if {[file isdirectory [file join $dir .hg]] || [file isdirectory [file join $dir .. .hg]] || [file isdirectory [file join $dir .. .. .hg]]} { if {[auto_execok hg] ne ""} { return 1 } } return 0 } proc eskil::rev::RCS::detect {file} { set dir [file dirname $file] if {[file isdirectory [file join $dir RCS]] || [file exists $file,v]} { |
︙ | ︙ | |||
152 153 154 155 156 157 158 159 160 161 162 163 164 165 | } lappend cmd [file nativename $filename] > $outfile if {[catch {eval $cmd} res]} { if {![string match "*Checking out*" $res]} { tk_messageBox -icon error -title "SVN error" -message $res } } if {$old != ""} { cd $old } } # Get an RCS revision | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | } lappend cmd [file nativename $filename] > $outfile if {[catch {eval $cmd} res]} { if {![string match "*Checking out*" $res]} { tk_messageBox -icon error -title "SVN error" -message $res } } if {$old != ""} { cd $old } } # Get a HG revision proc eskil::rev::HG::get {filename outfile rev} { set old "" set dir [file dirname $filename] if {$dir != "."} { set old [pwd] set outfile [file join [pwd] $outfile] cd $dir set filename [file tail $filename] } set cmd [list exec hg cat] if {$rev != ""} { lappend cmd -r $rev } lappend cmd [file nativename $filename] > $outfile if {[catch {eval $cmd} res]} { if {$res ne ""} { tk_messageBox -icon error -title "HG error" -message $res } } if {$old != ""} { cd $old } } # Get an RCS revision |
︙ | ︙ | |||
263 264 265 266 267 268 269 270 271 272 273 274 275 276 | } } if {[llength $result] == 0} { set result [list HEAD] } return $result } # Figure out CVS revision from arguments proc eskil::rev::CVS::ParseRevs {filename revs} { set result {} foreach rev $revs { # An integer rev is a relative rev if {[string is integer -strict $rev]} { | > > > > > > > > > > | 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 | } } if {[llength $result] == 0} { set result [list HEAD] } return $result } # Figure out HG revision from arguments proc eskil::rev::HG::ParseRevs {filename revs} { set result "" foreach rev $revs { # No parsing yet... lappend result $rev } return $result } # Figure out CVS revision from arguments proc eskil::rev::CVS::ParseRevs {filename revs} { set result {} foreach rev $revs { # An integer rev is a relative rev if {[string is integer -strict $rev]} { |
︙ | ︙ | |||
393 394 395 396 397 398 399 | if {![file exists $file]} { return "" } if {[info exists cache($file)]} { return $cache($file) } | | | 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 | if {![file exists $file]} { return "" } if {[info exists cache($file)]} { return $cache($file) } set searchlist [list $preference GIT HG] foreach ns [namespace children eskil::rev] { lappend searchlist [namespace tail $ns] } foreach rev $searchlist { set result [eskil::rev::${rev}::detect $file] if {$result} { set cache($file) $rev |
︙ | ︙ |