Subject: [PATCH] Remove contrib/examples/*

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Sun, 25 Mar 2018 22:57:23 +0200

On Sun, Mar 25 2018, Ævar Arnfjörð Bjarmason wrote:

> There were some side discussions at Git Merge this year about how we
> should just update the README to tell users they can dig these up from
> the history if the need them, do that.
>
> Looking at the "git log" for this directory we get quite a bit more
> patch churn than we should here, mainly from things fixing various
> tree-wide issues.
>
> There's also confusion on the list occasionally about how these should
> be treated, "Re: [PATCH 1/4] stash: convert apply to
> builtin" (<[email-masked]>)
> being the latest example of that.

The people on CC got this, but it seems the git ML rejected the message
as it's too big. The abbreviated patches is here quoted inline, and at:
https://github.com/avar/git/commit/cc578c81c2cb2999b1a0b73954610bd74951c37b

> Signed-off-by: Ævar Arnfjörð Bjarmason <[email-masked]>
> ---
>
> On Sun, Mar 25, 2018 at 6:51 PM, Joel Teichroeb <[email-masked]> wrote:
>> On Sun, Mar 25, 2018 at 1:09 AM, Christian Couder
>> <[email-masked]> wrote:
>>> It seems to me that the apply_stash() shell function is also used in
>>> pop_stash() and in apply_to_branch(). Can the new helper be used there
>>> too instead of apply_stash()? And then could apply_stash() be remove?
>>
>> I wasn't really sure if I should remove code from the .sh file as it
>> seems in the past the old .sh files have been kept around as examples.
>> Has that been done for previous conversions?
>
> I was skimming this patch and it seemed to me like it would be more
> readable if the *.sh code was removed in the same change (if
> possible). It's easier to review like that.
>
> Also, we should just stop maintainign contrib/examples/*.
>
>  contrib/examples/README                |  23 +-
>  contrib/examples/builtin-fetch--tool.c | 575 ---------------
>  contrib/examples/git-am.sh             | 975 ------------------------
>  contrib/examples/git-checkout.sh       | 302 --------
>  contrib/examples/git-clean.sh          | 118 ---
>  contrib/examples/git-clone.sh          | 525 -------------
>  contrib/examples/git-commit.sh         | 639 ----------------
>  contrib/examples/git-difftool.perl     | 481 ------------
>  contrib/examples/git-fetch.sh          | 379 ----------
>  contrib/examples/git-gc.sh             |  37 -
>  contrib/examples/git-log.sh            |  15 -
>  contrib/examples/git-ls-remote.sh      | 142 ----
>  contrib/examples/git-merge-ours.sh     |  14 -
>  contrib/examples/git-merge.sh          | 620 ----------------
>  contrib/examples/git-notes.sh          | 121 ---
>  contrib/examples/git-pull.sh           | 381 ----------
>  contrib/examples/git-remote.perl       | 474 ------------
>  contrib/examples/git-repack.sh         | 194 -----
>  contrib/examples/git-rerere.perl       | 284 -------
>  contrib/examples/git-reset.sh          | 106 ---
>  contrib/examples/git-resolve.sh        | 112 ---
>  contrib/examples/git-revert.sh         | 207 ------
>  contrib/examples/git-svnimport.perl    | 976 -------------------------
>  contrib/examples/git-svnimport.txt     | 179 -----
>  contrib/examples/git-tag.sh            | 205 ------
>  contrib/examples/git-verify-tag.sh     |  45 --
>  contrib/examples/git-whatchanged.sh    |  28 -
>  27 files changed, 20 insertions(+), 8137 deletions(-)
>  delete mode 100644 contrib/examples/builtin-fetch--tool.c
>  delete mode 100755 contrib/examples/git-am.sh
>  delete mode 100755 contrib/examples/git-checkout.sh
>  delete mode 100755 contrib/examples/git-clean.sh
>  delete mode 100755 contrib/examples/git-clone.sh
>  delete mode 100755 contrib/examples/git-commit.sh
>  delete mode 100755 contrib/examples/git-difftool.perl
>  delete mode 100755 contrib/examples/git-fetch.sh
>  delete mode 100755 contrib/examples/git-gc.sh
>  delete mode 100755 contrib/examples/git-log.sh
>  delete mode 100755 contrib/examples/git-ls-remote.sh
>  delete mode 100755 contrib/examples/git-merge-ours.sh
>  delete mode 100755 contrib/examples/git-merge.sh
>  delete mode 100755 contrib/examples/git-notes.sh
>  delete mode 100755 contrib/examples/git-pull.sh
>  delete mode 100755 contrib/examples/git-remote.perl
>  delete mode 100755 contrib/examples/git-repack.sh
>  delete mode 100755 contrib/examples/git-rerere.perl
>  delete mode 100755 contrib/examples/git-reset.sh
>  delete mode 100755 contrib/examples/git-resolve.sh
>  delete mode 100755 contrib/examples/git-revert.sh
>  delete mode 100755 contrib/examples/git-svnimport.perl
>  delete mode 100644 contrib/examples/git-svnimport.txt
>  delete mode 100755 contrib/examples/git-tag.sh
>  delete mode 100755 contrib/examples/git-verify-tag.sh
>  delete mode 100755 contrib/examples/git-whatchanged.sh
>
> diff --git a/contrib/examples/README b/contrib/examples/README
> index 6946f3dd2a..18bc60b021 100644
> --- a/contrib/examples/README
> +++ b/contrib/examples/README
> @@ -1,3 +1,20 @@
> -These are original scripted implementations, kept primarily for their
> -reference value to any aspiring plumbing users who want to learn how
> -pieces can be fit together.
> +This directory used to contain scripted implementations of builtins
> +that have since been rewritten in C.
> +
> +They have now been removed, but can be retrieved from an older commit
> +that removed them from this directory.
> +
> +They're interesting for their reference value to any aspiring plumbing
> +users who want to learn how pieces can be fit together, but in many
> +cases have drifted enough from the actual implementations Git uses to
> +be instructive.
> +
> +Other things that can be useful:
> +
> + * Some commands such as git-gc wrap other commands, and what they're
> +   doing behind the scenes can be seen by running them under
> +   GIT_TRACE=1
> +
> + * Doing `git log` on paths matching '*--helper.c' will show
> +   incremental effort in the direction of moving existing shell
> +   scripts to C.
> [...]

The rest of this patch is deleting everything in contrib/examples/ that
isn't the README.