git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 4/6] transport-helper: warn when refspec is not used

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 18, 2013, 00:05 UTC
Message-ID
<1366243524-18202-5-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1366243524-18202-1-git-send-email-felipe.contreras@gmail.com>

For the modes that need it. In the future we should probably error out, instead of providing half-assed support.

The reason we want to do this is because if it's not present, the remote helper might be updating refs/heads/*, or refs/remotes/origin/*, directly, and in the process fetch will get confused trying to update refs that are already updated, or older than what they should be. We shouldn't be messing with the rest of git.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t5801-remote-helpers.sh | 6 ++++--
 transport-helper.c        | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
index 3eeb309..1bb7529 100755
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -100,14 +100,16 @@ test_expect_failure 'push new branch with old:new refspec' '
 
 test_expect_success 'cloning without refspec' '
 	GIT_REMOTE_TESTGIT_REFSPEC="" \
-	git clone "testgit::${PWD}/server" local2 &&
+	git clone "testgit::${PWD}/server" local2 2> error &&
+	grep "This remote helper should implement refspec capability" error &&
 	compare_refs local2 HEAD server HEAD
 '
 
 test_expect_success 'pulling without refspecs' '
 	(cd local2 &&
 	git reset --hard &&
-	GIT_REMOTE_TESTGIT_REFSPEC="" git pull) &&
+	GIT_REMOTE_TESTGIT_REFSPEC="" git pull 2> ../error) &&
+	grep "This remote helper should implement refspec capability" error &&
 	compare_refs local2 HEAD server HEAD
 '
 
diff --git a/transport-helper.c b/transport-helper.c
index 4d98567..573eaf7 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -215,6 +215,8 @@ static struct child_process *get_helper(struct transport *transport)
 			free((char *)refspecs[i]);
 		}
 		free(refspecs);
+	} else if (data->import || data->bidi_import || data->export) {
+		warning("This remote helper should implement refspec capability.");
 	}
 	strbuf_release(&buf);
 	if (debug)
-- 
1.8.2.1.679.g509521a
Previous: Stefano LattariniNext: Felipe Contreras
Message 11 of 14 in “transport-helper: some clarifications and a fix”
  1. 0/6 transport-helper: some clarifications and a fixFelipe Contreras, Apr 18, 2013
  2. 1/6 transport-helper: clarify *:* refspecFelipe Contreras, Apr 18, 2013
  3. Thomas RastApr 18, 2013
  4. Felipe ContrerasApr 18, 2013
  5. Thomas RastApr 18, 2013
  6. Felipe ContrerasApr 18, 2013
  7. 2/6 transport-helper: update refspec documentationFelipe Contreras, Apr 18, 2013
  8. 3/6 transport-helper: clarify pushing without refspecsFelipe Contreras, Apr 18, 2013
  9. Sverre RabbelierApr 18, 2013
  10. Stefano LattariniApr 18, 2013
  11. 4/6 transport-helper: warn when refspec is not usedFelipe Contreras, Apr 18, 2013
  12. 5/6 transport-helper: trivial code shuffleFelipe Contreras, Apr 18, 2013
  13. 6/6 transport-helper: update remote helper namespaceFelipe Contreras, Apr 18, 2013
  14. Felipe ContrerasApr 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.