@@ -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' ))