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

Re: [PATCH v6 02/10] replace: add --graft option

From
Christian Couder <christian.couder@gmail.com>
Date
Jul 11, 2014, 08:59 UTC
Message-ID
<CAP8UFD0_m5aFVcBQr3d9pXR=9rLjAVPGrj=UsBYFcnTQFwNKGA@mail.gmail.com>
In-Reply-To
<xmqqegxt86ba.fsf@gitster.dls.corp.google.com>
On Thu, Jul 10, 2014 at 7:36 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>>>
>>> As the user might expect that a new replace ref was created on success
>>> (0 exit code), and as we should at least warn if we would create a
>>> commit that is the same as an existing one,...
>>
>> Why is it an event that needs a warning?  I do not buy that "as we
>> should at least" at all.
Here you ask why this event needs a warning...
Show 9 quoted lines
> Ehh, it came a bit differently from what I meant.  Perhaps s/do not
> buy/do not understand/ is closer to what I think---that is, it is
> not like I with a strong conviction think you are wrong.  It is more
> like I do not understand why you think it needs a warning, meaing
> you would need to explain it better.
>
>> If you say "make sure A's parent is B" and then you asked the same
>> thing again when there already is a replacement in place, that
>> should be a no-op.

(When there is already a replacement in place we error out in replace_object_sha1() unless --force is used. What we are talking about here is what happens if the replacement commit is the same as the original commit.)

>> "Making sure A's parent is B" would be an
>> idempotent operation, no?  Why not just make sure A's parent is
>> already B and report "Your wish has been granted" to the user?
... and here you say we should report "your wish has been granted"...
>> Why would it be simpler for the user to get an error, inspect the
>> situation and realize that his wish has been granted after all?

... but for me reporting to the user "your wish has been granted" and warning (or errorring out) saying "the new commit would be the same as the old one" are nearly the same thing.

So I wonder what exactly you are not happy with.

Is it the fact that I use the error() function, because it would prefix the message with "fatal:" and that would be too scary?

Is it because with error() the exit code would not be 0?

Is it because the message "new commit is the same as the old one: '%s'" is too scary or unnecessarily technical by itself?

Is it ok if I just print the message on stderr without "warning:" or "fatal:" in front of it?

By the way, when I say "As ... and ..., I think it is just simpler to error out in this case.", I mean that it is simpler from the developer's point of view, not necessarily for the user.

Of course I am ok with improving things for the user even if it requires more code/work, but it is difficult to properly do that if I don't see how I could do it.

Thanks, Christian.

Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 26 in “Add --graft option to git replace”
  1. 00/10 Add --graft option to git replaceChristian Couder, Jul 7, 2014
  2. 01/10 replace: cleanup redirection style in testsChristian Couder, Jul 7, 2014
  3. 02/10 replace: add --graft optionChristian Couder, Jul 7, 2014
  4. Junio C HamanoJul 9, 2014
  5. Christian CouderJul 10, 2014
  6. Junio C HamanoJul 10, 2014
  7. Junio C HamanoJul 10, 2014
  8. Christian CouderJul 11, 2014
  9. Junio C HamanoJul 11, 2014
  10. Christian CouderJul 11, 2014
  11. Junio C HamanoJul 11, 2014
  12. Jeff KingJul 11, 2014
  13. 03/10 replace: add test for --graftChristian Couder, Jul 7, 2014
  14. Junio C HamanoJul 7, 2014
  15. Christian CouderJul 8, 2014
  16. 04/10 Documentation: replace: add --graft optionChristian Couder, Jul 7, 2014
  17. 05/10 contrib: add convert-grafts-to-replace-refs.shChristian Couder, Jul 7, 2014
  18. 06/10 replace: remove signature when using --graftChristian Couder, Jul 7, 2014
  19. 07/10 replace: add test for --graft with signed commitChristian Couder, Jul 7, 2014
  20. 08/10 commit: add for_each_mergetag()Christian Couder, Jul 7, 2014
  21. Junio C HamanoJul 7, 2014
  22. Christian CouderJul 8, 2014
  23. 09/10 replace: check mergetags when using --graftChristian Couder, Jul 7, 2014
  24. Junio C HamanoJul 7, 2014
  25. Christian CouderJul 8, 2014
  26. 10/10 replace: add test for --graft with a mergetagChristian Couder, Jul 7, 2014

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.