@@ -6416,6 +6416,96 @@ fn test_move_fixup_deleted_files() -> eyre::Result<()> {
64166416 Ok ( ( ) )
64176417}
64186418
6419+ #[ test]
6420+ fn test_move_fixup_renamed_files ( ) -> eyre:: Result < ( ) > {
6421+ let git = make_git ( ) ?;
6422+ git. init_repo ( ) ?;
6423+ git. detach_head ( ) ?;
6424+
6425+ git. commit_file ( "test1" , 1 ) ?;
6426+ git. commit_file ( "test2" , 2 ) ?;
6427+
6428+ git. run ( & [ "mv" , "test1.txt" , "test1-renamed.txt" ] ) ?;
6429+ git. run ( & [ "commit" , "-m" , "rename test1" ] ) ?;
6430+
6431+ git. write_file_txt ( "test2" , "new contents" ) ?;
6432+ git. run ( & [ "add" , "." ] ) ?;
6433+ git. run ( & [ "commit" , "-m" , "update test2" ] ) ?;
6434+
6435+ {
6436+ let ( stdout, _stderr) = git. branchless ( "smartlog" , & [ ] ) ?;
6437+ insta:: assert_snapshot!( stdout, @"
6438+ O f777ecc (master) create initial.txt
6439+ |
6440+ o 62fc20d create test1.txt
6441+ |
6442+ o 96d1c37 create test2.txt
6443+ |
6444+ o 7111570 rename test1
6445+ |
6446+ @ bdef94f update test2
6447+ " ) ;
6448+
6449+ let ( stdout, _stderr) = git. run ( & [ "ls-files" ] ) ?;
6450+ insta:: assert_snapshot!( stdout, @"
6451+ initial.txt
6452+ test1-renamed.txt
6453+ test2.txt
6454+ " ) ;
6455+
6456+ let ( stdout, _stderr) = git. run ( & [ "show" , "--pretty=format:" , "--stat" , "HEAD~" ] ) ?;
6457+ insta:: assert_snapshot!( & stdout, @"
6458+ test1.txt => test1-renamed.txt | 0
6459+ 1 file changed, 0 insertions(+), 0 deletions(-)
6460+ " ) ;
6461+
6462+ let ( stdout, _stderr) = git. run ( & [ "show" , "--pretty=format:" , "--stat" , "HEAD~~" ] ) ?;
6463+ insta:: assert_snapshot!( & stdout, @"
6464+ test2.txt | 1 +
6465+ 1 file changed, 1 insertion(+)
6466+ " ) ;
6467+ }
6468+
6469+ {
6470+ let ( stdout, _stderr) = git. branchless (
6471+ "move" ,
6472+ & [ "--in-memory" , "--fixup" , "-x" , "HEAD~" , "-d" , "HEAD~~" ] ,
6473+ ) ?;
6474+
6475+ insta:: assert_snapshot!( stdout, @"
6476+ Attempting rebase in-memory...
6477+ [1/2] Committed as: b2e638e create test2.txt
6478+ [2/2] Committed as: 8b45ead update test2
6479+ branchless: processing 3 rewritten commits
6480+ branchless: running command: <git-executable> checkout 8b45ead20e7afdc53784baf7f3a48c0733147669 --
6481+ O f777ecc (master) create initial.txt
6482+ |
6483+ o 62fc20d create test1.txt
6484+ |
6485+ o b2e638e create test2.txt
6486+ |
6487+ @ 8b45ead update test2
6488+ In-memory rebase succeeded.
6489+ " ) ;
6490+
6491+ let ( stdout, _stderr) = git. run ( & [ "ls-files" ] ) ?;
6492+ insta:: assert_snapshot!( stdout, @"
6493+ initial.txt
6494+ test1-renamed.txt
6495+ test2.txt
6496+ " ) ;
6497+
6498+ let ( stdout, _stderr) = git. run ( & [ "show" , "--pretty=format:" , "--stat" , "HEAD~" ] ) ?;
6499+ insta:: assert_snapshot!( & stdout, @"
6500+ test1.txt => test1-renamed.txt | 0
6501+ test2.txt | 1 +
6502+ 2 files changed, 1 insertion(+)
6503+ " ) ;
6504+ }
6505+
6506+ Ok ( ( ) )
6507+ }
6508+
64196509#[ test]
64206510fn test_move_reparent ( ) -> eyre:: Result < ( ) > {
64216511 let git = make_git ( ) ?;
0 commit comments