Commit Diff


commit - 10c073e79a6033e557a9c5d575b90b28d2d7137d
commit + 55330abe593a76b678063ffc00a39d236a211505
blob - c085ca6e3cbfc30bd34f5607ef6c56114089b979
blob + 61b79dc726c055f64b6137fe879698ad847695f7
--- got/got.c
+++ got/got.c
@@ -1081,8 +1081,10 @@ cmd_clone(int argc, char *argv[])
 
 		error = got_ref_open(&target_ref, repo, target, 0);
 		if (error) {
-			if (error->code == GOT_ERR_NOT_REF)
+			if (error->code == GOT_ERR_NOT_REF) {
+				error = NULL;
 				continue;
+			}
 			goto done;
 		}
 
@@ -1097,7 +1099,8 @@ cmd_clone(int argc, char *argv[])
 			    got_ref_get_symref_target(head_symref));
 
 		error = got_ref_write(head_symref, repo);
-		break;
+		if (error)
+			goto done;
 	}
 
 	/* Create a config file git-fetch(1) can understand. */