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

Re: What's cooking in git.git (Apr 2018, #02; Tue, 17)

From
Elijah Newren <newren@gmail.com>
Date
Apr 18, 2018, 19:39 UTC
Message-ID
<CABPp-BEKe1u_e=5V471PzoJjdvuYZ2n8H=h7mVa8fOR7XsoytA@mail.gmail.com>
In-Reply-To
<xmqqzi22tlfx.fsf@gitster-ct.c.googlers.com>
On Mon, Apr 16, 2018 at 11:07 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 36 quoted lines
> * en/rename-directory-detection-reboot (2018-04-16) 32 commits
>  - merge-recursive: fix check for skipability of working tree updates
>  - merge-recursive: Fix was_tracked() to quit lying with some renamed paths
>  - t6046: testcases checking whether updates can be skipped in a merge
>  - merge-recursive: improve output precision around skipping updates
>  - merge-recursive: avoid spurious rename/rename conflict from dir renames
>  - directory rename detection: new testcases showcasing a pair of bugs
>  - merge-recursive: fix remaining directory rename + dirty overwrite cases
>  - merge-recursive: fix overwriting dirty files involved in renames
>  - merge-recursive: avoid clobbering untracked files with directory renames
>  - merge-recursive: apply necessary modifications for directory renames
>  - merge-recursive: when comparing files, don't include trees
>  - merge-recursive: check for file level conflicts then get new name
>  - merge-recursive: add computation of collisions due to dir rename & merging
>  - merge-recursive: check for directory level conflicts
>  - merge-recursive: add get_directory_renames()
>  - merge-recursive: make a helper function for cleanup for handle_renames
>  - merge-recursive: split out code for determining diff_filepairs
>  - merge-recursive: make !o->detect_rename codepath more obvious
>  - merge-recursive: fix leaks of allocated renames and diff_filepairs
>  - merge-recursive: introduce new functions to handle rename logic
>  - merge-recursive: move the get_renames() function
>  - directory rename detection: tests for handling overwriting dirty files
>  - directory rename detection: tests for handling overwriting untracked files
>  - directory rename detection: miscellaneous testcases to complete coverage
>  - directory rename detection: testcases exploring possibly suboptimal merges
>  - directory rename detection: more involved edge/corner testcases
>  - directory rename detection: testcases checking which side did the rename
>  - directory rename detection: files/directories in the way of some renames
>  - directory rename detection: partially renamed directory testcase/discussion
>  - directory rename detection: testcases to avoid taking detection too far
>  - directory rename detection: directory splitting testcases
>  - directory rename detection: basic testcases
>
>  Reboot of an attempt to detect wholesale directory renames and use
>  it while merging.

Thanks for rebasing/cherry-picking the series and applying my newest changes. It looks like a couple of your squashed fixes in the rebase of the old commits (designed to deal with compilation errors from the tree entry functions having been converted to object_id) went into the wrong commits, breaking bisectability. When I send out my next round, I'll only replace the top four commits, but I'll add in a few commits that can be squashed to fix the bisectability.

Also, the newest patches can still be fooled by a specially crafted rename/add conflict, but I believe with a small restructure I can both simplify the code and cover all the cases.

Previous: Junio C HamanoNext: Junio C Hamano
Message 11 of 18 in “What's cooking in git.git (Apr 2018, #02; Tue, 17)”
  1. Junio C HamanoApr 17, 2018
  2. Eric SunshineApr 17, 2018
  3. Stefan BellerApr 17, 2018
  4. Junio C HamanoApr 18, 2018
  5. Derrick StoleeApr 18, 2018
  6. Junio C HamanoApr 18, 2018
  7. Jonathan TanApr 18, 2018
  8. Junio C HamanoApr 18, 2018
  9. Christian HesseApr 18, 2018
  10. Junio C HamanoApr 18, 2018
  11. Elijah NewrenApr 18, 2018
  12. Junio C HamanoApr 18, 2018
  13. Sergey OrganovApr 19, 2018
  14. js/rebase-recreate-merges, was Re: What's cooking in git.git (Apr 2018, #02; Tue, 17)Johannes Schindelin, Apr 20, 2018
  15. Taylor BlauApr 22, 2018
  16. Junio C HamanoApr 22, 2018
  17. Taylor BlauApr 22, 2018
  18. Junio C HamanoApr 23, 2018

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.