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

Re: git with custom diff for commits

From
Matthieu Moy <matthieu.moy@imag.fr>
Date
Dec 19, 2007, 09:13 UTC
Message-ID
<vpqodcnvygm.fsf@bauges.imag.fr>
In-Reply-To
<000d01c841c5$386f7350$762a14ac@na.acco.com>
"Gerald Gutierrez" <ggmlfs@gmail.com> writes:
> if (user_redefined_changed)
>   if (user_defn_of_changed(work, head)) commit(work);
> else
>   if (builtin_changed(work, head)) commit(work);
That would lead to even less intuitive semantics.
Suppose your working tree has two changes, like
--- a/file
+++ b/file
@@ ... @@
-old ignored line
+new ignored line
@@ ... @@
-this is relevant
+change

What would git be supposed to do if you ignore anything containing
"ignored"?

If git commits, it will commit both changes. People checking-out the
new revision will get "new ignored line" in the file. So, a portion of
the diff that you wanted to ignore has actually gone into the
repository. IOW, whether "new ignored line" would go into the
repository depends on the presence of another unrelated change.

Perhaps you would have expected this, but I wouldn't, and I bet many
other users wouldn't either. And usually, when you can't have people
agree on a common reasonable semantics, the answer is "don't put it in
git, let people script the semantics they want".


Take another example : I use an external diff tool to work with
OpenDocument files. It converts them into text, and calls "git diff"
on them. My diff driver therefore ignores formatting changes. If I
made only content changes, I get no change with this diff driver.
Still, if I commit, I expect git to record my new formatting.
-- 
Matthieu
Previous: Matthieu MoyNext: Gerald Gutierrez
Message 22 of 24 in “git with custom diff for commits”
  1. Gerald GutierrezDec 17, 2007
  2. Johannes SchindelinDec 17, 2007
  3. Matthieu MoyDec 17, 2007
  4. Johannes SchindelinDec 17, 2007
  5. Junio C HamanoDec 17, 2007
  6. Matthieu MoyDec 18, 2007
  7. Junio C HamanoDec 18, 2007
  8. Gerald GutierrezDec 18, 2007
  9. Junio C HamanoDec 18, 2007
  10. Gerald GutierrezDec 18, 2007
  11. Johannes SchindelinDec 18, 2007
  12. Gerald GutierrezDec 18, 2007
  13. Johannes SchindelinDec 18, 2007
  14. Junio C HamanoDec 18, 2007
  15. Matthieu MoyDec 18, 2007
  16. Gerald GutierrezDec 18, 2007
  17. Johannes SchindelinDec 18, 2007
  18. Martin LanghoffDec 18, 2007
  19. Matthieu MoyDec 19, 2007
  20. Johannes SchindelinDec 19, 2007
  21. Matthieu MoyDec 19, 2007
  22. Matthieu MoyDec 19, 2007
  23. Gerald GutierrezDec 18, 2007
  24. Gerald GutierrezDec 17, 2007

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.