diff options
| author | Junio C Hamano <gitster@pobox.com> | 2008-03-04 00:34:39 -0800 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2008-03-04 00:34:39 -0800 | 
| commit | 27b4070e40a771c41ed581ef1ac98dd43e58ab87 (patch) | |
| tree | 084c3b9f77e5d9e8253a16e6f9baea5d25f77e46 | |
| parent | 4947cf9cc377b15006f3e649c59edf9bc813af6f (diff) | |
| parent | 52dce39762fbec75b2d561e5dedb25b8e51f83eb (diff) | |
| download | git-27b4070e40a771c41ed581ef1ac98dd43e58ab87.tar.gz | |
Merge branch 'maint'
* maint:
  Fix 'git remote show' regression on empty repository in 1.5.4
  Fix incorrect wording in git-merge.txt.
  git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
  Fix random crashes in http_cleanup()
| -rw-r--r-- | Documentation/git-merge.txt | 3 | ||||
| -rw-r--r-- | builtin-ls-remote.c | 5 | ||||
| -rwxr-xr-x | git-merge.sh | 17 | ||||
| -rw-r--r-- | http.c | 14 | ||||
| -rwxr-xr-x | t/t7600-merge.sh | 6 | 
5 files changed, 23 insertions, 22 deletions
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt index 0c9ad7f2bb..c136b10692 100644 --- a/Documentation/git-merge.txt +++ b/Documentation/git-merge.txt @@ -68,7 +68,8 @@ HOW MERGE WORKS  ---------------  A merge is always between the current `HEAD` and one or more -remote branch heads, and the index file must exactly match the +commits (usually, branch head or tag), and the index file must +exactly match the  tree of `HEAD` commit (i.e. the contents of the last commit) when  it happens.  In other words, `git-diff --cached HEAD` must  report no changes. diff --git a/builtin-ls-remote.c b/builtin-ls-remote.c index 023754986e..8907a89d6c 100644 --- a/builtin-ls-remote.c +++ b/builtin-ls-remote.c @@ -94,11 +94,8 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)  		transport_set_option(transport, TRANS_OPT_UPLOADPACK, uploadpack);  	ref = transport_get_remote_refs(transport); -	transport_disconnect(transport); - -	if (!ref) +	if (transport_disconnect(transport))  		return 1; -  	for ( ; ref; ref = ref->next) {  		if (!check_ref_type(ref, flags))  			continue; diff --git a/git-merge.sh b/git-merge.sh index 1c123a37e6..03cd39873a 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -37,6 +37,7 @@ use_strategies=  allow_fast_forward=t  allow_trivial_merge=t +squash= no_commit=  dropsave() {  	rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \ @@ -152,17 +153,21 @@ parse_config () {  		--summary)  			show_diffstat=t ;;  		--squash) -			allow_fast_forward=t squash=t no_commit=t ;; +			test "$allow_fast_forward" = t || +				die "You cannot combine --squash with --no-ff." +			squash=t no_commit=t ;;  		--no-squash) -			allow_fast_forward=t squash= no_commit= ;; +			squash= no_commit= ;;  		--commit) -			allow_fast_forward=t squash= no_commit= ;; +			no_commit= ;;  		--no-commit) -			allow_fast_forward=t squash= no_commit=t ;; +			no_commit=t ;;  		--ff) -			allow_fast_forward=t squash= no_commit= ;; +			allow_fast_forward=t ;;  		--no-ff) -			allow_fast_forward=false squash= no_commit= ;; +			test "$squash" != t || +				die "You cannot combine --squash with --no-ff." +			allow_fast_forward=f ;;  		-s|--strategy)  			shift  			case " $all_strategies " in @@ -284,23 +284,15 @@ void http_init(struct remote *remote)  void http_cleanup(void)  {  	struct active_request_slot *slot = active_queue_head; -#ifdef USE_CURL_MULTI -	char *wait_url; -#endif  	while (slot != NULL) {  		struct active_request_slot *next = slot->next; +		if (slot->curl != NULL) {  #ifdef USE_CURL_MULTI -		if (slot->in_use) { -			curl_easy_getinfo(slot->curl, -					  CURLINFO_EFFECTIVE_URL, -					  &wait_url); -			fprintf(stderr, "Waiting for %s\n", wait_url); -			run_active_slot(slot); -		} +			curl_multi_remove_handle(curlm, slot->curl);  #endif -		if (slot->curl != NULL)  			curl_easy_cleanup(slot->curl); +		}  		free(slot);  		slot = next;  	} diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index 50c51c82fa..5d166280cb 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -419,6 +419,7 @@ test_debug 'gitk --all'  test_expect_success 'merge c0 with c1 (no-ff)' '  	git reset --hard c0 && +	git config branch.master.mergeoptions "" &&  	test_tick &&  	git merge --no-ff c1 &&  	verify_merge file result.1 && @@ -427,6 +428,11 @@ test_expect_success 'merge c0 with c1 (no-ff)' '  test_debug 'gitk --all' +test_expect_success 'combining --squash and --no-ff is refused' ' +	test_must_fail git merge --squash --no-ff c1 && +	test_must_fail git merge --no-ff --squash c1 +' +  test_expect_success 'merge c0 with c1 (ff overrides no-ff)' '  	git reset --hard c0 &&  	git config branch.master.mergeoptions "--no-ff" &&  | 
