Permalink
Commits on Nov 18, 2007
  1. GIT 1.5.3.6

    committed Nov 18, 2007
  2. grep -An -Bm: fix invocation of external grep command

    When building command line to invoke external grep, the
    arguments to -A/-B/-C options were placd in randarg[] buffer,
    but the code forgot that snprintf() does not count terminating
    NUL in its return value.  This caused "git grep -A1 -B2" to
    invoke external grep with "-B21 -A1".
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 18, 2007
Commits on Nov 17, 2007
  1. Update draft release notes for 1.5.3.6

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 17, 2007
  2. Merge branch 'ds/maint-deflatebound' into maint

    * ds/maint-deflatebound:
      Improve accuracy of check for presence of deflateBound.
    committed Nov 17, 2007
  3. Fix per-directory exclude handing for "git add"

    In "dir_struct", each exclusion element in the exclusion stack records a
    base string (pointer to the beginning with length) so that we can tell
    where it came from, but this pointer is just pointing at the parameter
    that is given by the caller to the push_exclude_per_directory()
    function.
    
    While read_directory_recursive() runs, calls to excluded() makes use
    the data in the exclusion elements, including this base string.  The
    caller of read_directory_recursive() is not supposed to free the
    buffer it gave to push_exclude_per_directory() earlier, until it
    returns.
    
    The test case Bruce Stephens gave in the mailing list discussion
    was simplified and added to the t3700 test.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 16, 2007
  4. core.excludesfile clean-up

    There are inconsistencies in the way commands currently handle
    the core.excludesfile configuration variable.  The problem is
    the variable is too new to be noticed by anything other than
    git-add and git-status.
    
     * git-ls-files does not notice any of the "ignore" files by
       default, as it predates the standardized set of ignore files.
       The calling scripts established the convention to use
       .git/info/exclude, .gitignore, and later core.excludesfile.
    
     * git-add and git-status know about it because they call
       add_excludes_from_file() directly with their own notion of
       which standard set of ignore files to use.  This is just a
       stupid duplication of code that need to be updated every time
       the definition of the standard set of ignore files is
       changed.
    
     * git-read-tree takes --exclude-per-directory=<gitignore>,
       not because the flexibility was needed.  Again, this was
       because the option predates the standardization of the ignore
       files.
    
     * git-merge-recursive uses hardcoded per-directory .gitignore
       and nothing else.  git-clean (scripted version) does not
       honor core.* because its call to underlying ls-files does not
       know about it.  git-clean in C (parked in 'pu') doesn't either.
    
    We probably could change git-ls-files to use the standard set
    when no excludes are specified on the command line and ignore
    processing was asked, or something like that, but that will be a
    change in semantics and might break people's scripts in a subtle
    way.  I am somewhat reluctant to make such a change.
    
    On the other hand, I think it makes perfect sense to fix
    git-read-tree, git-merge-recursive and git-clean to follow the
    same rule as other commands.  I do not think of a valid use case
    to give an exclude-per-directory that is nonstandard to
    read-tree command, outside a "negative" test in the t1004 test
    script.
    
    This patch is the first step to untangle this mess.
    
    The next step would be to teach read-tree, merge-recursive and
    clean (in C) to use setup_standard_excludes().
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 17, 2007
  5. @wincent

    Fix t9101 test failure caused by Subversion "auto-props"

    If a user has an "auto-prop" in his/her ~/.subversion/config file for
    automatically setting the svn:keyword Id property on all ".c" files
    (a reasonably common configuration in the Subversion world) then one
    of the "svn propset" operations in the very first test would become a
    no-op, which in turn would make the next commit a no-op.
    
    This then caused the 25th test ('test propget') to fail because it
    expects a certain number of commits to have taken place but the actual
    number of commits was off by one.
    
    Björn Steinbrink identified the "auto-prop" feature as the cause
    of the failure. This patch avoids it by passing the "--no-auto-prop"
    flag to "svn import" when setting up the test repository, thus ensuring
    that the "svn propset" operation is no longer a no-op, regardless of the
    users' settings in their config.
    
    Signed-off-by: Wincent Colaiuta <win@wincent.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    wincent committed with Nov 16, 2007
  6. @peff

    git-send-email: add charset header if we add encoded 'From'

    We sometimes pick out the original rfc822 'From' header and
    include it in the body of the message. If the original
    author's name needs encoding, then we should specify that in
    the content-type header.
    
    If we already had a content-type header in the mail, then we
    may need to re-encode. The logic is there to detect
    this case, but it doesn't actually do the re-encoding.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Acked-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with Nov 16, 2007
