mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-13 21:29:14 +00:00
repo::reservedname: test a submodule update
Test an initial submodule update, where we are trying to checkout the submodule for the first time, and placing a file within the submodule working directory with the same name as the submodule (and consequently, the same name as the repository itself).
This commit is contained in:
parent
add0378d8e
commit
e8ddd8d76c
@ -106,3 +106,27 @@ void test_repo_reservedname__submodule_pointer(void)
|
||||
git_repository_free(sub_repo);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Like the `submodule_pointer` test (above), this ensures that we do not
|
||||
* follow the gitlink to the submodule's repository location and treat that
|
||||
* as a reserved name. This tests at an initial submodule update, where the
|
||||
* submodule repo is being created.
|
||||
*/
|
||||
void test_repo_reservedname__submodule_pointer_during_create(void)
|
||||
{
|
||||
git_repository *repo;
|
||||
git_submodule *sm;
|
||||
git_submodule_update_options update_options = GIT_SUBMODULE_UPDATE_OPTIONS_INIT;
|
||||
git_buf url = GIT_BUF_INIT;
|
||||
|
||||
repo = setup_fixture_super();
|
||||
|
||||
cl_git_pass(git_buf_joinpath(&url, clar_sandbox_path(), "sub.git"));
|
||||
cl_repo_set_string(repo, "submodule.sub.url", url.ptr);
|
||||
|
||||
cl_git_pass(git_submodule_lookup(&sm, repo, "sub"));
|
||||
cl_git_pass(git_submodule_update(sm, 1, &update_options));
|
||||
|
||||
git_submodule_free(sm);
|
||||
git_buf_free(&url);
|
||||
}
|
||||
|
BIN
tests/resources/sub.git/HEAD
Normal file
BIN
tests/resources/sub.git/HEAD
Normal file
Binary file not shown.
BIN
tests/resources/sub.git/config
Normal file
BIN
tests/resources/sub.git/config
Normal file
Binary file not shown.
BIN
tests/resources/sub.git/index
Normal file
BIN
tests/resources/sub.git/index
Normal file
Binary file not shown.
BIN
tests/resources/sub.git/logs/HEAD
Normal file
BIN
tests/resources/sub.git/logs/HEAD
Normal file
Binary file not shown.
BIN
tests/resources/sub.git/logs/refs/heads/master
Normal file
BIN
tests/resources/sub.git/logs/refs/heads/master
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
tests/resources/sub.git/refs/heads/master
Normal file
BIN
tests/resources/sub.git/refs/heads/master
Normal file
Binary file not shown.
BIN
tests/resources/super/.gitted/COMMIT_EDITMSG
Normal file
BIN
tests/resources/super/.gitted/COMMIT_EDITMSG
Normal file
Binary file not shown.
BIN
tests/resources/super/.gitted/HEAD
Normal file
BIN
tests/resources/super/.gitted/HEAD
Normal file
Binary file not shown.
BIN
tests/resources/super/.gitted/config
Normal file
BIN
tests/resources/super/.gitted/config
Normal file
Binary file not shown.
BIN
tests/resources/super/.gitted/index
Normal file
BIN
tests/resources/super/.gitted/index
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
tests/resources/super/.gitted/refs/heads/master
Normal file
BIN
tests/resources/super/.gitted/refs/heads/master
Normal file
Binary file not shown.
BIN
tests/resources/super/gitmodules
Normal file
BIN
tests/resources/super/gitmodules
Normal file
Binary file not shown.
@ -126,6 +126,22 @@ git_repository *setup_fixture_submod2(void)
|
||||
return repo;
|
||||
}
|
||||
|
||||
git_repository *setup_fixture_super(void)
|
||||
{
|
||||
git_repository *repo = cl_git_sandbox_init("super");
|
||||
|
||||
cl_fixture_sandbox("sub.git");
|
||||
p_mkdir("super/sub", 0777);
|
||||
|
||||
rewrite_gitmodules(git_repository_workdir(repo));
|
||||
|
||||
cl_set_cleanup(cleanup_fixture_submodules, "sub.git");
|
||||
|
||||
cl_git_pass(git_repository_reinit_filesystem(repo, 1));
|
||||
|
||||
return repo;
|
||||
}
|
||||
|
||||
git_repository *setup_fixture_submodule_simple(void)
|
||||
{
|
||||
git_repository *repo = cl_git_sandbox_init("submodule_simple");
|
||||
|
@ -4,6 +4,7 @@ extern void rewrite_gitmodules(const char *workdir);
|
||||
extern git_repository *setup_fixture_submodules(void);
|
||||
extern git_repository *setup_fixture_submod2(void);
|
||||
extern git_repository *setup_fixture_submodule_simple(void);
|
||||
extern git_repository *setup_fixture_super(void);
|
||||
|
||||
extern unsigned int get_submodule_status(git_repository *, const char *);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user