@@ -1423,7 +1423,6 @@ static int submodule_update_head(git_submodule *submodule)
1423
1423
return 0 ;
1424
1424
}
1425
1425
1426
-
1427
1426
int git_submodule_reload (git_submodule * sm , int force )
1428
1427
{
1429
1428
int error = 0 ;
@@ -1433,35 +1432,30 @@ int git_submodule_reload(git_submodule *sm, int force)
1433
1432
1434
1433
assert (sm );
1435
1434
1436
- /* refresh index data */
1437
- if ((error = submodule_update_index (sm )) < 0 )
1438
- return error ;
1439
-
1440
- /* refresh HEAD tree data */
1441
- if ((error = submodule_update_head (sm )) < 0 )
1442
- return error ;
1435
+ if (!git_repository_is_bare (sm -> repo )) {
1436
+ /* refresh config data */
1437
+ mods = gitmodules_snapshot (sm -> repo );
1438
+ if (mods != NULL ) {
1439
+ error = submodule_read_config (sm , mods );
1440
+ git_config_free (mods );
1443
1441
1444
- /* done if bare */
1445
- if ( git_repository_is_bare ( sm -> repo ))
1446
- return error ;
1442
+ if ( error < 0 )
1443
+ return error ;
1444
+ }
1447
1445
1448
- /* refresh config data */
1449
- mods = gitmodules_snapshot ( sm -> repo );
1450
- if ( mods != NULL ) {
1451
- error = submodule_read_config ( sm , mods );
1452
- git_config_free ( mods );
1446
+ /* refresh wd data */
1447
+ sm -> flags &=
1448
+ ~( GIT_SUBMODULE_STATUS_IN_WD |
1449
+ GIT_SUBMODULE_STATUS__WD_OID_VALID |
1450
+ GIT_SUBMODULE_STATUS__WD_FLAGS );
1453
1451
1454
- if (error < 0 ) {
1455
- return error ;
1456
- }
1452
+ error = submodule_load_from_wd_lite (sm );
1457
1453
}
1458
1454
1459
- /* refresh wd data */
1460
- sm -> flags &=
1461
- ~(GIT_SUBMODULE_STATUS_IN_WD | GIT_SUBMODULE_STATUS__WD_OID_VALID |
1462
- GIT_SUBMODULE_STATUS__WD_FLAGS );
1455
+ if (error == 0 && (error = submodule_update_index (sm )) == 0 )
1456
+ error = submodule_update_head (sm );
1463
1457
1464
- return submodule_load_from_wd_lite ( sm ) ;
1458
+ return error ;
1465
1459
}
1466
1460
1467
1461
static void submodule_copy_oid_maybe (
0 commit comments