Commits on Nov 14, 2007
  1. git-clean: honor core.excludesfile

    git-clean did not honor core.excludesfile configuration
    variable, although some other commands such as git-add and
    git-status did.  Fix this inconsistency.
    
    Original report and patch from Shun'ichi Fuji.  Rewritten by me
    and bugs and tests are mine.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 14, 2007
  2. @jonas

    Documentation: Fix man page breakage with DocBook XSL v1.72

    From version 1.72 it will replace all dots in roff requests with U+2302
    ("house" character), and add escaping in output for all instances of dot
    that are not in roff requests. This caused the ".ft" hack forcing
    monospace font in listingblocks to end up as "\&.ft" and being visible
    in the resulting man page.
    
    The fix adds a DOCBOOK_XSL_172 build variable that will disable the
    hack. To allow this variable to be defined in config.mak it also moves
    build variable handling below the inclusion of config.mak.
    
    Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonas committed with Nov 14, 2007
  3. git-remote.txt: fix typo

    Signed-off-by: Sergei Organov <osv@javad.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Sergei Organov committed with Nov 13, 2007
  4. core-tutorial.txt: Fix argument mistake in an example.

    One of examples has wrong output given the arguments provided.
    Fix arguments to match the output.
    
    Fix a minor syntax mistake in another place.
    
    Signed-off-by: Sergei Organov <osv@javad.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Sergei Organov committed with Nov 10, 2007
  5. @jingxue

    replace reference to git-rm with git-reset in git-commit doc

    The message in git-commit suggesting to use 'git rm --cached'
    to unstage is just plain wrong. It really should mention 'git reset'.
    
    Suggested by Jan Hudec.
    
    Signed-off-by: Jing Xue <jingxue@digizenstudio.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jingxue committed with Nov 12, 2007
  6. @wincent

    Grammar fixes for gitattributes documentation

    Tweak the "filter" section of the gitattributes documentation to add
    some
    missing articles and improve some word choices without changing the
    semantics of the section.
    
    Signed-off-by: Wincent Colaiuta <win@wincent.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    wincent committed with Nov 14, 2007
  7. @spearce

    Don't allow fast-import tree delta chains to exceed maximum depth

    Brian Downing noticed fast-import can produce tree depths of up
    to 6,035 objects and even deeper.  Long delta chains can create
    very small packfiles but cause problems during repacking as git
    needs to unpack each tree to count the reachable blobs.
    
    What's happening here is the active branch cache isn't big enough.
    We're swapping out the branch and thus recycling the tree information
    (struct tree_content) back into the free pool.  When we later reload
    the tree we set the delta_depth to 0 but we kept the tree we just
    reloaded as a delta base.
    
    So if the tree we reloaded was already at the maximum depth we
    wouldn't know it and make the new tree a delta.  Multiply the
    number of times the branch cache has to swap out the tree times
    max_depth (10) and you get the maximum delta depth of a tree created
    by fast-import.  In Brian's case above the active branch cache had
    to swap the branch out 603/604 times during this import to produce
    a tree with a delta depth of 6035.
    
    Acked-by: Brian Downing <bdowning@lavos.net>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    spearce committed with Nov 14, 2007
Commits on Nov 13, 2007
  1. revert/cherry-pick: allow starting from dirty work tree.

    There is no reason to forbid a dirty work tree when reverting or
    cherry-picking a change, as long as the index is clean.
    
    The scripted version used to allow it:
    
        case "$no_commit" in
        t)
        	# We do not intend to commit immediately.  We just want to
        	# merge the differences in.
        	head=$(git-write-tree) ||
        		die "Your index file is unmerged."
        	;;
        *)
        	head=$(git-rev-parse --verify HEAD) ||
        		die "You do not have a valid HEAD"
        	files=$(git-diff-index --cached --name-only $head) || exit
        	if [ "$files" ]; then
        		die "Dirty index: cannot $me (dirty: $files)"
        	fi
        	;;
        esac
    
    but C rewrite tightened the check, probably by mistake.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 13, 2007
  2. t/t3404: fix test for a bogus todo file.

    The test wants to see if there are still remaining tasks, but checked
    a wrong file.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 13, 2007
Commits on Nov 12, 2007
  1. Merge branch 'sp/maint-plug-traverse-commit-list-leak' into maint

    * sp/maint-plug-traverse-commit-list-leak:
      Fix memory leak in traverse_commit_list
    committed Nov 12, 2007
  2. @chriscool

    for-each-ref: fix off by one read.

    Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    chriscool committed with Nov 12, 2007
  3. @peff

    git-branch: remove mention of non-existent '-b' option

    This looks like a cut and paste error from the git-checkout
    explanation of --no-track.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with Nov 12, 2007
  4. @tsuna

    git-svn: prevent dcommitting if the index is dirty.

    dcommit uses rebase to sync the history with what has just been pushed to
    SVN.  Trying to dcommit with a dirty index is troublesome for rebase, so now
    the user will get an error message if he attempts to dcommit with a dirty
    index.
    
    Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
    Acked-by: Eric Wong <normalperson@yhbt.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    tsuna committed with Nov 11, 2007
