Skip to content
Commits on Oct 19, 2005
  1. GIT 0.99.8f

    Yes I said 0.99.8e was the last maintenance release for 0.99.8, but it
    turns out that there was another backport necessary after git-daemon
    was unleashed on kernel.org servers.
    
    Contains the following since 0.99.8e:
    
    H. Peter Anvin:
          revised^2: git-daemon extra paranoia, and path DWIM
    
    Johannes Schindelin:
          Fix cvsimport warning when called without --no-cvs-direct
    
    Junio C Hamano:
          Do not ask for objects known to be complete.
    
    Linus Torvalds:
          git-fetch-pack: avoid unnecessary zero packing
          Optimize common case of git-rev-list
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 19, 2005
  2. @dscho

    Fix cvsimport warning when called without --no-cvs-direct

    Perl was warning that $opt_p was undefined in that case.
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    dscho committed with Junio C Hamano Oct 19, 2005
  3. Do not ask for objects known to be complete.

    On top of optimization by Linus not to ask refs that already match, we
    can walk our refs and not issue "want" for things that are known to be
    reachable from them.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 19, 2005
  4. Optimize common case of git-rev-list

    I took a look at webgit, and it looks like at least for the "projects"
    page, the most common operation ends up being basically
    
    	git-rev-list --header --parents --max-count=1 HEAD
    
    Now, the thing is, the way "git-rev-list" works, it always keeps on
    popping the parents and parsing them in order to build the list of
    parents, and it turns out that even though we just want a single commit,
    git-rev-list will invariably look up _three_ generations of commits.
    
    It will parse:
     - the commit we want (it obviously needs this)
     - it's parent(s) as part of the "pop_most_recent_commit()" logic
     - it will then pop one of the parents before it notices that it doesn't
       need any more
     - and as part of popping the parent, it will parse the grandparent (again
       due to "pop_most_recent_commit()".
    
    Now, I've strace'd it, and it really is pretty efficient on the whole, but
    if things aren't nicely cached, and with long-latency IO, doing those two
    extra objects (at a minimum - if the parent is a merge it will be more) is
    just wasted time, and potentially a lot of it.
    
    So here's a quick special-case for the trivial case of "just one commit,
    and no date-limits or other special rules".
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Linus Torvalds committed with Junio C Hamano Oct 19, 2005
  5. revised^2: git-daemon extra paranoia, and path DWIM

    This patch adds some extra paranoia to the git-daemon filename test.  In
    particular, it now rejects pathnames containing //; it also adds a
    redundant test for pathname absoluteness (belts and suspenders.)
    
    A single / at the end of the path is still permitted, however, and the
    .git and /.git append DWIM stuff is now handled in an integrated manner,
    which means the resulting path will always be subjected to pathname checks.
    
    [jc: backported to 0.99.8 maintenance branch]
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    H. Peter Anvin committed with Junio C Hamano Oct 19, 2005
  6. git-fetch-pack: avoid unnecessary zero packing

    If everything is up-to-date locally, we don't need to even ask for a
    pack-file from the remote, or try to unpack it.
    
    This is especially important for tags - since the pack-file common commit
    logic is based purely on the commit history, it will never be able to find
    a common tag, and will thus always end up re-fetching them.
    
    Especially notably, if the tag points to a non-commit (eg a tagged tree),
    the pack-file would be unnecessarily big, just because it cannot any most
    recent common point between commits for pruning.
    
    Short-circuiting the case where we already have that reference means that
    we avoid a lot of these in the common case.
    
    NOTE! This only matches remote ref names against the same local name,
    which works well for tags, but is not as generic as it could be. If we
    ever need to, we could match against _any_ local ref (if we have it, we
    have it), but this "match against same name" is simpler and more
    efficient, and covers the common case.
    
    Renaming of refs is common for branch heads, but since those are always
    commits, the pack-file generation can optimize that case.
    
    In some cases we might still end up fetching pack-files unnecessarily, but
    this at least avoids the re-fetching of tags over and over if you use a
    regular
    
    	git fetch --tags ...
    
    which was the main reason behind the change.
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Linus Torvalds committed with Junio C Hamano Oct 18, 2005
Commits on Oct 18, 2005
  1. GIT 0.99.8e

    Linus Torvalds:
          make checkout-index '-a' flag saner.
    
    Junio C Hamano:
          whatchanged: document -m option from git-diff-tree.
          Functions to quote and unquote pathnames in C-style.
          Update git-apply to use C-style quoting for funny pathnames.
          Do not quote SP.
          git-checkout-index: documentation updates.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 17, 2005
  2. Merge branch 'fixes'

    Junio C Hamano committed Oct 17, 2005
  3. git-checkout-index: documentation updates.

    Now the behaviour of '-a' has been straightened out, document it.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 17, 2005
  4. make checkout-index '-a' flag saner.

    The original semantics of pretending as if all files were
    specified where '-a' appeared and using only the flags given so
    far was too confusing.
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Linus Torvalds committed with Junio C Hamano Oct 17, 2005
Commits on Oct 17, 2005
  1. Do not quote SP.

    Follow the "encode minimally" principle -- our tools, including
    git-apply and git-status, can handle pathnames with embedded SP just
    fine.  The only problematic ones are TAB and LF, and we need to quote
    the metacharacters introduced for quoting.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 17, 2005
Commits on Oct 16, 2005
  1. Merge branch 'fixes'

    Junio C Hamano committed Oct 16, 2005
  2. Update git-apply to use C-style quoting for funny pathnames.

    This is a backport so that maintenance branch can understand
    diff output that uses C-style quoting produced by newer tools.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 16, 2005
  3. Functions to quote and unquote pathnames in C-style.

    Following the list discussion, define two functions, quote_c_style and
    unquote_c_style, to help adopting the proposed way for quoting funny
    pathname letters for GNU patch.  The rule is described in:
    
        http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
    
    Currently we do not support the leading '!', but we probably should
    barf upon seeing it.  Rule B4. is interpreted to require always 3
    octal digits in \XYZ notation.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 16, 2005
  4. whatchanged: document -m option from git-diff-tree.

    The documentation for git-whatchanged is meant to describe only
    the most frequently used options from git-diff-tree.  Because "why
    doesn't it show merges" was asked more than once, we'd better
    describe '-m' option there.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  5. GIT v0.99.8d

    Contains the following changes since v0.99.8c.
    
    Johannes Schindelin:
          Teach git-status about spaces in file names also on MacOSX
          t5400-send-pack relies on a working cpio
    
    Jonas Fonseca:
          git.sh: quote all paths
    
    Junio C Hamano:
          Also force LC_ALL in test scripts.
          OpenBSD needs the strcasestr replacement.
          git-check-ref-format: reject funny ref names.
          Refuse to create funny refs in clone-pack, git-fetch and receive-pack.
          Ignore funny refname sent from remote
          Introduce notation "ref^{type}".
    
    Martin Langhoff:
          cvsimport: don't pass --cvs-direct if user options contradict us
    
    Ralf Baechle:
          rsh.c: typo fix
    
    Note that "funny ref" bits are not strictly fixes but rather
    backport from the "master" branch.  They will prevent refs and
    heads with funny names from being created.  In addition, what is
    in the master branch will start feeding the clients unwrapped
    tag information to help Martin's findtags and possibly later
    Cogito.  These backported "funny ref" changes are to prevent
    clients on the "maint" branch from getting confused when talking
    with newer git-upload-pack and when reading from info/refs file
    prepared with newer git-update-server-info.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  6. Introduce notation "ref^{type}".

    Existing "tagname^0" notation means "dereference tag zero or more
    times until you cannot dereference it anymore, and make sure it is a
    commit -- otherwise barf".  But tags do not necessarily reference
    commit objects.
    
    This commit introduces a bit more generalized notation, "ref^{type}".
    Existing "ref^0" is a shorthand for "ref^{commit}".  If the type
    is empty, it just dereferences tags until it hits a non-tag object.
    
    With this, "git-rev-parse --verify 'junio-gpg-pub^{}'" shows the blob
    object name -- there is no need to manually read the tag object and
    find out the object name anymore.
    
    "git-rev-parse --verify 'HEAD^{tree}'" can be used to find out the
    tree object name of the HEAD commit.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  7. Ignore funny refname sent from remote

    This allows the remote side (most notably, upload-pack) to show
    additional information without affecting the downloader.  Peek-remote
    does not ignore them -- this is to make it useful for Pasky's
    automatic tag following.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  8. Refuse to create funny refs in clone-pack, git-fetch and receive-pack.

    Using git-check-ref-format, make sure we do not create refs with
    funny names when cloning from elsewhere (clone-pack), fast forwarding
    local heads (git-fetch), or somebody pushes into us (receive-pack).
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  9. git-check-ref-format: reject funny ref names.

    Update check_ref_format() function to reject ref names that:
    
     * has a path component that begins with a ".", or
     * has a double dots "..", or
     * has ASCII control character, "~", "^", ":" or SP, anywhere, or
     * ends with a "/".
    
    Use it in 'git-checkout -b', 'git-branch', and 'git-tag' to make sure
    that newly created refs are well-formed.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 15, 2005
  10. Revert "Adapt tutorial to cygwin and add test case"

    This reverts 2ae6c70 commit.
    Junio C Hamano committed Oct 15, 2005
  11. Revert "tutorial: update the initial commit example."

    This reverts 5990efb commit.
    Junio C Hamano committed Oct 15, 2005
Commits on Oct 15, 2005
  1. Merge branch 'fixes'

    Junio C Hamano committed Oct 15, 2005
Commits on Oct 13, 2005
  1. tutorial: update the initial commit example.

    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 13, 2005
  2. @dscho

    Adapt tutorial to cygwin and add test case

    Lacking reliable symlinks, the instructions in the tutorial did not work
    in a cygwin setup. Also, a few outputs were not correct.
    
    This patch fixes these, and adds a test case which follows the
    instructions of the tutorial (except git-clone, -fetch and -push, which I
    have not done yet).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    dscho committed with Junio C Hamano Oct 13, 2005
  3. @ralfbaechle

    rsh.c: typo fix

    Example in a comment used a wrong environment variable.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    ralfbaechle committed with Junio C Hamano Oct 13, 2005
Commits on Oct 12, 2005
  1. Merge branch 'fixes'

    Junio C Hamano committed Oct 11, 2005
  2. [PATCH] cvsimport: don't pass --cvs-direct if user options contradict us

    Detecting if the user passed --no-cvs-direct and don't force the mode.
    It allows us to support all the protocol that the standard cvs client
    supports at the snail speed you should expect.
    
    This only affects the rlog reading stage.
    
    Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
    Martin Langhoff committed with Junio C Hamano Oct 11, 2005
Commits on Oct 10, 2005
  1. Merge branch 'fixes'

    Junio C Hamano committed Oct 10, 2005
  2. @dscho

    t5400-send-pack relies on a working cpio

    Since cygwin does not install cpio by default, t5400 results in a very
    cryptic failure. So, test for cpio explicitely.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    dscho committed with Junio C Hamano Oct 10, 2005
  3. @jonas

    git.sh: quote all paths

    This makes it handle spaces in paths.
    
    Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    jonas committed with Junio C Hamano Oct 10, 2005
  4. @dscho

    Teach git-status about spaces in file names also on MacOSX

    Not all sed understands '\t' and consequently cuts off every
    file name at the first "t" (or backslash...).
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    dscho committed with Junio C Hamano Oct 10, 2005
  5. OpenBSD needs the strcasestr replacement.

    Noticed by Randal L. Schwartz.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 10, 2005
  6. Also force LC_ALL in test scripts.

    Noticed by Junichi Uekawa.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 9, 2005
  7. GIT 0.99.8c

    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Junio C Hamano committed Oct 9, 2005
Something went wrong with that request. Please try again.