File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -764,6 +764,39 @@ func (s *WorktreeSuite) TestCheckoutBranch() {
764764 s .True (status .IsClean ())
765765}
766766
767+ func (s * WorktreeSuite ) TestCheckoutBranchUntracked () {
768+ w := & Worktree {
769+ r : s .Repository ,
770+ Filesystem : memfs .New (),
771+ }
772+
773+ uf , err := w .Filesystem .Create ("untracked_file" )
774+ s .NoError (err )
775+ _ , err = uf .Write ([]byte ("don't delete me" ))
776+ s .NoError (err )
777+
778+ err = w .Checkout (& CheckoutOptions {
779+ Branch : "refs/heads/branch" ,
780+ })
781+ s .NoError (err )
782+
783+ head , err := w .r .Head ()
784+ s .NoError (err )
785+ s .Equal ("refs/heads/branch" , head .Name ().String ())
786+
787+ status , err := w .Status ()
788+ s .NoError (err )
789+ // The untracked file should still be there, so it's not clean
790+ s .False (status .IsClean ())
791+ s .True (status .IsUntracked ("untracked_file" ))
792+ err = w .Filesystem .Remove ("untracked_file" )
793+ s .NoError (err )
794+ status , err = w .Status ()
795+ s .NoError (err )
796+ // After deleting the untracked file it should now be clean
797+ s .True (status .IsClean ())
798+ }
799+
767800func (s * WorktreeSuite ) TestCheckoutCreateWithHash () {
768801 w := & Worktree {
769802 r : s .Repository ,
You can’t perform that action at this time.
0 commit comments