@@ -317,8 +317,8 @@ def _do_base_tests(self, rwrepo):
317
317
# forcibly delete the child repository
318
318
prev_count = len (sm .children ())
319
319
self .failUnlessRaises (ValueError , csm .remove , force = True )
320
- # We removed sm, which removed all submodules. Howver , the instance we have
321
- # still points to the commit prior to that, where it still existed
320
+ # We removed sm, which removed all submodules. However , the instance we
321
+ # have still points to the commit prior to that, where it still existed
322
322
csm .set_parent_commit (csm .repo .commit (), check = False )
323
323
assert not csm .exists ()
324
324
assert not csm .module_exists ()
@@ -801,6 +801,31 @@ def assert_exists(sm, value=True):
801
801
assert os .path .isdir (sm_module_path ) == dry_run
802
802
# end for each dry-run mode
803
803
804
+ @with_rw_directory
805
+ def test_remove_norefs (self , rwdir ):
806
+ parent = git .Repo .init (os .path .join (rwdir , 'parent' ))
807
+ sm_name = 'mymodules/myname'
808
+ sm = parent .create_submodule (sm_name , sm_name , url = self ._small_repo_url ())
809
+ parent .index .commit ("Added submodule" )
810
+
811
+ # Adding a remote without fetching so would have no references
812
+ sm .repo .create_remote ('special' , 'git@server-shouldnotmatter:repo.git' )
813
+ assert sm .rename (sm_name ) is sm and sm .name == sm_name
814
+ assert not sm .repo .is_dirty (index = True , working_tree = False , untracked_files = False )
815
+
816
+ new_path = 'renamed/myname'
817
+ assert sm .move (new_path ).name == new_path
818
+
819
+ new_sm_name = "shortname"
820
+ assert sm .rename (new_sm_name ) is sm
821
+ assert sm .repo .is_dirty (index = True , working_tree = False , untracked_files = False )
822
+ assert sm .exists ()
823
+
824
+ sm_mod = sm .module ()
825
+ if os .path .isfile (os .path .join (sm_mod .working_tree_dir , '.git' )) == sm ._need_gitfile_submodules (parent .git ):
826
+ assert sm_mod .git_dir .endswith (join_path_native ('.git' , 'modules' , new_sm_name ))
827
+ # end
828
+
804
829
@with_rw_directory
805
830
def test_rename (self , rwdir ):
806
831
parent = git .Repo .init (os .path .join (rwdir , 'parent' ))
0 commit comments