* Re: [PATCH 2/2] make init-db use GIT_TEMPLATE_DIR if --template option is not specified @ 2006-05-27 13:25 Petr Baudis 2006-05-27 18:57 ` [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template Matthias Lederhofer 0 siblings, 1 reply; 4+ messages in thread From: Petr Baudis @ 2006-05-27 13:25 UTC (permalink / raw) To: Matthias Lederhofer; +Cc: git Dear diary, on Sat, May 27, 2006 at 12:25:39PM CEST, I got a letter where Matthias Lederhofer <matled@gmx.net> said that... > f61e19360f9b5965dda1ae762ffdab8ede860430 > diff --git a/builtin-init-db.c b/builtin-init-db.c > index 2a1384c..cf5bd39 100644 > --- a/builtin-init-db.c > +++ b/builtin-init-db.c > @@ -253,6 +253,9 @@ int cmd_init_db(int argc, const char **a > die(init_db_usage); > } > > + if (!template_dir) > + template_dir = getenv("GIT_TEMPLATE_DIR"); > + > /* > * Set up the default .git directory contents > */ Please document such changes, in the spirit of diff --git a/Documentation/git-init-db.txt b/Documentation/git-init-db.txt index 8a150d8..378810e 100644 --- a/Documentation/git-init-db.txt +++ b/Documentation/git-init-db.txt @@ -15,6 +15,8 @@ OPTIONS ------- --template=<template_directory>:: Provide the directory from which templates will be used. + If not specified, the value of the `GIT_TEMPLATE_DIR` environment + variable is used instead. The default template directory is `/usr/share/git-core/templates`. --shared:: (Signed-off-by: Petr Baudis <pasky@suse.cz>, whatever...) -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ A person is just about as big as the things that make them angry. ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template 2006-05-27 13:25 [PATCH 2/2] make init-db use GIT_TEMPLATE_DIR if --template option is not specified Petr Baudis @ 2006-05-27 18:57 ` Matthias Lederhofer 2006-05-28 17:33 ` Junio C Hamano 0 siblings, 1 reply; 4+ messages in thread From: Matthias Lederhofer @ 2006-05-27 18:57 UTC (permalink / raw) To: git directory and --template=<template_directory> option for to git-clone --- > Please document such changes, in the spirit of That's right, here are both patches in one because the second patch would also change the documentation of the first one. --- ac3c3fdd2423d2184306af3e6e93397475953284 Documentation/git-clone.txt | 10 ++++++++-- Documentation/git-init-db.txt | 2 ++ builtin-init-db.c | 3 +++ git-clone.sh | 7 +++++-- 4 files changed, 18 insertions(+), 4 deletions(-) ac3c3fdd2423d2184306af3e6e93397475953284 diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index b333f51..8e833aa 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -9,8 +9,8 @@ git-clone - Clones a repository SYNOPSIS -------- [verse] -'git-clone' [-l [-s]] [-q] [-n] [--bare] [-o <name>] [-u <upload-pack>] - [--reference <repository>] +'git-clone' [--template=<template_directory>] [-l [-s]] [-q] [-n] [--bare] + [-o <name>] [-u <upload-pack>] [--reference <repository>] <repository> [<directory>] DESCRIPTION @@ -34,6 +34,12 @@ branch you are currently working on. Re OPTIONS ------- +--template=<template_directory>:: + Provide the directory from which templates will be used. + The default template directory is `/usr/share/git-core/templates`. + You can override the default template directory with the + `$GIT_TEMPLATE_DIR` environment variable. + --local:: -l:: When the repository to clone from is on a local machine, diff --git a/Documentation/git-init-db.txt b/Documentation/git-init-db.txt index 8a150d8..273f394 100644 --- a/Documentation/git-init-db.txt +++ b/Documentation/git-init-db.txt @@ -16,6 +16,8 @@ OPTIONS --template=<template_directory>:: Provide the directory from which templates will be used. The default template directory is `/usr/share/git-core/templates`. + You can override the default template directory with the + `$GIT_TEMPLATE_DIR` environment variable. --shared:: Specify that the git repository is to be shared amongst several users. diff --git a/builtin-init-db.c b/builtin-init-db.c index 2a1384c..cf5bd39 100644 --- a/builtin-init-db.c +++ b/builtin-init-db.c @@ -253,6 +253,9 @@ int cmd_init_db(int argc, const char **a die(init_db_usage); } + if (!template_dir) + template_dir = getenv("GIT_TEMPLATE_DIR"); + /* * Set up the default .git directory contents */ diff --git a/git-clone.sh b/git-clone.sh index d96894d..1c7ae12 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -9,7 +9,7 @@ # See git-sh-setup why. unset CDPATH usage() { - echo >&2 "Usage: $0 [--use-separate-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]" + echo >&2 "Usage: $0 [--template=<template_directory>] [--use-separate-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]" exit 1 } @@ -102,6 +102,7 @@ quiet= local=no use_local=no local_shared=no +template= no_checkout= upload_pack= bare= @@ -120,6 +121,8 @@ while *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;; *,-s|*,--s|*,--sh|*,--sha|*,--shar|*,--share|*,--shared) local_shared=yes; use_local=yes ;; + *,--template=*) + template="$1" ;; *,-q|*,--quiet) quiet=-q ;; *,--use-separate-remote) use_separate_remote=t ;; @@ -203,7 +206,7 @@ trap 'err=$?; cd ..; rm -r "$D"; exit $e case "$bare" in yes) GIT_DIR="$D" ;; *) GIT_DIR="$D/.git" ;; -esac && export GIT_DIR && git-init-db || usage +esac && export GIT_DIR && git-init-db "$template" || usage case "$bare" in yes) GIT_DIR="$D" ;; -- 1.3.3.g40505 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template 2006-05-27 18:57 ` [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template Matthias Lederhofer @ 2006-05-28 17:33 ` Junio C Hamano 2006-05-28 18:15 ` Matthias Lederhofer 0 siblings, 1 reply; 4+ messages in thread From: Junio C Hamano @ 2006-05-28 17:33 UTC (permalink / raw) To: Matthias Lederhofer; +Cc: git Matthias Lederhofer <matled@gmx.net> writes: > directory and --template=<template_directory> option for to git-clone > > --- >> Please document such changes, in the spirit of > > That's right, here are both patches in one because the second patch > would also change the documentation of the first one. Thanks. * Please don't put the beginning of one sentence on Subject line and start the body of the message with the rest of that sentence. Instead, come up with a short (meaning "fits on the Subject line without wrapping with 80-column terminal") title that describes what the patch does -- it is a good sanity check to make sure your patch is doing one thing and one thing only, instead of mixing unrelated mess together. * Please sign-off your patch. * Please test your patch for existing usage, not just for the new usage you added, to avoid regressions. I like the part to let git-clone pass --template down to git-init-db, but once it is in place I doubt you would still need GIT_TEMPLATE_DIR. I'd rather not to introduce new environment variables if we can avoid them. > diff --git a/git-clone.sh b/git-clone.sh > index d96894d..1c7ae12 100755 > --- a/git-clone.sh > +++ b/git-clone.sh > @@ -102,6 +102,7 @@ quiet= > local=no > use_local=no > local_shared=no > +template= > no_checkout= > upload_pack= > bare= > @@ -120,6 +121,8 @@ while > *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;; > *,-s|*,--s|*,--sh|*,--sha|*,--shar|*,--share|*,--shared) > local_shared=yes; use_local=yes ;; > + *,--template=*) > + template="$1" ;; > *,-q|*,--quiet) quiet=-q ;; > *,--use-separate-remote) > use_separate_remote=t ;; Here, $template is either empty string "", or "--template=dir" after argument parsing. But then it does this: > @@ -203,7 +206,7 @@ trap 'err=$?; cd ..; rm -r "$D"; exit $e > case "$bare" in > yes) GIT_DIR="$D" ;; > *) GIT_DIR="$D/.git" ;; > -esac && export GIT_DIR && git-init-db || usage > +esac && export GIT_DIR && git-init-db "$template" || usage which I suspect would make git-init-db barf if you did not pass any --template=foo option to git-clone. Did you test your patch? So I'd do it like this instead. -- >8 -- [PATCH] Let git-clone to pass --template=dir option to git-init-db. Signed-off-by: Junio C Hamano <junkio@cox.net> --- Documentation/git-clone.txt | 9 +++++++-- git-clone.sh | 10 ++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index b333f51..94d9393 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -9,8 +9,8 @@ git-clone - Clones a repository SYNOPSIS -------- [verse] -'git-clone' [-l [-s]] [-q] [-n] [--bare] [-o <name>] [-u <upload-pack>] - [--reference <repository>] +'git-clone' [--template=<template_directory>] [-l [-s]] [-q] [-n] [--bare] + [-o <name>] [-u <upload-pack>] [--reference <repository>] <repository> [<directory>] DESCRIPTION @@ -89,6 +89,11 @@ OPTIONS the command to specify non-default path for the command run on the other end. +--template=<template_directory>:: + Specify the directory from which templates will be used; + if unset the templates are taken from the installation + defined default, typically `/usr/share/git-core/templates`. + <repository>:: The (possibly remote) repository to clone from. It can be any URL git-fetch supports. diff --git a/git-clone.sh b/git-clone.sh index d96894d..de59904 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -9,7 +9,7 @@ # See git-sh-setup why. unset CDPATH usage() { - echo >&2 "Usage: $0 [--use-separate-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]" + echo >&2 "Usage: $0 [--template=<template_directory>] [--use-separate-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]" exit 1 } @@ -102,6 +102,7 @@ quiet= local=no use_local=no local_shared=no +unset template no_checkout= upload_pack= bare= @@ -120,6 +121,11 @@ while *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;; *,-s|*,--s|*,--sh|*,--sha|*,--shar|*,--share|*,--shared) local_shared=yes; use_local=yes ;; + 1,--template) usage ;; + *,--template) + shift; template="--template=$1" ;; + *,--template=*) + template="$1" ;; *,-q|*,--quiet) quiet=-q ;; *,--use-separate-remote) use_separate_remote=t ;; @@ -203,7 +209,7 @@ trap 'err=$?; cd ..; rm -r "$D"; exit $e case "$bare" in yes) GIT_DIR="$D" ;; *) GIT_DIR="$D/.git" ;; -esac && export GIT_DIR && git-init-db || usage +esac && export GIT_DIR && git-init-db ${template+"$template"} || usage case "$bare" in yes) GIT_DIR="$D" ;; -- 1.3.3.g2a0a ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template 2006-05-28 17:33 ` Junio C Hamano @ 2006-05-28 18:15 ` Matthias Lederhofer 0 siblings, 0 replies; 4+ messages in thread From: Matthias Lederhofer @ 2006-05-28 18:15 UTC (permalink / raw) To: Junio C Hamano; +Cc: git > I like the part to let git-clone pass --template down to git-init-db, > but once it is in place I doubt you would still need GIT_TEMPLATE_DIR. > I'd rather not to introduce new environment variables if we can > avoid them. I like the variable because it makes it very easy to change the default template directory (so I don't have to remember passing --template every time I clone or create a new repository). But aliases/default options (~/.git/config thread) this would make this possible too. > Here, $template is either empty string "", or "--template=dir" > after argument parsing. But then it does this: > > > @@ -203,7 +206,7 @@ trap 'err=$?; cd ..; rm -r "$D"; exit $e > > case "$bare" in > > yes) GIT_DIR="$D" ;; > > *) GIT_DIR="$D/.git" ;; > > -esac && export GIT_DIR && git-init-db || usage > > +esac && export GIT_DIR && git-init-db "$template" || usage > > which I suspect would make git-init-db barf if you did not pass > any --template=foo option to git-clone. Did you test your patch? Sorry, I did not run make test and did not test it without the option. Shall I send a new patch? ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-05-28 18:15 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-05-27 13:25 [PATCH 2/2] make init-db use GIT_TEMPLATE_DIR if --template option is not specified Petr Baudis 2006-05-27 18:57 ` [PATCH] new environment variable GIT_TEMPLATE_DIR to override default template Matthias Lederhofer 2006-05-28 17:33 ` Junio C Hamano 2006-05-28 18:15 ` Matthias Lederhofer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).