[PATCH 00/13] tests + init: don't rely on templates & add --no-template + config

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

 



[This series does a couple of different things that could be split up,
but I thought that it was easier to review it in one piece].

This series changes our tests to not rely on the default template that
"git init" populates new repositories with. This reliance hid a bug
where a recently added mode of "sparse-checkout" had a hard dependency
on git's default template, i.e. it would potentially break on
repositories with a custom --template.

So this changes all the tests that relied on those, and declares that
we'll always create the "info" directory whatever the template says
(which will fix that sparse-checkout isssue).

We also add a new "git [init|clone] --no-template" option, and make
the existing init.templateDir accept "false" as a way of doing what
the existing-but-undocumented --template= would do, i.e. use no
template at all.

I would like to eventually follow-up and make something like
init.templateDir=false the default (or at least something closer to
it). Notably we litter the rather large sample hooks in every
repository ever cloned, but this series doesn't chane anything about
what we do by default.

This topic was mentioned (item 16) in the recent contributor
summit[1]. The notes only reflect that I mentioned .git/branches, but
I think it was in reply to someone's question about that or the
default templates.

1. https://lore.kernel.org/git/nycvar.QRO.7.76.6.2110211148400.56@xxxxxxxxxxxxxxxxx/

Ævar Arnfjörð Bjarmason (13):
  t0001: fix gaps in "TEMPLATE DIRECTORY" coverage
  init: split out template population from create_default_files()
  init: unconditionally create the "info" directory
  t0008: don't rely on default ".git/info/exclude"
  init & clone: add a --no-template option
  init & clone: add init.templateDir=[bool]
  test-lib: create test data with "git init --no-template" (almost)
  tests: don't depend on template-created .git/branches
  t5540: don't rely on "hook/post-update.sample"
  test-lib-functions: add and use a "write_hook" wrapper
  tests: change "cat && chmod +x" to use "write_hook"
  tests: migrate miscellaneous "write_script" to "write_hooks"
  tests: don't depend on template-created .git/hooks

 Documentation/git-clone.txt            |   8 +-
 Documentation/git-init.txt             |  31 +++++++-
 Documentation/gitrepository-layout.txt |  17 ++++-
 builtin/clone.c                        |  15 +++-
 builtin/init-db.c                      |  75 +++++++++++++------
 cache.h                                |   2 +
 config.c                               |  34 +++++++++
 config.h                               |  17 +++++
 t/t0001-init.sh                        | 100 ++++++++++++++++++++++---
 t/t0008-ignores.sh                     |  10 +--
 t/t1416-ref-transaction-hooks.sh       |  14 ++--
 t/t3412-rebase-root.sh                 |  18 ++---
 t/t3413-rebase-hook.sh                 |  18 ++---
 t/t3430-rebase-merges.sh               |   5 +-
 t/t5401-update-hooks.sh                |  62 +++++++--------
 t/t5402-post-merge-hook.sh             |  16 ++--
 t/t5406-remote-rejects.sh              |   2 +-
 t/t5407-post-rewrite-hook.sh           |  14 ++--
 t/t5409-colorize-remote-messages.sh    |   2 +-
 t/t5411-proc-receive-hook.sh           |   4 +-
 t/t5505-remote.sh                      |   2 +
 t/t5510-fetch.sh                       |   6 +-
 t/t5516-fetch-push.sh                  |  26 +++----
 t/t5521-pull-options.sh                |   4 +-
 t/t5540-http-push-webdav.sh            |   4 +-
 t/t5541-http-push-smart.sh             |   4 +-
 t/t5547-push-quarantine.sh             |   4 +-
 t/t5548-push-porcelain.sh              |   2 +-
 t/t5601-clone.sh                       |   4 +-
 t/t6500-gc.sh                          |   4 +-
 t/t7450-bad-git-dotfiles.sh            |   1 +
 t/test-lib-functions.sh                |  30 ++++++++
 t/test-lib.sh                          |   5 +-
 wrap-for-bin.sh                        |   4 +-
 34 files changed, 391 insertions(+), 173 deletions(-)

-- 
2.34.1.1020.gb1392dd1877




[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