Re: [PATCH v2] send-email: add --confirm option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Jay Soffian <jaysoffian@xxxxxxxxx>:

> (Please correct me if my summary is wrong, but that's how I recall it.)

I think your summary has some things right.

 - Many people complained git-foo being on their paths in the past;
 - Version 1.6.0 removed git-foo from users' path; and
 - Many people didn't like the change after the fact.

However, you are completely wrong about the escape hatch.

If your judgement on how seriously you need to treat the backward compatibility is based on your understanding of the issue you summarized in your message, you need to reconsider what you are proposing, after learning from the true history.

The transition plan was first announced officially as part of the
release notes for version 1.5.4. It said three things:

 - Using dashed forms of git commands (e.g. "git-commit") from the
   command line has been informally deprecated since early 2006, but
   now it officially is, and will be removed in the future.  Use
   dash-less forms (e.g. "git commit") instead.

 - Using dashed forms from your scripts, without first prepending the
   return value from "git --exec-path" to the scripts' PATH, has been
   informally deprecated since early 2006, but now it officially is.

 - Use of dashed forms with "PATH=$(git --exec-path):$PATH; export
   PATH" early in your script is not deprecated with this change.

Notice that:

 - "now" is December 1st, 2007.

 - "will be removed in the future" happened on August 17th, 2008 at version 1.6.0.

 - The notice EXPLICITLY promises to keep supporting the use of git-foo if you prepend output of 'git --exec-path'.

In other words, there was an escape hatch that had been very carefully in preparation for nine months. The same escape hach, and the promise to keep supporting it, was repeated in the release notes for version 1.6.0.

You can refresh your memory (or read it for the first time, if you weren't around back then) with a message from Junio on August 24th, 2008 after version 1.6.0 was released:

http://thread.gmane.org/gmane.comp.version-control.git/93511

It summarized "the original plan" (read the message and find the phrase in the middle) and outlined how it should be implemented if the git community still wanted to go through with the plan.

With the discussion that followed the message, the community decided not to do anything (also known as the "alternative A").

The escape hatch was there from the beginning, is still there, and it will remain there. I should also add that it was Junio's veto of Linus'es proposal to stop installing git-foo commands for builtins that enabled this escape hatch.

http://thread.gmane.org/gmane.comp.version-control.git/51245/focus=51272

By the way, I don't think the lesson you should take home is the need for an escape hatch. Read the message by Junio on August 24th, 2008. Being nice and not too loud during the deprecation period kept users complacent about upcoming changes and upset them when the change finally came. Being un-nice and too loud during the deprecation period would have upset them early instead. You cannot avoid upsetting users either way whenever you change the behavior. That's the lesson you should learn.

-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux