Commit f6f48f9008a9aaba5cbcfc611b616d8ae332b5e3

Russell Belfer 2013-05-01T04:57:05

Simplify error reporting

diff --git a/src/clone.c b/src/clone.c
index aeb7bbf..a197886 100644
--- a/src/clone.c
+++ b/src/clone.c
@@ -387,18 +387,6 @@ static int setup_remotes_and_fetch(
 }
 
 
-static bool path_is_okay(const char *path)
-{
-	/* The path must either not exist, or be an empty directory */
-	if (!git_path_exists(path)) return true;
-	if (!git_path_is_empty_dir(path)) {
-		giterr_set(GITERR_INVALID,
-					  "'%s' exists and is not an empty directory", path);
-		return false;
-	}
-	return true;
-}
-
 static bool should_checkout(
 	git_repository *repo,
 	bool is_bare,
@@ -444,7 +432,10 @@ int git_clone(
 	normalize_options(&normOptions, options);
 	GITERR_CHECK_VERSION(&normOptions, GIT_CLONE_OPTIONS_VERSION, "git_clone_options");
 
-	if (!path_is_okay(local_path)) {
+	/* Only clone to a new directory or an empty directory */
+	if (git_path_exists(local_path) && !git_path_is_empty_dir(local_path)) {
+		giterr_set(GITERR_INVALID,
+			"'%s' exists and is not an empty directory", path);
 		return GIT_ERROR;
 	}