summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-02-27name-hash.c: fix endless loop with core.ignorecase=trueLibravatar Karsten Blees4-62/+166
With core.ignorecase=true, name-hash.c builds a case insensitive index of all tracked directories. Currently, the existing cache entry structures are added multiple times to the same hashtable (with different name lengths and hash codes). However, there's only one dir_next pointer, which gets completely messed up in case of hash collisions. In the worst case, this causes an endless loop if ce == ce->dir_next (see t7062). Use a separate hashtable and separate structures for the directory index so that each directory entry has its own next pointer. Use reference counting to track which directory entry contains files. There are only slight changes to the name-hash.c API: - new free_name_hash() used by read_cache.c::discard_index() - remove_name_hash() takes an additional index_state parameter - index_name_exists() for a directory (trailing '/') may return a cache entry that has been removed (CE_UNHASHED). This is not a problem as the return value is only used to check if the directory exists (dir.c) or to normalize casing of directory names (read-cache.c). Getting rid of cache_entry.dir_next reduces memory consumption, especially with core.ignorecase=false (which doesn't use that member at all). With core.ignorecase=true, building the directory index is slightly faster as we add / check the parent directory first (instead of going through all directory levels for each file in the index). E.g. with WebKit (~200k files, ~7k dirs), time spent in lazy_init_name_hash is reduced from 176ms to 130ms. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27Git 1.8.0.3Libravatar Junio C Hamano4-3/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27git(1): show link to contributor summary pageLibravatar Junio C Hamano1-1/+4
We earlier removed a link to list of contributors that pointed to a defunct page; let's use a working one from Ohloh.net to replace it instead. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27Merge branch 'sl/maint-git-svn-docs' into maintLibravatar Junio C Hamano1-6/+85
* sl/maint-git-svn-docs: git-svn: Note about tags. git-svn: Expand documentation for --follow-parent git-svn: Recommend use of structure options. git-svn: Document branches with at-sign(@).
2012-12-27git-svn: Note about tags.Libravatar Sebastian Leske1-0/+6
Document that 'git svn' will import SVN tags as branches. Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27git-svn: Expand documentation for --follow-parentLibravatar Sebastian Leske1-3/+12
Describe what the option --follow-parent does, and what happens if it is set or unset. Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27git-svn: Recommend use of structure options.Libravatar Sebastian Leske1-3/+21
Document that when using git svn, one should usually either use the directory structure options to import branches as branches, or only import one subdirectory. The default behaviour of cloning all branches and tags as subdirectories in the working copy is usually not what the user wants. Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27git-svn: Document branches with at-sign(@).Libravatar Sebastian Leske1-0/+46
git svn sometimes creates branches with an at-sign in the name (branchname@revision). These branches confuse many users and it is a FAQ why they are created. Document when git svn creates them. Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27Merge branch 'gb/maint-doc-svn-log-window-size' into maintLibravatar Junio C Hamano1-0/+7
* branch 'gb/maint-doc-svn-log-window-size': Document git-svn fetch --log-window-size parameter
2012-12-27Merge branch 'km/maint-doc-git-reset' into maintLibravatar Junio C Hamano1-4/+4
* branch 'km/maint-doc-git-reset': doc: git-reset: make "<mode>" optional
2012-12-27git-remote-helpers.txt: document invocation before input formatLibravatar Max Horn1-31/+31
In the distant past, the order things were documented was 'Invocation', 'Commands', 'Capabilities', ... Then it was decided that before giving a list of Commands, there should be an overall description of the 'Input format', which was a wise decision. However, this description was put as the very first thing, with the rationale that any implementor would want to know that first. However, it seems an implementor would actually first need to know how the remote helper will be invoked, so moving 'Invocation' to the front again seems logical. Moreover, we now don't switch from discussing the input format to the invocation style and then back to input related stuff. Signed-off-by: Max Horn <max@quendi.de> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27Merge branch 'jk/avoid-mailto-invalid-in-doc' into maintLibravatar Junio C Hamano3-3/+3
* jk/avoid-mailto-invalid-in-doc: Documentation: don't link to example mail addresses
2012-12-27Merge branch 'tj/maint-doc-commit-sign' into maintLibravatar Junio C Hamano1-1/+5
* branch 'tj/maint-doc-commit-sign': Add -S, --gpg-sign option to manpage of "git commit"
2012-12-27Documentation: move diff.wordRegex from config.txt to diff-config.txtLibravatar Ramkumar Ramachandra2-6/+6
19299a8 (Documentation: Move diff.<driver>.* from config.txt to diff-config.txt, 2011-04-07) moved the diff configuration options to diff-config.txt, but forgot about diff.wordRegex, which was left behind in config.txt. Fix this. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-22Merge branch 'jc/doc-diff-blobs' into maintLibravatar Junio C Hamano1-2/+7
* jc/doc-diff-blobs: Documentation: Describe "git diff <blob> <blob>" separately
2012-12-22Merge branch 'cr/doc-checkout-branch' into maintLibravatar Junio C Hamano1-10/+41
* cr/doc-checkout-branch: Documentation/git-checkout.txt: document 70c9ac2 behavior Documentation/git-checkout.txt: clarify usage
2012-12-22Merge branch 'ta/api-index-doc' into maintLibravatar Junio C Hamano1-2/+0
* ta/api-index-doc: Remove misleading date from api-index-skel.txt
2012-12-22Merge branch 'as/doc-for-devs' into maintLibravatar Junio C Hamano2-13/+16
* as/doc-for-devs: Documentation: move support for old compilers to CodingGuidelines SubmittingPatches: add convention of prefixing commit messages
2012-12-22Merge branch 'sl/readme-gplv2' into maintLibravatar Junio C Hamano1-3/+4
* sl/readme-gplv2: README: it does not matter who the current maintainer is README: Git is released under the GPLv2, not just "the GPL"
2012-12-22Merge branch 'jc/fetch-tags-doc' into maintLibravatar Junio C Hamano1-8/+5
* jc/fetch-tags-doc: fetch --tags: clarify documentation
2012-12-22Merge branch 'nd/index-format-doc' into maintLibravatar Junio C Hamano1-2/+3
* nd/index-format-doc: index-format.txt: clarify what is "invalid"
2012-12-22Merge branch 'jk/mailmap-cleanup' into maintLibravatar Junio C Hamano2-33/+82
* jk/mailmap-cleanup: contrib: update stats/mailmap script .mailmap: normalize emails for Linus Torvalds .mailmap: normalize emails for Jeff King .mailmap: fix broken entry for Martin Langhoff .mailmap: match up some obvious names/emails
2012-12-22Merge branch 'ta/doc-cleanup' into maintLibravatar Junio C Hamano20-68/+134
* ta/doc-cleanup: Documentation: build html for all files in technical and howto Documentation/howto: convert plain text files to asciidoc Documentation/technical: convert plain text files to asciidoc Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1 Split over-long synopsis in git-fetch-pack.txt into several lines
2012-12-22Sort howto documents in howto-index.txtLibravatar Thomas Ackermann1-1/+1
Howto documents in howto-index.txt were listed in a rather random order. So better sort them. Signed-off-by: Thomas Ackermann <th.acker@arcor.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18Documentation: Describe "git diff <blob> <blob>" separatelyLibravatar Junio C Hamano1-2/+7
As it was not a common operation, it was described as if it is a side note for the more common two-commit variant, but this mode behaves very differently, e.g. it does not make any sense to ask recursive behaviour, or give the command a pathspec. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18t7004: do not create unneeded gpghome/gpg.conf when GPG is not usedLibravatar Junio C Hamano1-1/+4
These tests themselves are properly protected by the GPG prerequisite, but one of the set-up steps outside the test_expect_success block unconditionally assumed that there is a gpghome/ directory, which is not true if GPG is not being used. It may be a good idea to move the whole set-up steps in the test but that is a follow-up topic. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18Documentation/git-checkout.txt: document 70c9ac2 behaviorLibravatar Chris Rorvick1-0/+8
Document the behavior implemented in 70c9ac2 (DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"). Signed-off-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18Documentation/git-checkout.txt: clarify usageLibravatar Chris Rorvick1-10/+33
The forms of checkout that do not take a path are lumped together in the DESCRIPTION section, but the description for this group is dominated by explanation of the -b|-B form. Split these apart for more clarity. Signed-off-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18Merge branch 'jk/pickaxe-textconv' into maintLibravatar Junio C Hamano2-19/+54
"git log -p -S<string>" now looks for the <string> after applying the textconv filter (if defined); earlier it inspected the contents of the blobs without filtering.
2012-12-18clarify -M without % symbol in diff-optionsLibravatar Sitaram Chamarty1-1/+5
Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16Documentation: move support for old compilers to CodingGuidelinesLibravatar Adam Spiers2-13/+8
The "Try to be nice to older C compilers" text is clearly a guideline to be borne in mind whilst coding rather than when submitting patches. Signed-off-by: Adam Spiers <git@adamspiers.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16SubmittingPatches: add convention of prefixing commit messagesLibravatar Adam Spiers1-0/+8
Conscientious newcomers to git development will read SubmittingPatches and CodingGuidelines, but could easily miss the convention of prefixing commit messages with a single word identifying the file or area the commit touches. Signed-off-by: Adam Spiers <git@adamspiers.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16Documentation: don't link to example mail addressesLibravatar John Keeping3-3/+3
Email addresses in documentation are converted into mailto: hyperlinks in the HTML output and footnotes in man pages. This isn't desirable for cases where the address is used as an example and is not valid. Particularly annoying is the example "jane@laptop.(none)" which appears in git-shortlog(1) as "jane@laptop[1].(none)", with note 1 saying: 1. jane@laptop mailto:jane@laptop Fix this by escaping these email addresses with a leading backslash, to prevent Asciidoc expanding them as inline macros. In the case of mailmap.txt, render the address monospaced so that it matches the block examples surrounding that paragraph. Helped-by: Jeff King <peff@peff.net> Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16Remove misleading date from api-index-skel.txtLibravatar Thomas Ackermann1-2/+0
Signed-off-by: Thomas Ackermann <th.acker@arcor.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-15README: it does not matter who the current maintainer isLibravatar Junio C Hamano1-3/+2
The audience of this introductory document does not have to know nor interact with the maintainer, so drop the mention of him. Other documents such as SubmittingPatches may be a more suitable place to have it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-15README: Git is released under the GPLv2, not just "the GPL"Libravatar Stefano Lattarini1-1/+3
And this is clearly stressed by Linus in the COPYING file. So make it clear in the README as well, to avoid possible misunderstandings. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13fetch --tags: clarify documentationLibravatar Junio C Hamano1-8/+5
Explain that --tags is just like another explicit refspec on the command line and as such overrides the default refspecs configured via the remote.$name.fetch variable. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13Fix sizeof usage in get_permutationsLibravatar Matthew Daley1-3/+3
Currently it gets the size of an otherwise unrelated, unused variable instead of the expected struct size. Signed-off-by: Matthew Daley <mattjd@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13git.txt: add missing info about --git-dir command-line optionLibravatar Manlio Perillo1-0/+1
Unlike other environment variables (e.g. GIT_WORK_TREE, GIT_NAMESPACE), the Documentation/git.txt file did not mention that the GIT_DIR environment variable can also be set using the --git-dir command line option. Signed-off-by: Manlio Perillo <manlio.perillo@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13index-format.txt: clarify what is "invalid"Libravatar Nguyễn Thái Ngọc Duy1-2/+3
A cache-tree entry with a negative entry count is considered invalid by the current Git; it records that we do not know the object name of a tree that would result by writing the directory covered by the cache-tree as a tree object. Clarify that any entry with a negative entry count is invalid, but the implementations must write -1 there. This way, we can later decide to allow writers to use negative values other than -1 to encode optional information on such invalidated entries without harming interoperability; we do not know what will be encoded and how, so we keep these other negative values as reserved for now. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12contrib: update stats/mailmap scriptLibravatar Jeff King1-32/+64
This version changes quite a few things: 1. The original parsed the mailmap file itself, and it did it wrong (it did not understand entries with an extra email key). Instead, this version uses git's "%aE" and "%aN" formats to have git perform the mapping, meaning we do not have to read .mailmap at all, but still operate on the current state that git sees (and it also works properly from subdirs). 2. The original would find multiple names for an email, but not the other way around. This version can do either or both. If we find multiple emails for a name, the resolution is less obvious than the other way around. However, it can still be a starting point for a human to investigate. 3. The original would order only by count, not by recency. This version can do either. Combined with showing the counts, it can be easier to decide how to resolve. 4. This version shows similar entries in a blank-delimited stanza, which makes it more clear which options you are picking from. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12.mailmap: normalize emails for Linus TorvaldsLibravatar Jeff King1-0/+6
Linus used a lot of different per-machine email addresses in the early days. This means that "git shortlog -nse" does not aggregate his counts, and he is listed well below where he should be (8th instead of 3rd). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12.mailmap: normalize emails for Jeff KingLibravatar Jeff King1-0/+1
I never meant anything special by using my @github.com address; it is merely a mistake that it has sometimes bled through to patches. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12.mailmap: fix broken entry for Martin LanghoffLibravatar Jeff King1-1/+1
Commit adc3192 (Martin Langhoff has a new e-mail address, 2010-10-05) added a mailmap entry, but forgot that both the old and new email addresses need to appear for one to be mapped to the other (i.e., we do not key mailmap emails by name). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12.mailmap: match up some obvious names/emailsLibravatar Jeff King1-0/+10
This patch updates git's .mailmap in cases where multiple names are matched to a single email. The "master" name for each email was chosen by: 1. If the only difference is in the presence or absence of accented characters, the accented form is chosen (under the assumption that it is the natural spelling, and accents are sometimes stripped in email). 2. Otherwise, the most commonly used name is chosen. 3. If all names are equally common, the most recently used name is chosen. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-11git-prompt: Document GIT_PS1_DESCRIBE_STYLELibravatar Anders Kaseorg1-0/+9
GIT_PS1_DESCRIBE_STYLE was introduced in v1.6.3.2~35. Document it in the header comments. Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-10Git 1.8.0.2Libravatar Junio C Hamano2-2/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-10Documentation/git-stash.txt: add a missing verbLibravatar Sébastien Loriot1-1/+1
Signed-off-by: Sébastien Loriot <sloriot.ml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-09git(1): remove a defunct link to "list of authors"Libravatar Junio C Hamano1-2/+1
The linked page has not been showing the promised "more complete list" for more than 6 months by now, and nobody has resurrected the list there nor elsewhere since then. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07Update draft release notes to 1.8.0.2Libravatar Junio C Hamano1-0/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>