File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -96,6 +96,27 @@ def _move_commit(self, method_name):
96
96
97
97
self ._update_mapping (start , finish )
98
98
99
+ def _jump_to_commit (self , sha ):
100
+
101
+ start = self .file_history .current_commit .sha
102
+
103
+ if not self .file_history .jump_to_commit (sha ):
104
+ curses .beep ()
105
+ return
106
+
107
+ finish = sha
108
+
109
+ if start == finish :
110
+ curses .beep ()
111
+ return
112
+
113
+ self ._update_mapping (start , finish )
114
+
115
+ @ModalScrollingInterface .key_bindings ('j' )
116
+ def info (self , times = 1 ):
117
+ blame_line = self .content ()[self .highlight_line ]
118
+ self ._jump_to_commit (blame_line .sha )
119
+
99
120
@ModalScrollingInterface .key_bindings (']' )
100
121
def next_commit (self , times = 1 ):
101
122
for i in range (0 ,times ):
Original file line number Diff line number Diff line change @@ -87,6 +87,22 @@ def prev(self):
87
87
self ._blame = None
88
88
return True
89
89
90
+ def jump_to_commit (self , sha ):
91
+ """
92
+ Moves to the given commit SHA, returning False if it doesn't exist.
93
+ """
94
+ found_index = None
95
+ for i , commit in enumerate (self .commits ):
96
+ if commit .sha == sha :
97
+ found_index = i
98
+
99
+ if found_index is None :
100
+ return False
101
+
102
+ self ._index = found_index
103
+ self ._blame = None
104
+ return True
105
+
90
106
def blame (self ):
91
107
"""
92
108
Returns blame information for this file at the current commit as
You can’t perform that action at this time.
0 commit comments