{"thread":{"id":"27693","subject":"[PATCH] git-remote.txt: fix wrong remote refspec","startedAt":"2011-06-23T04:45:19Z","lastAt":"2011-06-23T22:19:46Z","messageCount":16,"participants":["Namhyung Kim","Junio C Hamano","Carlos Martín Nieto","Eric Sunshine"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"170486","messageId":"1308804319-6354-1-git-send-email-namhyung@gmail.com","threadId":"27693","inReplyTo":null,"subject":"[PATCH] git-remote.txt: fix wrong remote refspec","fromName":"Namhyung Kim","fromEmail":"namhyung@gmail.com","sentAt":"2011-06-23T04:45:19Z","receivedAt":"2011-06-23T04:45:19Z","isPatch":true,"sender":{"key":"namhyung@gmail.com","avatar":"https://avatars.githubusercontent.com/u/48503?v=4"},"body":"$GIT_DIR/remotes/<name>/HEAD should be\n$GIT_DIR/refs/remotes/<name>/HEAD.\n\nSigned-off-by: Namhyung Kim <namhyung@gmail.com>\n---\n Documentation/git-remote.txt |   10 +++++-----\n 1 files changed, 5 insertions(+), 5 deletions(-)\n\ndiff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt\nindex 528f34a..f5b6e8b 100644\n--- a/Documentation/git-remote.txt\n+++ b/Documentation/git-remote.txt\n@@ -64,7 +64,7 @@ refspec for the remote to track all branches under\n is created.  You can give more than one `-t <branch>` to track\n multiple branches without grabbing all branches.\n +\n-With `-m <master>` option, `$GIT_DIR/remotes/<name>/HEAD` is set\n+With `-m <master>` option, `$GIT_DIR/refs/remotes/<name>/HEAD` is set\n up to point at remote's `<master>` branch. See also the set-head command.\n +\n When a fetch mirror is created with `\\--mirror=fetch`, the refs will not\n@@ -92,23 +92,23 @@ configuration settings for the remote are removed.\n \n 'set-head'::\n \n-Sets or deletes the default branch (`$GIT_DIR/remotes/<name>/HEAD`) for\n+Sets or deletes the default branch (`$GIT_DIR/refs/remotes/<name>/HEAD`) for\n the named remote. Having a default branch for a remote is not required,\n but allows the name of the remote to be specified in lieu of a specific\n branch. For example, if the default branch for `origin` is set to\n `master`, then `origin` may be specified wherever you would normally\n specify `origin/master`.\n +\n-With `-d`, `$GIT_DIR/remotes/<name>/HEAD` is deleted.\n+With `-d`, `$GIT_DIR/refs/remotes/<name>/HEAD` is deleted.\n +\n With `-a`, the remote is queried to determine its `HEAD`, then\n-`$GIT_DIR/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n+`$GIT_DIR/refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n `HEAD` is pointed at `next`, \"`git remote set-head origin -a`\" will set\n `$GIT_DIR/refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will\n only work if `refs/remotes/origin/next` already exists; if not it must be\n fetched first.\n +\n-Use `<branch>` to set `$GIT_DIR/remotes/<name>/HEAD` explicitly. e.g., \"git\n+Use `<branch>` to set `$GIT_DIR/refs/remotes/<name>/HEAD` explicitly. e.g., \"git\n remote set-head origin master\" will set `$GIT_DIR/refs/remotes/origin/HEAD` to\n `refs/remotes/origin/master`. This will only work if\n `refs/remotes/origin/master` already exists; if not it must be fetched first.\n-- \n1.7.5.2\n"},{"id":"170487","messageId":"7viprx3yay.fsf@alter.siamese.dyndns.org","threadId":"27693","inReplyTo":"1308804319-6354-1-git-send-email-namhyung@gmail.com","subject":"Re: [PATCH] git-remote.txt: fix wrong remote refspec","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T05:35:17Z","receivedAt":"2011-06-23T05:35:17Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Namhyung Kim <namhyung@gmail.com> writes:\n\n> $GIT_DIR/remotes/<name>/HEAD should be\n> $GIT_DIR/refs/remotes/<name>/HEAD.\n>\n> Signed-off-by: Namhyung Kim <namhyung@gmail.com>\n> ---\n\nObviously correct; thanks.\n\nThere is another questionable one you did not touch, though.\n\n    With `-t <branch>` option, instead of the default glob\n    refspec for the remote to track all branches under\n    `$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`\n    is created.  You can give more than one `-t <branch>` to track\n    multiple branches without grabbing all branches.\n\nThe above says \"$GIT_DIR/remotes/<name>/\", but it should say\n\n    ... all branches under refs/remotes/<name>/ namespace,...\n\nAlso we should try to see if we can come up with a way to say the things\nthe part your patch touched describe _without_ mentioning $GIT_DIR at\nall. \"Store in $GIT_DIR/refs/$X\" talks too much about the implementation\ndetail that the ref in question is implemented as a loose ref. We would\npack it into a single entry in $GIT_DIR/packed-refs file when we run gc,\nand at that point \"$GIT_DIR/refs/$X\" is no longer a correct description.\n"},{"id":"170489","messageId":"1308809849.1338.11.camel@leonhard","threadId":"27693","inReplyTo":"7viprx3yay.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] git-remote.txt: fix wrong remote refspec","fromName":"Namhyung Kim","fromEmail":"namhyung@gmail.com","sentAt":"2011-06-23T06:17:29Z","receivedAt":"2011-06-23T06:17:29Z","isPatch":true,"sender":{"key":"namhyung@gmail.com","avatar":"https://avatars.githubusercontent.com/u/48503?v=4"},"body":"Hello,\n\n2011-06-22 (수), 22:35 -0700, Junio C Hamano:\n> Namhyung Kim <namhyung@gmail.com> writes:\n> \n> > $GIT_DIR/remotes/<name>/HEAD should be\n> > $GIT_DIR/refs/remotes/<name>/HEAD.\n> >\n> > Signed-off-by: Namhyung Kim <namhyung@gmail.com>\n> > ---\n> \n> Obviously correct; thanks.\n> \n> There is another questionable one you did not touch, though.\n> \n>     With `-t <branch>` option, instead of the default glob\n>     refspec for the remote to track all branches under\n>     `$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`\n>     is created.  You can give more than one `-t <branch>` to track\n>     multiple branches without grabbing all branches.\n> \n> The above says \"$GIT_DIR/remotes/<name>/\", but it should say\n> \n>     ... all branches under refs/remotes/<name>/ namespace,...\n> \n\nOh, I didn't aware of that. Will send v2 soon.\n\n\n> Also we should try to see if we can come up with a way to say the things\n> the part your patch touched describe _without_ mentioning $GIT_DIR at\n> all. \"Store in $GIT_DIR/refs/$X\" talks too much about the implementation\n> detail that the ref in question is implemented as a loose ref. We would\n> pack it into a single entry in $GIT_DIR/packed-refs file when we run gc,\n> and at that point \"$GIT_DIR/refs/$X\" is no longer a correct description.\n\nI see. But I think it is a different issue and should be treated by\nanother patch(es). Just omitting $GIT_DIR is not enough? I don't know :)\n\nThanks.\n\n\n-- \nRegards,\nNamhyung Kim\n"},{"id":"170491","messageId":"1308816724-8406-1-git-send-email-namhyung@gmail.com","threadId":"27693","inReplyTo":"1308809849.1338.11.camel@leonhard","subject":"[PATCH v2] git-remote.txt: fix wrong remote refspec","fromName":"Namhyung Kim","fromEmail":"namhyung@gmail.com","sentAt":"2011-06-23T08:12:04Z","receivedAt":"2011-06-23T08:12:04Z","isPatch":true,"sender":{"key":"namhyung@gmail.com","avatar":"https://avatars.githubusercontent.com/u/48503?v=4"},"body":"$GIT_DIR/remotes/<name>/<branch> should be\n$GIT_DIR/refs/remotes/<name>/<branch>.\n\nSigned-off-by: Namhyung Kim <namhyung@gmail.com>\n---\n Documentation/git-remote.txt |   12 ++++++------\n 1 files changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt\nindex 528f34a..1e3945f 100644\n--- a/Documentation/git-remote.txt\n+++ b/Documentation/git-remote.txt\n@@ -60,11 +60,11 @@ the remote repository.\n +\n With `-t <branch>` option, instead of the default glob\n refspec for the remote to track all branches under\n-`$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`\n+`$GIT_DIR/refs/remotes/<name>/`, a refspec to track only `<branch>`\n is created.  You can give more than one `-t <branch>` to track\n multiple branches without grabbing all branches.\n +\n-With `-m <master>` option, `$GIT_DIR/remotes/<name>/HEAD` is set\n+With `-m <master>` option, `$GIT_DIR/refs/remotes/<name>/HEAD` is set\n up to point at remote's `<master>` branch. See also the set-head command.\n +\n When a fetch mirror is created with `\\--mirror=fetch`, the refs will not\n@@ -92,23 +92,23 @@ configuration settings for the remote are removed.\n \n 'set-head'::\n \n-Sets or deletes the default branch (`$GIT_DIR/remotes/<name>/HEAD`) for\n+Sets or deletes the default branch (`$GIT_DIR/refs/remotes/<name>/HEAD`) for\n the named remote. Having a default branch for a remote is not required,\n but allows the name of the remote to be specified in lieu of a specific\n branch. For example, if the default branch for `origin` is set to\n `master`, then `origin` may be specified wherever you would normally\n specify `origin/master`.\n +\n-With `-d`, `$GIT_DIR/remotes/<name>/HEAD` is deleted.\n+With `-d`, `$GIT_DIR/refs/remotes/<name>/HEAD` is deleted.\n +\n With `-a`, the remote is queried to determine its `HEAD`, then\n-`$GIT_DIR/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n+`$GIT_DIR/refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n `HEAD` is pointed at `next`, \"`git remote set-head origin -a`\" will set\n `$GIT_DIR/refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will\n only work if `refs/remotes/origin/next` already exists; if not it must be\n fetched first.\n +\n-Use `<branch>` to set `$GIT_DIR/remotes/<name>/HEAD` explicitly. e.g., \"git\n+Use `<branch>` to set `$GIT_DIR/refs/remotes/<name>/HEAD` explicitly. e.g., \"git\n remote set-head origin master\" will set `$GIT_DIR/refs/remotes/origin/HEAD` to\n `refs/remotes/origin/master`. This will only work if\n `refs/remotes/origin/master` already exists; if not it must be fetched first.\n-- \n1.7.5.2\n"},{"id":"170497","messageId":"7vy60s36mm.fsf@alter.siamese.dyndns.org","threadId":"27693","inReplyTo":"7viprx3yay.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] git-remote.txt: fix wrong remote refspec","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T15:33:05Z","receivedAt":"2011-06-23T15:33:05Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Obviously correct; thanks.\n>\n> There is another questionable one you did not touch, though.\n>\n>     With `-t <branch>` option, instead of the default glob\n>     refspec for the remote to track all branches under\n>     `$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`\n>     is created.  You can give more than one `-t <branch>` to track\n>     multiple branches without grabbing all branches.\n>\n> The above says \"$GIT_DIR/remotes/<name>/\", but it should say\n>\n>     ... all branches under refs/remotes/<name>/ namespace,...\n>\n> Also we should try to see if we can come up with a way to say the things\n> the part your patch touched describe _without_ mentioning $GIT_DIR at\n> all. \"Store in $GIT_DIR/refs/$X\" talks too much about the implementation\n> detail that the ref in question is implemented as a loose ref. We would\n> pack it into a single entry in $GIT_DIR/packed-refs file when we run gc,\n> and at that point \"$GIT_DIR/refs/$X\" is no longer a correct description.\n\nAnd here is my attempt, on top of Namhyung's v2 of this patch.\n\n-- >8 --\nSubject: git-remote.txt: avoid sounding as if loose refs are the only ones in the world\n\nIt was correct to say \"The file $GIT_DIR/refs/heads/master stores the\ncommit object name at the tip of the master branch\" in the older days,\nbut not anymore, as refs can be packed into $GIT_DIR/packed-refs file.\n\nUpdate the document to talk in terms of a more abstract concept \"ref\" and\n\"symbolic ref\" where we are not describing the underlying implementation\ndetail.\n\nThis on purpose leaves two instances of $GIT_DIR/ in the git-remote\ndocumentation; they do talk about $GIT_DIR/remotes/ and $GIT_DIR/branches/\nfile hierarchy that used to be the place to store configuration around\nremotes before the configuration mechanism took them over.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/git-remote.txt |   19 ++++++++++---------\n 1 files changed, 10 insertions(+), 9 deletions(-)\n\ndiff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt\nindex 1e3945f..5a8c506 100644\n--- a/Documentation/git-remote.txt\n+++ b/Documentation/git-remote.txt\n@@ -60,11 +60,11 @@ the remote repository.\n +\n With `-t <branch>` option, instead of the default glob\n refspec for the remote to track all branches under\n-`$GIT_DIR/refs/remotes/<name>/`, a refspec to track only `<branch>`\n+the `refs/remotes/<name>/` namespace, a refspec to track only `<branch>`\n is created.  You can give more than one `-t <branch>` to track\n multiple branches without grabbing all branches.\n +\n-With `-m <master>` option, `$GIT_DIR/refs/remotes/<name>/HEAD` is set\n+With `-m <master>` option, a symbolic-ref `refs/remotes/<name>/HEAD` is set\n up to point at remote's `<master>` branch. See also the set-head command.\n +\n When a fetch mirror is created with `\\--mirror=fetch`, the refs will not\n@@ -92,24 +92,25 @@ configuration settings for the remote are removed.\n \n 'set-head'::\n \n-Sets or deletes the default branch (`$GIT_DIR/refs/remotes/<name>/HEAD`) for\n+Sets or deletes the default branch (i.e. the target of the\n+symbolic-ref `refs/remotes/<name>/HEAD`) for\n the named remote. Having a default branch for a remote is not required,\n but allows the name of the remote to be specified in lieu of a specific\n branch. For example, if the default branch for `origin` is set to\n `master`, then `origin` may be specified wherever you would normally\n specify `origin/master`.\n +\n-With `-d`, `$GIT_DIR/refs/remotes/<name>/HEAD` is deleted.\n+With `-d`, the symbolic ref `refs/remotes/<name>/HEAD` is deleted.\n +\n-With `-a`, the remote is queried to determine its `HEAD`, then\n-`$GIT_DIR/refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n+With `-a`, the remote is queried to determine its `HEAD`, then the\n+symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote\n `HEAD` is pointed at `next`, \"`git remote set-head origin -a`\" will set\n-`$GIT_DIR/refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will\n+the symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will\n only work if `refs/remotes/origin/next` already exists; if not it must be\n fetched first.\n +\n-Use `<branch>` to set `$GIT_DIR/refs/remotes/<name>/HEAD` explicitly. e.g., \"git\n-remote set-head origin master\" will set `$GIT_DIR/refs/remotes/origin/HEAD` to\n+Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` explicitly. e.g., \"git\n+remote set-head origin master\" will set the symbolic-ref `refs/remotes/origin/HEAD` to\n `refs/remotes/origin/master`. This will only work if\n `refs/remotes/origin/master` already exists; if not it must be fetched first.\n +\n"},{"id":"170498","messageId":"1308844986.1332.10.camel@leonhard","threadId":"27693","inReplyTo":"7vy60s36mm.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] git-remote.txt: fix wrong remote refspec","fromName":"Namhyung Kim","fromEmail":"namhyung@gmail.com","sentAt":"2011-06-23T16:03:06Z","receivedAt":"2011-06-23T16:03:06Z","isPatch":true,"sender":{"key":"namhyung@gmail.com","avatar":"https://avatars.githubusercontent.com/u/48503?v=4"},"body":"2011-06-23 (목), 08:33 -0700, Junio C Hamano:\n\n> And here is my attempt, on top of Namhyung's v2 of this patch.\n> \n> -- >8 --\n> Subject: git-remote.txt: avoid sounding as if loose refs are the only ones in the world\n> \n> It was correct to say \"The file $GIT_DIR/refs/heads/master stores the\n> commit object name at the tip of the master branch\" in the older days,\n> but not anymore, as refs can be packed into $GIT_DIR/packed-refs file.\n> \n> Update the document to talk in terms of a more abstract concept \"ref\" and\n> \"symbolic ref\" where we are not describing the underlying implementation\n> detail.\n> \n> This on purpose leaves two instances of $GIT_DIR/ in the git-remote\n> documentation; they do talk about $GIT_DIR/remotes/ and $GIT_DIR/branches/\n> file hierarchy that used to be the place to store configuration around\n> remotes before the configuration mechanism took them over.\n> \n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nBy quick grep-ing $GIT_DIR/refs/, I found git.txt and\nglossary-content.txt might need the same treatment. Did/Could you check\nout those too?\n\nOtherwise, looks good to me.\nThanks.\n\n\n-- \nRegards,\nNamhyung Kim\n"},{"id":"170500","messageId":"1308847958-3429-1-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"7vy60s36mm.fsf@alter.siamese.dyndns.org","subject":"[PATCH 0/5] Clarify \"refs\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:33Z","receivedAt":"2011-06-23T16:52:33Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"So here is a miniseries to update various parts of the documentation\nthat still talk about $GIT_DIR/refs/. They are split into small and\nnon-overlapping pieces so that any of them can be discarded more or\nless independently.\n\nThanks in advance for comments.\n\nJunio C Hamano (5):\n  check-ref-format doc: de-emphasize the implementation detail of a ref\n  git.txt: de-emphasize the implementation detail of a ref\n  glossary: update description of \"tag\"\n  glossary: update description of head and ref\n  glossary: clarify description of HEAD\n\n Documentation/git-check-ref-format.txt |    9 ++++++---\n Documentation/git.txt                  |    7 +++----\n Documentation/glossary-content.txt     |   27 ++++++++++++++-------------\n 3 files changed, 23 insertions(+), 20 deletions(-)\n\n-- \n1.7.6.rc3\n"},{"id":"170499","messageId":"1308847958-3429-2-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"1308847958-3429-1-git-send-email-gitster@pobox.com","subject":"[PATCH 1/5] check-ref-format doc: de-emphasize the implementation detail of a ref","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:34Z","receivedAt":"2011-06-23T16:52:34Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It is an unimportant implementation detail that branches and tags are\nstored somewhere under $GIT_DIR/refs directory. What is more important\nis that branches live in refs/heads and tags live in refs/tags hierarchy\nin the ref namespace.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/git-check-ref-format.txt |    9 ++++++---\n 1 files changed, 6 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt\nindex 205d83d..61471cf 100644\n--- a/Documentation/git-check-ref-format.txt\n+++ b/Documentation/git-check-ref-format.txt\n@@ -18,9 +18,12 @@ Checks if a given 'refname' is acceptable, and exits with a non-zero\n status if it is not.\n \n A reference is used in git to specify branches and tags.  A\n-branch head is stored under the `$GIT_DIR/refs/heads` directory, and\n-a tag is stored under the `$GIT_DIR/refs/tags` directory (or, if refs\n-are packed by `git gc`, as entries in the `$GIT_DIR/packed-refs` file).\n+branch head is stored in the `refs/heads` hierarchy while\n+a tag is stored in the `refs/tags` hierarchy of the ref namespace\n+(which are found in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`\n+directories or, if refs are packed by `git gc`, as entries in\n+the `$GIT_DIR/packed-refs` file).\n+\n git imposes the following rules on how references are named:\n \n . They can include slash `/` for hierarchical (directory)\n-- \n1.7.6.rc3\n"},{"id":"170502","messageId":"1308847958-3429-3-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"1308847958-3429-1-git-send-email-gitster@pobox.com","subject":"[PATCH 2/5] git.txt: de-emphasize the implementation detail of a ref","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:35Z","receivedAt":"2011-06-23T16:52:35Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It is an unimportant implementation detail that branches and tags are\nstored somewhere under $GIT_DIR/refs directory, or the name of the commit\nthat will become the parent of the next commit is stored in $GIT_DIR/HEAD.\n\nWhat is more important is that branches live in refs/heads and tags live\nin refs/tags hierarchy in the ref namespace, and HEAD means the tip of the\ncurrent branch.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/git.txt |    7 +++----\n 1 files changed, 3 insertions(+), 4 deletions(-)\n\ndiff --git a/Documentation/git.txt b/Documentation/git.txt\nindex 8c0bfdf..7fc6b88 100644\n--- a/Documentation/git.txt\n+++ b/Documentation/git.txt\n@@ -510,16 +510,15 @@ Any git command accepting any <object> can also use the following\n symbolic notation:\n \n HEAD::\n-\tindicates the head of the current branch (i.e. the\n-\tcontents of `$GIT_DIR/HEAD`).\n+\tindicates the head of the current branch.\n \n <tag>::\n \ta valid tag 'name'\n-\t(i.e. the contents of `$GIT_DIR/refs/tags/<tag>`).\n+\t(i.e. a `refs/tags/<tag>` reference).\n \n <head>::\n \ta valid head 'name'\n-\t(i.e. the contents of `$GIT_DIR/refs/heads/<head>`).\n+\t(i.e. a `refs/heads/<head>` reference).\n \n For a more complete list of ways to spell object names, see\n \"SPECIFYING REVISIONS\" section in linkgit:gitrevisions[7].\n-- \n1.7.6.rc3\n"},{"id":"170501","messageId":"1308847958-3429-4-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"1308847958-3429-1-git-send-email-gitster@pobox.com","subject":"[PATCH 3/5] glossary: update description of \"tag\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:36Z","receivedAt":"2011-06-23T16:52:36Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It is an unimportant implementation detail that ref namespaces are\nimplemented as subdirectories of $GIT_DIR/refs. What is more important\nis that tags are in refs/tags hierarchy in the ref namespace.\n\nAlso note that a tag can point at an object of arbitrary type, not limited\nto commit.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/glossary-content.txt |   16 ++++++++--------\n 1 files changed, 8 insertions(+), 8 deletions(-)\n\ndiff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt\nindex 33716a3..c437f34 100644\n--- a/Documentation/glossary-content.txt\n+++ b/Documentation/glossary-content.txt\n@@ -427,14 +427,14 @@ including Documentation/chapter_1/figure_1.jpg.\n \tcommand.\n \n [[def_tag]]tag::\n-\tA <<def_ref,ref>> pointing to a <<def_tag_object,tag>> or\n-\t<<def_commit_object,commit object>>. In contrast to a <<def_head,head>>,\n-\ta tag is not changed by a <<def_commit,commit>>. Tags (not\n-\t<<def_tag_object,tag objects>>) are stored in `$GIT_DIR/refs/tags/`. A\n-\tgit tag has nothing to do with a Lisp tag (which would be\n-\tcalled an <<def_object_type,object type>> in git's context). A\n-\ttag is most typically used to mark a particular point in the\n-\tcommit ancestry <<def_chain,chain>>.\n+\tA <<def_ref,ref>> under `refs/tags/` namespace that points to an\n+\tobject of an arbitrary type (typically a tag points to either a\n+\t<<def_tag_object,tag>> or a <<def_commit_object,commit object>>).\n+\tIn contrast to a <<def_head,head>>, a tag is not updated by\n+\t the `commit` command. A git tag has nothing to do with\ta Lisp\n+\ttag (which would be called an <<def_object_type,object type>>\n+\tin git's context). A tag is most typically used to mark a particular\n+\tpoint in the commit ancestry <<def_chain,chain>>.\n \n [[def_tag_object]]tag object::\n \tAn <<def_object,object>> containing a <<def_ref,ref>> pointing to\n-- \n1.7.6.rc3\n"},{"id":"170503","messageId":"1308847958-3429-5-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"1308847958-3429-1-git-send-email-gitster@pobox.com","subject":"[PATCH 4/5] glossary: update description of head and ref","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:37Z","receivedAt":"2011-06-23T16:52:37Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Reword them to avoid sounding as if loose refs are the only ones in the world.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/glossary-content.txt |    9 +++++----\n 1 files changed, 5 insertions(+), 4 deletions(-)\n\ndiff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt\nindex c437f34..dd690bd 100644\n--- a/Documentation/glossary-content.txt\n+++ b/Documentation/glossary-content.txt\n@@ -161,8 +161,8 @@ to point at the new commit.\n \n [[def_head]]head::\n \tA <<def_ref,named reference>> to the <<def_commit,commit>> at the tip of a\n-\t<<def_branch,branch>>.  Heads are stored in\n-\t`$GIT_DIR/refs/heads/`, except when using packed refs. (See\n+\t<<def_branch,branch>>.  Heads are stored in a file in\n+\t`$GIT_DIR/refs/heads/` directory, except when using packed refs. (See\n \tlinkgit:git-pack-refs[1].)\n \n [[def_HEAD]]HEAD::\n@@ -350,8 +350,9 @@ including Documentation/chapter_1/figure_1.jpg.\n \n [[def_ref]]ref::\n \tA 40-byte hex representation of a <<def_SHA1,SHA1>> or a name that\n-\tdenotes a particular <<def_object,object>>. These may be stored in\n-\t`$GIT_DIR/refs/`.\n+\tdenotes a particular <<def_object,object>>. They may be stored in\n+\ta file under `$GIT_DIR/refs/` directory, or\n+\tin the `$GIT_DIR/packed-refs` file.\n \n [[def_reflog]]reflog::\n \tA reflog shows the local \"history\" of a ref.  In other words,\n-- \n1.7.6.rc3\n"},{"id":"170504","messageId":"1308847958-3429-6-git-send-email-gitster@pobox.com","threadId":"27693","inReplyTo":"1308847958-3429-1-git-send-email-gitster@pobox.com","subject":"[PATCH 5/5] glossary: clarify description of HEAD","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T16:52:38Z","receivedAt":"2011-06-23T16:52:38Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"HEAD on a branch does reference a commit via the branch ref it refers to.\nThe main difference of a detached HEAD is that it _directly_ refers to\na commit.  Clarify this.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/glossary-content.txt |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt\nindex dd690bd..f79da21 100644\n--- a/Documentation/glossary-content.txt\n+++ b/Documentation/glossary-content.txt\n@@ -170,7 +170,7 @@ to point at the new commit.\n \tworking tree>> is normally derived from the state of the tree\n \treferred to by HEAD.  HEAD is a reference to one of the\n \t<<def_head,heads>> in your repository, except when using a\n-\t<<def_detached_HEAD,detached HEAD>>, in which case it may\n+\t<<def_detached_HEAD,detached HEAD>>, in which case it may directly\n \treference an arbitrary commit.\n \n [[def_head_ref]]head ref::\n-- \n1.7.6.rc3\n"},{"id":"170506","messageId":"20110623170658.GC3142@centaur.lab.cmartin.tk","threadId":"27693","inReplyTo":"1308847958-3429-6-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 5/5] glossary: clarify description of HEAD","fromName":"Carlos Martín Nieto","fromEmail":"carlos@cmartin.tk","sentAt":"2011-06-23T17:06:58Z","receivedAt":"2011-06-23T17:06:58Z","isPatch":true,"sender":{"key":"carlos@cmartin.tk","avatar":"https://gravatar.com/avatar/956bfe8371004f2960febf266a6af789f60cdc01fbae48bb151ad4c9b532c3a2?d=mp&s=160"},"body":"On Thu, Jun 23, 2011 at 09:52:38AM -0700, Junio C Hamano wrote:\n> HEAD on a branch does reference a commit via the branch ref it refers to.\n> The main difference of a detached HEAD is that it _directly_ refers to\n> a commit.  Clarify this.\n> \n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n>  Documentation/glossary-content.txt |    2 +-\n>  1 files changed, 1 insertions(+), 1 deletions(-)\n> \n> diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt\n> index dd690bd..f79da21 100644\n> --- a/Documentation/glossary-content.txt\n> +++ b/Documentation/glossary-content.txt\n> @@ -170,7 +170,7 @@ to point at the new commit.\n>  \tworking tree>> is normally derived from the state of the tree\n>  \treferred to by HEAD.  HEAD is a reference to one of the\n>  \t<<def_head,heads>> in your repository, except when using a\n> -\t<<def_detached_HEAD,detached HEAD>>, in which case it may\n> +\t<<def_detached_HEAD,detached HEAD>>, in which case it may directly\n\nWhy \"may\"? As I understand it, in detached HEAD, it /does/ point\ndirectly to a commit\n\n>  \treference an arbitrary commit.\n>  \n>  [[def_head_ref]]head ref::\n\nCheers,\n   cmn\n-- \nCarlos Martín Nieto | http://cmartin.tk\n\n\"¿Cómo voy a decir bobadas si soy mudo?\" -- CACHAI\n"},{"id":"170507","messageId":"7vtybg320c.fsf@alter.siamese.dyndns.org","threadId":"27693","inReplyTo":"20110623170658.GC3142@centaur.lab.cmartin.tk","subject":"Re: [PATCH 5/5] glossary: clarify description of HEAD","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T17:12:51Z","receivedAt":"2011-06-23T17:12:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Carlos Martín Nieto <carlos@cmartin.tk> writes:\n\n>> -\t<<def_detached_HEAD,detached HEAD>>, in which case it may\n>> +\t<<def_detached_HEAD,detached HEAD>>, in which case it may directly\n>\n> Why \"may\"? As I understand it, in detached HEAD, it /does/ point\n> directly to a commit\n\nTrue; I just kept the original without thinking too deeply about it.\n"},{"id":"170522","messageId":"4E03BACA.8000303@sunshineco.com","threadId":"27693","inReplyTo":"1308847958-3429-2-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 1/5] check-ref-format doc: de-emphasize the implementation detail of a ref","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2011-06-23T22:14:34Z","receivedAt":"2011-06-23T22:14:34Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On 6/23/2011 12:52 PM, Junio C Hamano wrote:\n>   A reference is used in git to specify branches and tags.  A\n> -branch head is stored under the `$GIT_DIR/refs/heads` directory, and\n> -a tag is stored under the `$GIT_DIR/refs/tags` directory (or, if refs\n> -are packed by `git gc`, as entries in the `$GIT_DIR/packed-refs` file).\n> +branch head is stored in the `refs/heads` hierarchy while\n\ns/hierarchy while/hierarchy, while/\n\n> +a tag is stored in the `refs/tags` hierarchy of the ref namespace\n> +(which are found in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`\n> +directories or, if refs are packed by `git gc`, as entries in\n> +the `$GIT_DIR/packed-refs` file).\n\nGrammatical complexity of parenthetical comment makes it a bit difficult \nto read. Perhaps simplify as:\n\n   (typically in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`\n   directories, or as entries in file `$GIT_DIR/packed-refs`\n   if refs are packed by `git gc`).\n\n-- ES\n"},{"id":"170523","messageId":"4E03BC02.5080705@sunshineco.com","threadId":"27693","inReplyTo":"1308847958-3429-4-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 3/5] glossary: update description of \"tag\"","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2011-06-23T22:19:46Z","receivedAt":"2011-06-23T22:19:46Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On 6/23/2011 12:52 PM, Junio C Hamano wrote:\n> +\tIn contrast to a<<def_head,head>>, a tag is not updated by\n> +\t the `commit` command. A git tag has nothing to do with\ta Lisp\n\nLine begins with tab+space but you probably want only tab. \"with\" and \n\"a\" are separated by a tab but likely ought to be separated by a space.\n\ns/^\\t /\\t/\ns/with\\ta/with a/\n\n-- ES\n"}]}