Commit c1dbfcbb by Carlos Martín Nieto

clone: add flag not to link

parent 121b2673
...@@ -27,6 +27,7 @@ typedef enum { ...@@ -27,6 +27,7 @@ typedef enum {
GIT_CLONE_LOCAL_AUTO, GIT_CLONE_LOCAL_AUTO,
GIT_CLONE_LOCAL, GIT_CLONE_LOCAL,
GIT_CLONE_NO_LOCAL, GIT_CLONE_NO_LOCAL,
GIT_CLONE_LOCAL_NO_LINKS,
} git_clone_local_t; } git_clone_local_t;
/** /**
......
...@@ -357,7 +357,7 @@ int git_clone__should_clone_local(const char *url, git_clone_local_t local) ...@@ -357,7 +357,7 @@ int git_clone__should_clone_local(const char *url, git_clone_local_t local)
is_url = !git__prefixcmp(url, "file://"); is_url = !git__prefixcmp(url, "file://");
if (is_url && local != GIT_CLONE_LOCAL) if (is_url && local != GIT_CLONE_LOCAL && local != GIT_CLONE_LOCAL_NO_LINKS )
return false; return false;
path = url; path = url;
......
...@@ -19,11 +19,13 @@ void test_clone_local__should_clone_local(void) ...@@ -19,11 +19,13 @@ void test_clone_local__should_clone_local(void)
cl_git_pass(git_buf_printf(&buf, "file://%s", cl_fixture("testrepo.git"))); cl_git_pass(git_buf_printf(&buf, "file://%s", cl_fixture("testrepo.git")));
cl_assert_equal_i(false, git_clone__should_clone_local(buf.ptr, GIT_CLONE_LOCAL_AUTO)); cl_assert_equal_i(false, git_clone__should_clone_local(buf.ptr, GIT_CLONE_LOCAL_AUTO));
cl_assert_equal_i(true, git_clone__should_clone_local(buf.ptr, GIT_CLONE_LOCAL)); cl_assert_equal_i(true, git_clone__should_clone_local(buf.ptr, GIT_CLONE_LOCAL));
cl_assert_equal_i(true, git_clone__should_clone_local(buf.ptr, GIT_CLONE_LOCAL_NO_LINKS));
cl_assert_equal_i(false, git_clone__should_clone_local(buf.ptr, GIT_CLONE_NO_LOCAL)); cl_assert_equal_i(false, git_clone__should_clone_local(buf.ptr, GIT_CLONE_NO_LOCAL));
git_buf_free(&buf); git_buf_free(&buf);
path = cl_fixture("testrepo.git"); path = cl_fixture("testrepo.git");
cl_assert_equal_i(true, git_clone__should_clone_local(path, GIT_CLONE_LOCAL_AUTO)); cl_assert_equal_i(true, git_clone__should_clone_local(path, GIT_CLONE_LOCAL_AUTO));
cl_assert_equal_i(true, git_clone__should_clone_local(path, GIT_CLONE_LOCAL)); cl_assert_equal_i(true, git_clone__should_clone_local(path, GIT_CLONE_LOCAL));
cl_assert_equal_i(true, git_clone__should_clone_local(path, GIT_CLONE_LOCAL_NO_LINKS));
cl_assert_equal_i(false, git_clone__should_clone_local(path, GIT_CLONE_NO_LOCAL)); cl_assert_equal_i(false, git_clone__should_clone_local(path, GIT_CLONE_NO_LOCAL));
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment