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

Re: [PATCH 6/8] apply: fall back on three-way merge

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
May 10, 2012, 07:26 UTC
Message-ID
<vpqy5p0bioh.fsf@bauges.imag.fr>
In-Reply-To
<1336629745-22436-7-git-send-email-gitster@pobox.com>
Junio C Hamano <gitster@pobox.com> writes:
> +	/* Preimage the patch was prepared for */
> +	if (get_sha1(patch->old_sha1_prefix, pre_sha1) ||
> +	    read_blob_object(&buf, pre_sha1, patch->old_mode))
> +		return error("repository lacks necessary blobs to fall back on 3-way merge.");

What happens if there are multiple objects for the same pre_sha1? It's just 7 characters, so conflicts are unlikely but possible. Ideally, we could try applying the patch to all the blobs having the same prefix sha1, and take the first one for which the patch applies cleanly.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Junio C HamanoNext: Junio C Hamano
Message 10 of 19 in “"git apply --threeway"”
  1. 0/8 "git apply --threeway"Junio C Hamano, May 10, 2012
  2. 1/8 apply: reformat commentJunio C Hamano, May 10, 2012
  3. 2/8 apply: accept --threeway command line optionJunio C Hamano, May 10, 2012
  4. Nguyen Thai Ngoc DuyMay 10, 2012
  5. Junio C HamanoMay 10, 2012
  6. 3/8 apply: split load_preimage() helper function outJunio C Hamano, May 10, 2012
  7. 4/8 apply: clear_image() clears things a bit moreJunio C Hamano, May 10, 2012
  8. 5/8 apply: refactor read_file_or_gitlink()Junio C Hamano, May 10, 2012
  9. 6/8 apply: fall back on three-way mergeJunio C Hamano, May 10, 2012
  10. Matthieu MoyMay 10, 2012
  11. Junio C HamanoMay 10, 2012
  12. Matthieu MoyMay 10, 2012
  13. Jeff KingMay 10, 2012
  14. Junio C HamanoMay 10, 2012
  15. Jeff KingMay 10, 2012
  16. 7/8 apply: plug the three-way merge logic inJunio C Hamano, May 10, 2012
  17. 8/8 apply: register conflicted stages to the indexJunio C Hamano, May 10, 2012
  18. Matthieu MoyMay 10, 2012
  19. Junio C HamanoMay 10, 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.