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

Re: [PATCH 0/9] difftool: teach command to perform directory diffs

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 17, 2012, 02:26 UTC
Message-ID
<CAFouetgqsLv9HUYiUXe8aw+NQ-i=k+OGosPRNKSrqePf5wUnQA@mail.gmail.com>
In-Reply-To
<7vlin0dlrm.fsf@alter.siamese.dyndns.org>
On Fri, Mar 16, 2012 at 10:06 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> Tim Henigan <tim.henigan@gmail.com> writes:
>
>> This is the second phase of development for this feature. The first phase
>> was added as a separate command (git diffall) in 1252bbe (contrib: add
>> git-diffall script).
>
> Ummm.  I do not think the first step is not even done yet; fixing the
> whitespace-in-pathspec and whitespace-or-lf-in-paths issues now the script
> is in contrib/, while having people play with it.

I began fixing those issues in 'git-diffall' by rewriting the loop that populates the tmp dirs in Perl. By the time I changed the loop to use 'git diff --raw -z' and handle working copy changes and submodules, it seemed I was very near to finishing the things I wanted to accomplish in "phase 2". Finishing the work by updating 'difftool' seemed to actually be easier than trying to update 'diffall'.

I realize the feature hasn't had any time to cook in contrib/...perhaps I am over-enthusiastic. However, the 'diffall' concept has been in steady use by a small audience for nearly two years (by people who downloaded/forked the GitHub project). This past week I was lucky enough to have some time to study the problem and propose a solution. If it needs to wait while 'diffall' cooks in contrib, I will try to be more patient ;)

The changes in patches 1-6 may be useful regardless. They cut the length of the script in half without changing how it behaves. The only functional change in those patches is that `git difftool -h` now finishes with exit(0) instead of exit(1). I understand that may not be enough reason to accept such a large change in working code...but like I said, I was lucky enough to have time to study the problem in detail this week.

Previous: Junio C HamanoNext: Junio C Hamano
Message 10 of 26 in “difftool: teach command to perform directory diffs”
  1. 0/9 difftool: teach command to perform directory diffsTim Henigan, Mar 17, 2012
  2. 1/9 difftool: parse options using Getopt::LongTim Henigan, Mar 17, 2012
  3. David AguilarMar 17, 2012
  4. Tim HeniganMar 17, 2012
  5. David AguilarMar 18, 2012
  6. 2/9 difftool: exit(0) when usage is printedTim Henigan, Mar 17, 2012
  7. 3/9 difftool: remove explicit change of PATHTim Henigan, Mar 17, 2012
  8. 4/9 difftool: stop appending '.exe' to gitTim Henigan, Mar 17, 2012
  9. Junio C HamanoMar 17, 2012
  10. Tim HeniganMar 17, 2012
  11. Junio C HamanoMar 17, 2012
  12. 0/9 difftool: teach command to perform directory diffsTim Henigan, Mar 18, 2012
  13. 1/9 difftool: parse options using Getopt::LongTim Henigan, Mar 18, 2012
  14. 2/9 difftool: exit(0) when usage is printedTim Henigan, Mar 18, 2012
  15. 3/9 difftool: remove explicit change of PATHTim Henigan, Mar 18, 2012
  16. 4/9 difftool: stop appending '.exe' to gitTim Henigan, Mar 18, 2012
  17. 5/9 difftool: eliminate setup_environment functionTim Henigan, Mar 18, 2012
  18. 6/9 difftool: replace system call with Git::command_noisyTim Henigan, Mar 18, 2012
  19. 7/9 difftool: teach difftool to handle directory diffsTim Henigan, Mar 18, 2012
  20. 8/9 difftool: teach dir-diff to copy modified files back to working treeTim Henigan, Mar 18, 2012
  21. 9/9 difftool: print list of valid tools with '--tool-help'Tim Henigan, Mar 18, 2012
  22. Junio C HamanoMar 19, 2012
  23. David AguilarMar 20, 2012
  24. Junio C HamanoMar 20, 2012
  25. Tim HeniganMar 20, 2012
  26. Junio C HamanoMar 20, 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.