Commits on Nov 11, 2007
  1. fix index-pack with packs >4GB containing deltas on 32-bit machines

    This probably hasn't been properly tested before.  Here's a script to
    create a 8GB repo with the necessary characteristics (copy the
    test-genrandom executable from the Git build tree to /tmp first):
    
    -----
    #!/bin/bash
    
    git init
    git config core.compression 0
    
    # create big objects with no deltas
    for i in $(seq -w 1 2 63)
    do
    	echo $i
    	/tmp/test-genrandom $i 268435456 > file_$i
    	git add file_$i
    	rm file_$i
    	echo "file_$i -delta" >> .gitattributes
    done
    
    # create "deltifiable" objects in between big objects
    for i in $(seq -w 2 2 64)
    do
    	echo "$i $i $i" >> grow
    	cp grow file_$i
    	git add file_$i
    	rm file_$i
    done
    rm grow
    
    # create a pack with them
    git commit -q -m "commit of big objects interlaced with small deltas"
    git repack -a -d
    -----
    
    Then clone this repo over the Git protocol.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Nicolas Pitre committed with Nov 11, 2007
  2. git-hash-object should honor config variables

    ... such as core.compression.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Nicolas Pitre committed with Nov 10, 2007
Commits on Nov 10, 2007
  1. @vzanotti

    gitweb: correct month in date display for atom feeds

    Signed-off-by: Vincent Zanotti <vincent.zanotti@m4x.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    vzanotti committed with Nov 10, 2007
  2. @spearce

    Fix memory leak in traverse_commit_list

    If we were listing objects too then the objects were buffered in an
    array only reachable from a stack allocated structure.  When this
    function returns that array would be leaked as nobody would have
    a reference to it anymore.
    
    Historically this hasn't been a problem as the primary user of
    traverse_commit_list() (the noble git-rev-list) would terminate
    as soon as the function was finished, thus allowing the operating
    system to cleanup memory.  However we have been leaking this data
    in git-pack-objects ever since that program learned how to run the
    revision listing internally, rather than relying on reading object
    names from git-rev-list.
    
    To better facilitate reuse of traverse_commit_list during other
    builtin tools (such as git-fetch) we shouldn't leak temporary memory
    like this and instead we need to clean up properly after ourselves.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    spearce committed with Nov 9, 2007
  3. print warning/error/fatal messages in one shot

    Not doing so is likely to create a messed up display when sent over the
    sideband protocol.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Nicolas Pitre committed with Nov 9, 2007
Commits on Nov 9, 2007
  1. Start preparing for 1.5.3.6

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 9, 2007
  2. @tsuna

    git-send-email: Change the prompt for the subject of the initial mess…

    …age.
    
    I never understood what this prompt was asking for until I read the actual
    source code.  I think this wording is much more understandable.
    
    Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    tsuna committed with Nov 8, 2007
  3. SubmittingPatches: improve the 'Patch:' section of the checklist

    There were 2 items "send patch to..." but having different set of
    addresses to send patch to. Merge them together and move the resulting
    item to the end of checklist.
    
    Signed-off-by: Sergei Organov <osv@javad.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Sergei Organov committed with Nov 8, 2007
  4. @jonas

    instaweb: Minor cleanups and fixes for potential problems

    Fix path quoting and test of empty values that some shells do not like.
    Remove duplicate check and setting of $browser.
    
    Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jonas committed with Nov 8, 2007
  5. @raalkml

    stop t1400 hiding errors in tests

    The last rm in the test was lacking an "&&" before it,
    which caused the errors in the commands be silently hidden.
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    raalkml committed with Nov 8, 2007
  6. Makefile: add missing dependency on wt-status.h

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 9, 2007
  7. refresh_index_quietly(): express "optional" nature of index writing b…

    …etter
    
    The point of the part of the code this patch touches is that if
    we modified the active_cache, we try to write it out and make it
    the index file for later users to use by calling
    "commit_locked_index", but we do not really care about the
    failure from this sequence because it is done purely as an
    optimization.
    
    The original code called three functions primarily for their
    side effects but as condition of an if statement, which is
    admittedly a bad style.
    
    Incidentally, it squelches an "empty if body" warning from gcc.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed Nov 9, 2007
Commits on Nov 8, 2007
  1. Fix sed string regex escaping in module_name.

    When escaping a string to be used as a sed regex, it is important
    to only escape active characters.  Escaping other characters is
    undefined according to POSIX, and in practice leads to issues with
    extensions such as GNU sed's \+.
    
    Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Ralf Wildenhues committed with Nov 8, 2007
  2. Avoid a few unportable, needlessly nested "...`...".

    Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Ralf Wildenhues committed with Nov 8, 2007