Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Better interpretation of negative SVN versions |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
3c929eb1df3cb76d62e1b5f6328178df |
User & Date: | peter 2009-01-07 23:09:59.000 |
Context
2009-01-07
| ||
23:10 | Test subversion revision parsing check-in: c99cfccaba user: peter tags: trunk | |
23:09 | Better interpretation of negative SVN versions check-in: 3c929eb1df user: peter tags: trunk | |
23:08 | Syntax fix check-in: af015a3a7b user: peter tags: trunk | |
Changes
Changes to src/rev.tcl.
︙ | ︙ | |||
434 435 436 437 438 439 440 441 442 443 | cd $old } return $rev } # Return current revision of a SVN file proc eskil::rev::SVN::GetCurrent {filename} { if {$filename eq ""} { set cmd [list exec svn info] } else { | > < | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 | cd $old } return $rev } # Return current revision of a SVN file proc eskil::rev::SVN::GetCurrent {filename} { set old "" if {$filename eq ""} { set cmd [list exec svn info] } else { set dir [file dirname $filename] if {$dir != "."} { set old [pwd] cd $dir set filename [file tail $filename] } |
︙ | ︙ | |||
461 462 463 464 465 466 467 468 469 470 471 472 473 474 | } if {$old != ""} { cd $old } return $rev } # Figure out RCS revision from arguments proc eskil::rev::RCS::ParseRevs {filename revs} { if {$filename eq ""} { # RCS does not support tree versions return {} } | > > > > > > > > > > > > > > > > > > > > > > | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 | } if {$old != ""} { cd $old } return $rev } # Return revision list of a SVN file proc eskil::rev::SVN::GetRevList {filename} { if {$filename eq ""} { set cmd [list exec svn log -q -l 50] } else { set cmd [list exec svn log -q -l 50 [file nativename $filename]] } if {[catch {eval $cmd} res]} { # What to do here? set revs [list 1] } else { set lines [lsearch -all -inline -regexp [split $res \n] {^\s*r\d}] set revs {} foreach line $lines { if {[regexp {r(\d+)} $line -> rev]} { lappend revs $rev } } } return $revs } # Figure out RCS revision from arguments proc eskil::rev::RCS::ParseRevs {filename revs} { if {$filename eq ""} { # RCS does not support tree versions return {} } |
︙ | ︙ | |||
534 535 536 537 538 539 540 | # Figure out SVN revision from arguments proc eskil::rev::SVN::ParseRevs {filename revs} { set result {} foreach rev $revs { # A negative integer rev is a relative rev if {[string is integer -strict $rev] && $rev < 0} { | > > > | | > > > > > > > > > > > > | 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | # Figure out SVN revision from arguments proc eskil::rev::SVN::ParseRevs {filename revs} { set result {} foreach rev $revs { # A negative integer rev is a relative rev if {[string is integer -strict $rev] && $rev < 0} { # Save a roundtrip to the server in the case where we # can start from current if {$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 "." } set cmd [list svn log -q [file nativename $filename]] set revs [eskil::rev::SVN::GetRevList $filename] set rev [lindex $revs [expr {-$rev}]] if {$rev eq ""} { set rev [lindex $revs end] } } } lappend result $rev } return $result } # Figure out ClearCase revision from arguments |
︙ | ︙ |