Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Support negative revisions with GIT. Added log view for GIT. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
abf466638783232a7b9dc0b28cf79bf4 |
User & Date: | peter 2016-07-05 23:39:52.918 |
Context
2016-07-06
| ||
22:20 | Typos check-in: fd55f7fe68 user: peter tags: trunk | |
2016-07-05
| ||
23:39 | Support negative revisions with GIT. Added log view for GIT. check-in: abf4666387 user: peter tags: trunk | |
22:29 | Moved startup code to its own source file. check-in: 393bb7a948 user: peter tags: trunk | |
Changes
Changes to Changes.
1 2 3 4 5 6 7 | 2016-07-01 When displaying a patch, detect chunks marked with ##. E.g. svn diff lists changed properties like that. 2016-06-10 Reorganised code for option descriptions. | > > > | 1 2 3 4 5 6 7 8 9 10 | 2016-07-06 Support negative revisions with GIT. Added log view for GIT. 2016-07-01 When displaying a patch, detect chunks marked with ##. E.g. svn diff lists changed properties like that. 2016-06-10 Reorganised code for option descriptions. |
︙ | ︙ |
Changes to src/rev.tcl.
︙ | ︙ | |||
652 653 654 655 656 657 658 659 660 661 662 663 664 665 | if {[regexp {r(\d+)} $line -> rev]} { lappend revs $rev } } } return $revs } # Return revision list of a FOSSIL file proc eskil::rev::FOSSIL::GetRevList {filename} { # Keep on current branch set x [exec fossil branch list] if { ! [regexp -line {^\* (.*)$} $x -> branch]} { set branch "" | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 | if {[regexp {r(\d+)} $line -> rev]} { lappend revs $rev } } } return $revs } # Return revision list of a GIT file proc eskil::rev::GIT::GetRevList {filename} { set old "" set cmd [list exec git log --first-parent --oneline -n 50] if {$filename eq ""} { # Nothing } else { set old [pwd] cd [file dirname $filename] lappend cmd [file nativename [file tail $filename]] } if {[catch {eval $cmd} res]} { # What to do here? set revs [list HEAD] } else { set lines [split $res \n] set revs {} foreach line $lines { if {[regexp {^(\w+)} $line -> rev]} { lappend revs $rev } } } if {$old ne ""} { cd $old } return $revs } # Return revision list of a FOSSIL file proc eskil::rev::FOSSIL::GetRevList {filename} { # Keep on current branch set x [exec fossil branch list] if { ! [regexp -line {^\* (.*)$} $x -> branch]} { set branch "" |
︙ | ︙ | |||
724 725 726 727 728 729 730 731 732 733 | # RCS does not support tree versions return {} } return $revs } # Figure out GIT revision from arguments proc eskil::rev::GIT::ParseRevs {filename revs} { set result "" foreach rev $revs { | > < | | | > > > | > | > > > | 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 | # RCS does not support tree versions return {} } return $revs } # Figure out GIT revision from arguments # The resulting rev should work with 'git show <rev>:filename' proc eskil::rev::GIT::ParseRevs {filename revs} { set result "" foreach rev $revs { # Special cases that shortcuts to GIT special names if {$rev eq "_" || $rev eq "0"} {set rev HEAD} if {[string is integer -strict $rev] && $rev < 0} { # A negative integer rev is a relative rev set revList [eskil::rev::GIT::GetRevList $filename] set rev [lindex $revList [- $rev]] if {$rev eq ""} { set rev [lindex $revs end] } } # Let anything else through lappend result $rev } return $result } # Figure out FOSSIL revision from arguments proc eskil::rev::FOSSIL::ParseRevs {filename revs} { set result "" |
︙ | ︙ | |||
1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 | proc eskil::rev::SVN::viewLog {top filename revs} { set cmd [list exec svn log] if {[llength $revs] > 1} { lappend cmd -r [join $revs ":"] } else { lappend cmd -r HEAD:[lindex $revs 0] } lappend cmd $filename if {[catch {eval $cmd} result]} { #return } ViewLog $top $filename $result } | > > > > > > > > > > > > > > > | 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 | proc eskil::rev::SVN::viewLog {top filename revs} { set cmd [list exec svn log] if {[llength $revs] > 1} { lappend cmd -r [join $revs ":"] } else { lappend cmd -r HEAD:[lindex $revs 0] } lappend cmd $filename if {[catch {eval $cmd} result]} { #return } ViewLog $top $filename $result } # View log between displayed versions proc eskil::rev::GIT::viewLog {top filename revs} { set cmd [list exec git log] if {[llength $revs] > 1} { lappend cmd [join $revs ".."] } else { lappend cmd [lindex $revs 0].. } lappend cmd $filename if {[catch {eval $cmd} result]} { #return } ViewLog $top $filename $result } |
︙ | ︙ |