From: Kenneth Lorber <keni@his.com>
To: git@vger.kernel.org
Cc: keni@his.com
Subject: [RFC PATCH v2 3/6] doc: Add namespace collision guidelines file
Date: Mon, 25 May 2020 19:27:24 -0400 [thread overview]
Message-ID: <20200525232727.21096-4-keni@his.com> (raw)
In-Reply-To: <20200525232727.21096-1-keni@his.com>
Add a file of guidelines to prevent the namespace collisions
mentioned in git help config without any guidance.
Signed-off-by: Kenneth Lorber <keni@his.com>
---
.../technical/namespace-collisions.txt | 72 +++++++++++++++++++
1 file changed, 72 insertions(+)
create mode 100644 Documentation/technical/namespace-collisions.txt
diff --git a/Documentation/technical/namespace-collisions.txt b/Documentation/technical/namespace-collisions.txt
new file mode 100644
index 0000000000..2a0cb312c5
--- /dev/null
+++ b/Documentation/technical/namespace-collisions.txt
@@ -0,0 +1,72 @@
+NAMESPACE COLLISIONS
+--------------------
+(Note that the recommendations in this section are under development
+and subject to change. At this point they should be considered only
+suggestions. If they do not work for your use case, or you are considering
+distributing your extension widely, please send a note to the mailing list.)
+
+Git uses identifiers in a number of different namespaces:
+
+* environment variables
+* files in $GIT_DIR
+* files in the working trees
+* config sections
+* hooks
+* attributes
+
+In order to reduce the chance of collisions between names Git uses
+and those used by other entities (users, groups, and extension authors),
+the following are recommended best practices.
+
+
+Names reserved to Git:
+
+* file or directory names ending with `.lock`
+* file or directory names starting with `.git`
+* filenames in $GIT_DIR
+* directory names in $GIT_DIR unless allowed by a rule below
+* environment variables starting with `GIT_`
+* configuration file sections unless allowed by a rule below
+* file or directory names in `$GIT_DIR/hooks` unless allowed by a rule below
+* attributes unless allowed by a rule below
+
+
+Names reserved for individual users:
+
+* The directory `$GIT_DIR/my`
+* Environment variables starting with `GIT_MY_`
+* Configuration section `my`
+* Files or directories in `$GIT_DIR/hooks` starting with `my_`
+* Attributes starting with `my_`
+
+Names reserved for individual repos:
+
+* The directory `$GIT_DIR/this`
+* Environment variables starting with `GIT_THIS_`
+* Configuration section `this`
+* Files or directories in `$GIT_DIR/hooks` starting with `this_`
+* Attributes starting with `this_`
+
+Names reserved for the lowest level group of people:
+
+* The directory `$GIT_DIR/our`
+* Environment variables starting with `GIT_OUR_`
+* Configuration section `our`
+* Files or directories in `$GIT_DIR/hooks` starting with `our_`
+* Attributes starting with `our_`
+
+Aliases
+~~~~~~~
+Aliases are a special case. Users need to type them so they should be
+short, but there is no way to prevent such short names from colliding.
+So the documentation or installer should construct something like:
+
+ [alias]
+ test = !git my-test
+ my-test = !echo made it
+
+while detecting collisions for the short name. Then users or local
+policy can deal with collisions on the short name.
+
+This is not meant to cover every possible use case - a policy that
+detailed would be ignored and thus of no use. Please play nicely.
--
2.17.1
next prev parent reply other threads:[~2020-05-25 23:34 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-17 2:13 [RFC PATCH 0/6] various documentation bits Kenneth Lorber
2020-05-17 2:13 ` [RFC PATCH 1/6] Tell the glossary about core.hooksPath Kenneth Lorber
2020-05-17 18:33 ` Junio C Hamano
2020-05-18 22:06 ` Kenneth Lorber
2020-05-17 2:13 ` [RFC PATCH 2/6] Add bit on extending git to Hacking Git Kenneth Lorber
2020-05-17 18:34 ` Junio C Hamano
2020-05-18 22:10 ` Kenneth Lorber
2020-05-17 2:13 ` [RFC PATCH 3/6] Add namespace collision avoidance guidelines file Kenneth Lorber
2020-05-17 9:45 ` Abhishek Kumar
2020-05-18 15:51 ` Kenneth Lorber
2020-05-17 15:31 ` Junio C Hamano
2020-05-18 21:46 ` Kenneth Lorber
2020-05-17 2:13 ` [RFC PATCH 4/6] Include NAMESPACE COLLISIONS doc into gitrepository-layout.txt Kenneth Lorber
2020-05-18 0:26 ` Junio C Hamano
2020-05-18 23:54 ` Kenneth Lorber
2020-05-17 2:13 ` [RFC PATCH 5/6] Tell config.txt about NAMESPACE COLLISIONS Kenneth Lorber
2020-05-18 0:32 ` Junio C Hamano
2020-05-17 2:13 ` [RFC PATCH 6/6] Add NAMESPACE COLLISIONS reference to Hacking Git Kenneth Lorber
2020-05-17 7:42 ` [RFC PATCH 0/6] various documentation bits Abhishek Kumar
2020-05-17 18:39 ` Junio C Hamano
2020-05-18 23:44 ` Kenneth Lorber
2020-05-18 15:45 ` Kenneth Lorber
2020-05-25 23:27 ` [RFC PATCH v2 " Kenneth Lorber
2020-05-25 23:27 ` [RFC PATCH v2 1/6] doc: Tell the glossary about core.hooksPath Kenneth Lorber
2020-05-26 18:59 ` Junio C Hamano
2020-05-27 16:52 ` Kenneth Lorber
2020-05-27 17:18 ` Kenneth Lorber
2020-05-27 17:18 ` Junio C Hamano
2020-05-25 23:27 ` [RFC PATCH v2 2/6] doc: Add bit on extending git to Hacking Git Kenneth Lorber
2020-05-25 23:27 ` Kenneth Lorber [this message]
2020-05-28 18:49 ` [RFC PATCH v2 3/6] doc: Add namespace collision guidelines file Junio C Hamano
2020-05-28 19:29 ` Junio C Hamano
2020-05-29 1:20 ` Junio C Hamano
2020-05-29 18:08 ` Junio C Hamano
2020-06-01 23:55 ` Kenneth Lorber
2020-06-01 18:38 ` Kenneth Lorber
2020-05-25 23:27 ` [RFC PATCH v2 4/6] doc: Add collision doc to gitrepository-layout.txt Kenneth Lorber
2020-05-25 23:27 ` [RFC PATCH v2 5/6] doc: Tell config.txt about namespace collisions Kenneth Lorber
2020-05-25 23:27 ` [RFC PATCH v2 6/6] doc: Add collision reference to Hacking Git Kenneth Lorber
2020-05-31 21:37 ` [RFC PATCH 0/2] update glossary hooks entry Kenneth Lorber
2020-05-31 21:37 ` [RFC PATCH 1/2] doc: Tell the glossary about core.hooksPath Kenneth Lorber
2020-05-31 21:37 ` [RFC PATCH 2/2] doc: remove dated info and refs to sample hooks Kenneth Lorber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200525232727.21096-4-keni@his.com \
--to=keni@his.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).