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

Re: [PATCH] Warnings before rebasing -i published history

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 7, 2012, 22:49 UTC
Message-ID
<7vwr3ieo0i.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1339104053-7782-1-git-send-email-Lucien.Kong@ensimag.imag.fr>
Lucien Kong <Lucien.Kong@ensimag.imag.fr> writes:
Show 5 quoted lines
> +# Add a warning notification at the end of each pick or fixup/squash
> +# line of the todo list, providing the picking commit is already
> +# published.
> +warn_published () {
> +	cat "$1" | while read -r command sha1 message

Make it a habit to question yourself whenever you cat a single file and immediately pipe it to elsewhere, i.e.

	cat "$1" | anything
because 99% of the time you are much better off writing
	anything <"$1"
instead.
Show 7 quoted lines
> +	do
> +		test -n "$sha1" || break
> +		if test -n "$(git branch -r --contains "$sha1")"
> +		then
> +			printf "%s\n" "$(sed -e "/"$sha1"/ s|$| [Published]|" "$1")" >"$1"
> +		fi
> +	done
What's inside $() looks like it wants to say something like
	sed -e "/ $sha1 /s/$/ [Published]/" "$1"

but it has a few fishy double-quotes that makes it unclear why $sha1 wants to be outside the quotes.

Why does it need 'printf "%s" $()' in the first place?  Wouldn't
	sed ... >"$1"

sufficient? You let cat read "$1", sed read "$1" and then the loop overwrite "$1", which looks very fishy.

The logic is merely _guessing_ that the commit could have been published, no? The particular remote repository the test happens to find may not be for consumption by other people.

I am afraid that doing this would send users a wrong message that is unnecessarily alarming, especially the marker says "Published" as if it were a confirmed fact.

In short, I am not unsympathetic to the motivation, but I find the resulting user experience (mostly the wording) questionable, and I am not impressed by the implementation very much.

Previous: Junio C HamanoNext: konglu@minatec.inpg.fr
Message 6 of 25 in “Warnings before rebasing -i published history”
  1. Warnings before rebasing -i published historyLucien Kong, Jun 7, 2012
  2. Matthieu MoyJun 7, 2012
  3. konglu@minatec.inpg.frJun 8, 2012
  4. Matthieu MoyJun 8, 2012
  5. Junio C HamanoJun 8, 2012
  6. Junio C HamanoJun 7, 2012
  7. konglu@minatec.inpg.frJun 8, 2012
  8. Matthieu MoyJun 8, 2012
  9. Tomas CarneckyJun 8, 2012
  10. Matthieu MoyJun 8, 2012
  11. Junio C HamanoJun 8, 2012
  12. [PATCHv2] Warnings before rebasing -i published historyLucien Kong, Jun 11, 2012
  13. Matthieu MoyJun 11, 2012
  14. konglu@minatec.inpg.frJun 11, 2012
  15. Matthieu MoyJun 11, 2012
  16. branch --contains is unbearably slow [Re: [PATCHv2] Warnings before rebasing -i published history]Thomas Rast, Jun 11, 2012
  17. Junio C HamanoJun 11, 2012
  18. Thomas RastJun 11, 2012
  19. Thomas RastJun 11, 2012
  20. Junio C HamanoJun 11, 2012
  21. 1/2 Warnings before rebasing -i published historyLucien Kong, Jun 11, 2012
  22. 2/2 Warnings before amending published historyLucien Kong, Jun 11, 2012
  23. Matthieu MoyJun 12, 2012
  24. Junio C HamanoJun 12, 2012
  25. Nguy ThomasJun 12, 2012

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.