File tree Expand file tree Collapse file tree 4 files changed +115
-1
lines changed Expand file tree Collapse file tree 4 files changed +115
-1
lines changed Original file line number Diff line number Diff line change @@ -292,7 +292,8 @@ func (self *CommitFilesController) openCopyMenu() error {
292292
293293func (self * CommitFilesController ) checkout (node * filetree.CommitFileNode ) error {
294294 self .c .LogAction (self .c .Tr .Actions .CheckoutFile )
295- if err := self .c .Git ().WorkingTree .CheckoutFile (self .context ().GetRef ().RefName (), node .GetPath ()); err != nil {
295+ _ , to := self .context ().GetFromAndToForDiff ()
296+ if err := self .c .Git ().WorkingTree .CheckoutFile (to , node .GetPath ()); err != nil {
296297 return err
297298 }
298299
Original file line number Diff line number Diff line change 1+ package commit
2+
3+ import (
4+ "github.com/jesseduffield/lazygit/pkg/config"
5+ . "github.com/jesseduffield/lazygit/pkg/integration/components"
6+ )
7+
8+ var CheckoutFileFromCommit = NewIntegrationTest (NewIntegrationTestArgs {
9+ Description : "Checkout a file from a commit" ,
10+ ExtraCmdArgs : []string {},
11+ Skip : false ,
12+ SetupConfig : func (config * config.AppConfig ) {},
13+ SetupRepo : func (shell * Shell ) {
14+ shell .CreateFileAndAdd ("file.txt" , "one\n " )
15+ shell .Commit ("one" )
16+ shell .CreateFileAndAdd ("file.txt" , "two\n " )
17+ shell .Commit ("two" )
18+ shell .CreateFileAndAdd ("file.txt" , "three\n " )
19+ shell .Commit ("three" )
20+ shell .CreateFileAndAdd ("file.txt" , "four\n " )
21+ shell .Commit ("four" )
22+ },
23+ Run : func (t * TestDriver , keys config.KeybindingConfig ) {
24+ t .Views ().Commits ().
25+ Focus ().
26+ Lines (
27+ Contains ("four" ).IsSelected (),
28+ Contains ("three" ),
29+ Contains ("two" ),
30+ Contains ("one" ),
31+ ).
32+ NavigateToLine (Contains ("three" )).
33+ Tap (func () {
34+ t .Views ().Main ().ContainsLines (
35+ Contains ("-two" ),
36+ Contains ("+three" ),
37+ )
38+ }).
39+ PressEnter ()
40+
41+ t .Views ().CommitFiles ().
42+ IsFocused ().
43+ Lines (
44+ Equals ("M file.txt" ),
45+ ).
46+ Press (keys .CommitFiles .CheckoutCommitFile )
47+
48+ t .Views ().Files ().
49+ Lines (
50+ Equals ("M file.txt" ),
51+ )
52+
53+ t .FileSystem ().FileContent ("file.txt" , Equals ("three\n " ))
54+ },
55+ })
Original file line number Diff line number Diff line change 1+ package commit
2+
3+ import (
4+ "github.com/jesseduffield/lazygit/pkg/config"
5+ . "github.com/jesseduffield/lazygit/pkg/integration/components"
6+ )
7+
8+ var CheckoutFileFromRangeSelectionOfCommits = NewIntegrationTest (NewIntegrationTestArgs {
9+ Description : "Checkout a file from a range selection of commits" ,
10+ ExtraCmdArgs : []string {},
11+ Skip : false ,
12+ SetupConfig : func (config * config.AppConfig ) {},
13+ SetupRepo : func (shell * Shell ) {
14+ shell .CreateFileAndAdd ("file.txt" , "one\n " )
15+ shell .Commit ("one" )
16+ shell .CreateFileAndAdd ("file.txt" , "two\n " )
17+ shell .Commit ("two" )
18+ shell .CreateFileAndAdd ("file.txt" , "three\n " )
19+ shell .Commit ("three" )
20+ shell .CreateFileAndAdd ("file.txt" , "four\n " )
21+ shell .Commit ("four" )
22+ },
23+ Run : func (t * TestDriver , keys config.KeybindingConfig ) {
24+ t .Views ().Commits ().
25+ Focus ().
26+ Lines (
27+ Contains ("four" ).IsSelected (),
28+ Contains ("three" ),
29+ Contains ("two" ),
30+ Contains ("one" ),
31+ ).
32+ NavigateToLine (Contains ("three" )).
33+ Press (keys .Universal .RangeSelectDown ).
34+ Tap (func () {
35+ t .Views ().Main ().ContainsLines (
36+ Contains ("-one" ),
37+ Contains ("+three" ),
38+ )
39+ }).
40+ PressEnter ()
41+
42+ t .Views ().CommitFiles ().
43+ IsFocused ().
44+ Lines (
45+ Equals ("M file.txt" ),
46+ ).
47+ Press (keys .CommitFiles .CheckoutCommitFile )
48+
49+ t .Views ().Files ().
50+ Lines (
51+ Equals ("M file.txt" ),
52+ )
53+
54+ t .FileSystem ().FileContent ("file.txt" , Equals ("three\n " ))
55+ },
56+ })
Original file line number Diff line number Diff line change @@ -89,6 +89,8 @@ var tests = []*components.IntegrationTest{
8989 commit .AmendWhenThereAreConflictsAndContinue ,
9090 commit .AutoWrapMessage ,
9191 commit .Checkout ,
92+ commit .CheckoutFileFromCommit ,
93+ commit .CheckoutFileFromRangeSelectionOfCommits ,
9294 commit .Commit ,
9395 commit .CommitMultiline ,
9496 commit .CommitSkipHooks ,
You can’t perform that action at this time.
0 commit comments