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

Re: [PATCH 05/16] remote: remove dead code in read_branches_file()

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 21, 2013, 22:26 UTC
Message-ID
<7v1u7vkslz.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1371813160-4200-6-git-send-email-artagnon@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> writes:
Show 6 quoted lines
> The first line of the function checks that the remote-name contains a
> slash ('/'), and sets the "slash" variable accordingly.  The only caller
> of read_branches_file() is remote_get_1(); the calling codepath is
> guarded by valid_remote_nick(), which checks that the remote does not
> contain a slash.  Therefore, the "slash" variable can never be set:
> remove the dead code that assumes otherwise.
This is extremely interesting.

As far as I can tell, that valid-remote-nick was done in df93e33c (Validate nicknames of remote branches to prohibit confusing ones, 2008-02-15), and back in that version, the codepath and the feature that wants to see a slash and do magical things, which is described by this comment you are removing:

Show 6 quoted lines
> -	/*
> -	 * With "slash", e.g. "git fetch jgarzik/netdev-2.6" when
> -	 * reading from $GIT_DIR/branches/jgarzik fetches "HEAD" from
> -	 * the partial URL obtained from the branches file plus
> -	 * "/netdev-2.6" and does not store it in any tracking ref.
> -	 * #branch specifier in the file is ignored.

did exist (see "git show df93e33c:remote.c"). It expects to see "jgarzik/netdev-2.6" in remote->name, grabs the leading "jgarzik" part to form ".git/branches/jgarzik" to open and read from, and then appends the remainder "/netdev-2.6" to the "partial URL" it read to come up with the final URL.

So it appears that back then (and througout to today), nobody uses that "partial URL" feature which is specific (and was a rather nice invention/legacy by Cogito) to .git/branches file.

Reminds me of the strategy to deprecate functionality in X (cf. http://lwn.net/Articles/536520/) ;-)

Previous: Ramkumar RamachandraNext: Ramkumar Ramachandra
Message 14 of 43 in “Cleanup {branches,remotes}-file cruft”
  1. 00/16 Cleanup {branches,remotes}-file cruftRamkumar Ramachandra, Jun 21, 2013
  2. 01/16 t/t5505-remote: modernize subshell-style of one testRamkumar Ramachandra, Jun 21, 2013
  3. Junio C HamanoJun 21, 2013
  4. Ramkumar RamachandraJun 22, 2013
  5. 02/16 t/t5505-remote: test push-refspec in branches-fileRamkumar Ramachandra, Jun 21, 2013
  6. Junio C HamanoJun 21, 2013
  7. 03/16 t/t5505-remote: use test_path_is_missingRamkumar Ramachandra, Jun 21, 2013
  8. 04/16 t/t5505-remote: remove dependency on $origin_urlRamkumar Ramachandra, Jun 21, 2013
  9. Junio C HamanoJun 21, 2013
  10. Ramkumar RamachandraJun 22, 2013
  11. Junio C HamanoJun 22, 2013
  12. Ramkumar RamachandraJun 23, 2013
  13. 05/16 remote: remove dead code in read_branches_file()Ramkumar Ramachandra, Jun 21, 2013
  14. Junio C HamanoJun 21, 2013
  15. Ramkumar RamachandraJun 22, 2013
  16. Junio C HamanoJun 23, 2013
  17. Ramkumar RamachandraJun 23, 2013
  18. Junio C HamanoJun 23, 2013
  19. 06/16 t/t5505-remote: test url-with-# in branches-fileRamkumar Ramachandra, Jun 21, 2013
  20. Junio C HamanoJun 21, 2013
  21. Ramkumar RamachandraJun 22, 2013
  22. 07/16 t/t5516-fetch-push: don't use branches-fileRamkumar Ramachandra, Jun 21, 2013
  23. Junio C HamanoJun 21, 2013
  24. 08/16 t/t5516-fetch-push: use test_config()Ramkumar Ramachandra, Jun 21, 2013
  25. Junio C HamanoJun 21, 2013
  26. Ramkumar RamachandraJun 22, 2013
  27. Johannes SixtJun 22, 2013
  28. 09/16 ls-remote doc: fix example invocation on git.gitRamkumar Ramachandra, Jun 21, 2013
  29. Junio C HamanoJun 21, 2013
  30. 10/16 ls-remote doc: rewrite <repository> paragraphRamkumar Ramachandra, Jun 21, 2013
  31. Junio C HamanoJun 21, 2013
  32. 11/16 ls-remote doc: don't encourage use of branches-fileRamkumar Ramachandra, Jun 21, 2013
  33. 12/16 t/t5505-remote: modernize subshell-style of one testRamkumar Ramachandra, Jun 21, 2013
  34. 13/16 t/t5505-remote: test multiple push/pull in remotes-fileRamkumar Ramachandra, Jun 21, 2013
  35. Eric SunshineJun 21, 2013
  36. Ramkumar RamachandraJun 22, 2013
  37. 14/16 t/t5510-fetch: don't use remotes-fileRamkumar Ramachandra, Jun 21, 2013
  38. 15/16 t/t5515-fetch-merge-logic: don't use {branches,remotes}-fileRamkumar Ramachandra, Jun 21, 2013
  39. 16/16 remote: deprecate read_{branches,remotes}_fileRamkumar Ramachandra, Jun 21, 2013
  40. Junio C HamanoJun 21, 2013
  41. Ramkumar RamachandraJun 21, 2013
  42. Junio C HamanoJun 21, 2013
  43. Ramkumar RamachandraJun 21, 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.