{"thread":{"id":"8316","subject":"[PATCH 3/3] Replace the last 'dircache's by 'index'","startedAt":"2007-05-25T22:37:38Z","lastAt":"2007-05-26T01:05:19Z","messageCount":8,"participants":["Jakub Narebski","J. Bruce Fields","Johannes Schindelin","Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"43304","messageId":"11801326601014-git-send-email-jnareb@gmail.com","threadId":"8316","inReplyTo":null,"subject":"[PATCH 1/3] Documentation: Clean up links in GIT Glossary","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-05-25T22:37:38Z","receivedAt":"2007-05-25T22:37:38Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Ensure that the same link is not repeated in single glossary entry,\nand that there is no self-link i.e. link to current entry.\n\nAdd links to other definitions in git glossary.\n\nRemove inappropriate (nonsense) links, or change link to link to\ncorrect definition (to correct term).\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nWhile updating http://git.or.cz/gitwiki/GitGlossary to modern\nDocumentation/glossary.txt version, I have noticed few places\nwhere GIT Glossary can be improved.\n\n Documentation/glossary.txt |   58 ++++++++++++++++++++++----------------------\n 1 files changed, 29 insertions(+), 29 deletions(-)\n\ndiff --git a/Documentation/glossary.txt b/Documentation/glossary.txt\nindex 489c3e9..ba52618 100644\n--- a/Documentation/glossary.txt\n+++ b/Documentation/glossary.txt\n@@ -10,7 +10,7 @@ GIT Glossary\n \tA bare repository is normally an appropriately\n \tnamed <<def_directory,directory>> with a `.git` suffix that does not\n \thave a locally checked-out copy of any of the files under\n-\t<<def_revision,revision>> control. That is, all of the `git`\n+\trevision control. That is, all of the `git`\n \tadministrative and control files that would normally be present in the\n \thidden `.git` sub-directory are directly present in the\n \t`repository.git` directory instead,\n@@ -37,7 +37,7 @@ GIT Glossary\n [[def_chain]]chain::\n \tA list of objects, where each <<def_object,object>> in the list contains\n \ta reference to its successor (for example, the successor of a\n-\t<<def_commit,commit>> could be one of its parents).\n+\t<<def_commit,commit>> could be one of its <<def_parent,parents>>).\n \n [[def_changeset]]changeset::\n \tBitKeeper/cvsps speak for \"<<def_commit,commit>>\". Since git does not\n@@ -77,10 +77,10 @@ to point at the new commit.\n \n [[def_commit_object]]commit object::\n \tAn <<def_object,object>> which contains the information about a\n-\tparticular <<def_revision,revision>>, such as parents, committer,\n+\tparticular <<def_revision,revision>>, such as <<def_parent,parents>>, committer,\n \tauthor, date and the <<def_tree_object,tree object>> which corresponds\n \tto the top <<def_directory,directory>> of the stored\n-\t<<def_revision,revision>>.\n+\trevision.\n \n [[def_core_git]]core git::\n \tFundamental data structures and utilities of git. Exposes only limited\n@@ -101,19 +101,19 @@ to point at the new commit.\n \n [[def_detached_HEAD]]detached HEAD::\n \tNormally the <<def_HEAD,HEAD>> stores the name of a\n-\t<<def_branch,branch>>.  However, git also allows you to check\n-\tout an arbitrary commit that isn't necessarily the tip of any\n+\t<<def_branch,branch>>.  However, git also allows you to <<def_checkout,check out>>\n+\tan arbitrary <<def_commit,commit>> that isn't necessarily the tip of any\n \tparticular branch.  In this case HEAD is said to be \"detached\".\n \n [[def_dircache]]dircache::\n-\tYou are *waaaaay* behind.\n+\tYou are *waaaaay* behind. See <<def_index,index>>.\n \n [[def_directory]]directory::\n \tThe list you get with \"ls\" :-)\n \n [[def_dirty]]dirty::\n \tA <<def_working_tree,working tree>> is said to be \"dirty\" if\n-\tit contains modifications which have not been committed to the current\n+\tit contains modifications which have not been <<def_commit,committed>> to the current\n \t<<def_branch,branch>>.\n \n [[def_ent]]ent::\n@@ -149,7 +149,7 @@ to point at the new commit.\n [[def_grafts]]grafts::\n \tGrafts enables two otherwise different lines of development to be joined\n \ttogether by recording fake ancestry information for commits. This way\n-\tyou can make git pretend the set of parents a <<def_commit,commit>> has\n+\tyou can make git pretend the set of <<def_parent,parents>> a <<def_commit,commit>> has\n \tis different from what was recorded when the commit was\n \tcreated. Configured via the `.git/info/grafts` file.\n \n@@ -157,13 +157,13 @@ to point at the new commit.\n \tIn git's context, synonym to <<def_object_name,object name>>.\n \n [[def_head]]head::\n-\tA named reference to the <<def_commit,commit>> at the tip of a\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 \tgitlink:git-pack-refs[1].)\n \n [[def_HEAD]]HEAD::\n-\tThe current branch.  In more detail: Your <<def_working_tree,\n+\tThe current <<def_branch,branch>>.  In more detail: Your <<def_working_tree,\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@@ -179,15 +179,15 @@ to point at the new commit.\n \tchecking. Typically, the hooks allow for a command to be pre-verified\n \tand potentially aborted, and allow for a post-notification after the\n \toperation is done. The hook scripts are found in the\n-\t`$GIT_DIR/hooks/` <<def_directory,directory>>, and are enabled by simply\n+\t`$GIT_DIR/hooks/` directory, and are enabled by simply\n \tmaking them executable.\n \n [[def_index]]index::\n \tA collection of files with stat information, whose contents are stored\n-\tas objects. The index is a stored version of your working\n-\t<<def_tree,tree>>. Truth be told, it can also contain a second, and even\n-\ta third version of a <<def_working_tree,working tree>>, which are used\n-\twhen merging.\n+\tas objects. The index is a stored version of your\n+\t<<def_working_tree,working tree>>. Truth be told, it can also contain a second, and even\n+\ta third version of a working tree, which are used\n+\twhen <<def_merge,merging>>.\n \n [[def_index_entry]]index entry::\n \tThe information regarding a particular file, stored in the\n@@ -249,16 +249,16 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \tdescribing the type of an <<def_object,object>>.\n \n [[def_octopus]]octopus::\n-\tTo <<def_merge,merge>> more than two branches. Also denotes an\n+\tTo <<def_merge,merge>> more than two <<def_branch,branches>>. Also denotes an\n \tintelligent predator.\n \n [[def_origin]]origin::\n \tThe default upstream <<def_repository,repository>>. Most projects have\n \tat least one upstream project which they track. By default\n \t'origin' is used for that purpose. New upstream updates\n-\twill be fetched into remote tracking branches named\n+\twill be fetched into remote <<def_tracking_branch,tracking branches>> named\n \torigin/name-of-upstream-branch, which you can see using\n-\t\"git <<def_branch,branch>> -r\".\n+\t\"`git branch -r`\".\n \n [[def_pack]]pack::\n \tA set of objects which have been compressed into one file (to save space\n@@ -327,7 +327,7 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \t`$GIT_DIR/refs/`.\n \n [[def_refspec]]refspec::\n-\tA <<def_refspec,refspec>> is used by <<def_fetch,fetch>> and\n+\tA \"refspec\" is used by <<def_fetch,fetch>> and\n \t<<def_push,push>> to describe the mapping between remote\n \t<<def_ref,ref>> and local ref. They are combined with a colon in\n \tthe format <src>:<dst>, preceded by an optional plus sign, +.\n@@ -340,11 +340,12 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \tgitlink:git-push[1]\n \n [[def_repository]]repository::\n-\tA collection of refs together with an\n+\tA collection of <<def_ref,refs>> together with an\n \t<<def_object_database,object database>> containing all objects\n \twhich are <<def_reachable,reachable>> from the refs, possibly\n-\taccompanied by meta data from one or more porcelains. A\n-\trepository can share an object database with other repositories.\n+\taccompanied by meta data from one or more <<def_porcelain,porcelains>>. A\n+\trepository can share an object database with other repositories\n+\tvia <<def_alternate_object_database,alternates mechanism>>.\n \n [[def_resolve]]resolve::\n \tThe action of fixing up manually what a failed automatic\n@@ -366,8 +367,8 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \tSynonym for <<def_object_name,object name>>.\n \n [[def_shallow_repository]]shallow repository::\n-\tA shallow repository has an incomplete\n-\thistory some of whose commits have parents cauterized away (in other\n+\tA shallow <<def_repository,repository>> has an incomplete\n+\thistory some of whose <<def_commit,commits>> have <<def_parent,parents>> cauterized away (in other\n \twords, git is told to pretend that these commits do not have the\n \tparents, even though they are recorded in the <<def_commit_object,commit\n \tobject>>). This is sometimes useful when you are interested only in the\n@@ -385,7 +386,7 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \tcommand.\n \n [[def_tag]]tag::\n-\tA <<def_ref,ref>> pointing to a tag or\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@@ -398,8 +399,7 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \tAn <<def_object,object>> containing a <<def_ref,ref>> pointing to\n \tanother object, which can contain a message just like a\n \t<<def_commit_object,commit object>>. It can also contain a (PGP)\n-\tsignature, in which case it is called a \"signed <<def_tag_object,tag\n-\tobject>>\".\n+\tsignature, in which case it is called a \"signed tag object\".\n \n [[def_topic_branch]]topic branch::\n \tA regular git <<def_branch,branch>> that is used by a developer to\n@@ -418,7 +418,7 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n \n [[def_tree]]tree::\n \tEither a <<def_working_tree,working tree>>, or a <<def_tree_object,tree\n-\tobject>> together with the dependent blob and tree objects\n+\tobject>> together with the dependent <<def_blob_object,blob>> and tree objects\n \t(i.e. a stored representation of a working tree).\n \n [[def_tree_object]]tree object::\n-- \n1.5.2\n"},{"id":"43303","messageId":"1180132662719-git-send-email-jnareb@gmail.com","threadId":"8316","inReplyTo":"11801326601014-git-send-email-jnareb@gmail.com","subject":"[PATCH 2/3] Documentation: Add definition of \"evil merge\" to GIT Glossary","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-05-25T22:37:39Z","receivedAt":"2007-05-25T22:37:39Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nApplies cleanly to 'master' branch 18bece43675ea0dc9022a7868865e02808b7af7f\n\n Documentation/glossary.txt |    4 ++++\n 1 files changed, 4 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/glossary.txt b/Documentation/glossary.txt\nindex ba52618..e903abf 100644\n--- a/Documentation/glossary.txt\n+++ b/Documentation/glossary.txt\n@@ -121,6 +121,10 @@ to point at the new commit.\n \t`http://en.wikipedia.org/wiki/Ent_(Middle-earth)` for an in-depth\n \texplanation. Avoid this term, not to confuse people.\n \n+[[def_evil_merge]]evil merge::\n+\tAn evil merge is a <<def_merge,merge>> that introduces changes that\n+\tdo not appear in any <<def_parent,parent>>.\n+\n [[def_fast_forward]]fast forward::\n \tA fast-forward is a special type of <<def_merge,merge>> where you have a\n \t<<def_revision,revision>> and you are \"merging\" another\n-- \n1.5.2\n"},{"id":"43302","messageId":"11801326633595-git-send-email-jnareb@gmail.com","threadId":"8316","inReplyTo":"1180132662719-git-send-email-jnareb@gmail.com","subject":"[PATCH 3/3] Replace the last 'dircache's by 'index'","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-05-25T22:37:40Z","receivedAt":"2007-05-25T22:37:40Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n Documentation/git-ls-files.txt |    2 +-\n diff.c                         |    2 +-\n 2 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt\nindex 076cebc..43e0d22 100644\n--- a/Documentation/git-ls-files.txt\n+++ b/Documentation/git-ls-files.txt\n@@ -124,7 +124,7 @@ which case it outputs:\n detailed information on unmerged paths.\n \n For an unmerged path, instead of recording a single mode/SHA1 pair,\n-the dircache records up to three such pairs; one from tree O in stage\n+the index records up to three such pairs; one from tree O in stage\n 1, A in stage 2, and B in stage 3.  This information can be used by\n the user (or the porcelain) to see what should eventually be recorded at the\n path. (see git-read-tree for more information on state)\ndiff --git a/diff.c b/diff.c\nindex 0e26049..508bc51 100644\n--- a/diff.c\n+++ b/diff.c\n@@ -1349,7 +1349,7 @@ void fill_filespec(struct diff_filespec *spec, const unsigned char *sha1,\n }\n \n /*\n- * Given a name and sha1 pair, if the dircache tells us the file in\n+ * Given a name and sha1 pair, if the index tells us the file in\n  * the work tree has that object contents, return true, so that\n  * prepare_temp_file() does not have to inflate and extract.\n  */\n-- \n1.5.2\n"},{"id":"43307","messageId":"20070525235032.GE32073@fieldses.org","threadId":"8316","inReplyTo":"11801326601014-git-send-email-jnareb@gmail.com","subject":"Re: [PATCH 1/3] Documentation: Clean up links in GIT Glossary","fromName":"J. Bruce Fields","fromEmail":"bfields@fieldses.org","sentAt":"2007-05-25T23:50:32Z","receivedAt":"2007-05-25T23:50:32Z","isPatch":true,"sender":{"key":"bfields@citi.umich.edu","avatar":null},"body":"On Sat, May 26, 2007 at 12:37:38AM +0200, Jakub Narebski wrote:\n> Ensure that the same link is not repeated in single glossary entry,\n> and that there is no self-link i.e. link to current entry.\n> \n> Add links to other definitions in git glossary.\n> \n> Remove inappropriate (nonsense) links, or change link to link to\n> correct definition (to correct term).\n> \n> Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n\nThose look good to me!\n\n--b.\n"},{"id":"43308","messageId":"20070526001423.GF32073@fieldses.org","threadId":"8316","inReplyTo":"1180132662719-git-send-email-jnareb@gmail.com","subject":"Re: [PATCH 2/3] Documentation: Add definition of \"evil merge\" to GIT Glossary","fromName":"J. Bruce Fields","fromEmail":"bfields@fieldses.org","sentAt":"2007-05-26T00:14:23Z","receivedAt":"2007-05-26T00:14:23Z","isPatch":true,"sender":{"key":"bfields@citi.umich.edu","avatar":null},"body":"On Sat, May 26, 2007 at 12:37:39AM +0200, Jakub Narebski wrote:\n> +[[def_evil_merge]]evil merge::\n> +\tAn evil merge is a <<def_merge,merge>> that introduces changes that\n> +\tdo not appear in any <<def_parent,parent>>.\n> +\n\nI'm a little skeptical.  This term doesn't appear to be used anywhere in\nthe current documentation, for example--are you sure it's worth\nincluding at this point?  I don't know--I just don't want to end up with\nan entry for every piece of cute jargon that's been used as shorthand on\nthe mailing list a few times.  But if you think it's sufficiently useful\nand well-established, then OK.\n\n--b.\n"},{"id":"43310","messageId":"200705260234.39095.jnareb@gmail.com","threadId":"8316","inReplyTo":"20070526001423.GF32073@fieldses.org","subject":"Re: [PATCH 2/3] Documentation: Add definition of \"evil merge\" to GIT Glossary","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-05-26T00:34:38Z","receivedAt":"2007-05-26T00:34:38Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"J. Bruce Fields wrote:\n> On Sat, May 26, 2007 at 12:37:39AM +0200, Jakub Narebski wrote:\n\n>> +[[def_evil_merge]]evil merge::\n>> +\tAn evil merge is a <<def_merge,merge>> that introduces changes that\n>> +\tdo not appear in any <<def_parent,parent>>.\n>> +\n> \n> I'm a little skeptical.  This term doesn't appear to be used anywhere in\n> the current documentation, for example--are you sure it's worth\n> including at this point?  I don't know--I just don't want to end up with\n> an entry for every piece of cute jargon that's been used as shorthand on\n> the mailing list a few times.  But if you think it's sufficiently useful\n> and well-established, then OK.\n\nCurrently only t/annotate-tests.sh uses \"evil merge\" term, but it is\nI think quite commonly used in discussion.\n\nFeel free to skip this patch, if you think it is not worth it, Junio.\n-- \nJakub Narebski\nPoland\n"},{"id":"43313","messageId":"Pine.LNX.4.64.0705260151320.4648@racer.site","threadId":"8316","inReplyTo":"1180132662719-git-send-email-jnareb@gmail.com","subject":"Re: [PATCH 2/3] Documentation: Add definition of \"evil merge\" to GIT Glossary","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-05-26T00:52:09Z","receivedAt":"2007-05-26T00:52:09Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sat, 26 May 2007, Jakub Narebski wrote:\n\n> +[[def_evil_merge]]evil merge::\n> +\tAn evil merge is a <<def_merge,merge>> that introduces changes that\n> +\tdo not appear in any <<def_parent,parent>>.\n\nFunny. For me, an evil merge is an octopus.\n\nCiao,\nDscho\n"},{"id":"43314","messageId":"20070526010519.GV28023@spearce.org","threadId":"8316","inReplyTo":"Pine.LNX.4.64.0705260151320.4648@racer.site","subject":"Re: [PATCH 2/3] Documentation: Add definition of \"evil merge\" to GIT Glossary","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-05-26T01:05:19Z","receivedAt":"2007-05-26T01:05:19Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> \n> On Sat, 26 May 2007, Jakub Narebski wrote:\n> \n> > +[[def_evil_merge]]evil merge::\n> > +\tAn evil merge is a <<def_merge,merge>> that introduces changes that\n> > +\tdo not appear in any <<def_parent,parent>>.\n> \n> Funny. For me, an evil merge is an octopus.\n\nFunny, for me an evil merge is 30 commits in a straight row, all\nbranch merges, when an octopus would be easier to read in gitk,\nand easier to execute... ;-)\n\nActually, my definition of evil merge matches Jakub's definition.\n\n-- \nShawn.\n"}]}