diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-07-02 08:35:05 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-07-02 08:35:05 +0200 |
commit | eb94199fe46f01ebefeaf71cd408a1bd9f1e64fc (patch) | |
tree | 63f0ef7c5afdd367a0a3a895a9821d399bbc6b8d | |
parent | bf7d2761d4d9da79c3ae26e94da6a95b27e8769f (diff) | |
parent | e0af3cb30c10f65f6db802f64a3389f73c0292b7 (diff) | |
download | libgit2-eb94199fe46f01ebefeaf71cd408a1bd9f1e64fc.tar.gz |
Merge pull request #3286 from libgit2/cmn/submodule-duplicate
Correctly delimit the keys for submodule lookup
-rw-r--r-- | src/submodule.c | 2 | ||||
-rw-r--r-- | tests/submodule/lookup.c | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/submodule.c b/src/submodule.c index 17e1a3561..fb3d4bf1e 100644 --- a/src/submodule.c +++ b/src/submodule.c @@ -1385,7 +1385,7 @@ int git_submodule_reload(git_submodule *sm, int force) git_buf_sets(&path, "submodule\\."); git_buf_text_puts_escape_regex(&path, sm->name); - git_buf_puts(&path, ".*"); + git_buf_puts(&path, "\\..*"); if (git_buf_oom(&path)) { error = -1; diff --git a/tests/submodule/lookup.c b/tests/submodule/lookup.c index cddbdcfc2..4d40e2279 100644 --- a/tests/submodule/lookup.c +++ b/tests/submodule/lookup.c @@ -269,3 +269,26 @@ void test_submodule_lookup__just_added(void) refute_submodule_exists(g_repo, "sm_just_added_head", GIT_EEXISTS); } +/* Test_App and Test_App2 are fairly similar names, make sure we load the right one */ +void test_submodule_lookup__prefix_name(void) +{ + git_submodule *sm; + + cl_git_rewritefile("submod2/.gitmodules", + "[submodule \"Test_App\"]\n" + " path = Test_App\n" + " url = ../Test_App\n" + "[submodule \"Test_App2\"]\n" + " path = Test_App2\n" + " url = ../Test_App\n"); + + cl_git_pass(git_submodule_lookup(&sm, g_repo, "Test_App")); + cl_assert_equal_s("Test_App", git_submodule_name(sm)); + + git_submodule_free(sm); + + cl_git_pass(git_submodule_lookup(&sm, g_repo, "Test_App2")); + cl_assert_equal_s("Test_App2", git_submodule_name(sm)); + + git_submodule_free(sm); +} |