Permalink
Commits on Jun 18, 2008
  1. GIT 1.5.6

    gitster committed Jun 18, 2008
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. clean up error conventions of remote.c:match_explicit

    peff committed with gitster Jun 16, 2008
    match_explicit is called for each push refspec to try to
    fully resolve the source and destination sides of the
    refspec.  Currently, we look at each refspec and report
    errors on both the source and the dest side before aborting.
    
    It makes sense to report errors for each refspec, since an
    error in one is independent of an error in the other.
    However, reporting errors on the 'dst' side of a refspec if
    there has been an error on the 'src' side does not
    necessarily make sense, since the interpretation of the
    'dst' side depends on the 'src' side (for example, when
    creating a new unqualified remote ref, we use the same type
    as the src ref).
    
    This patch lets match_explicit return early when the src
    side of the refspec is bogus. We still look at all of the
    refspecs before aborting the push, though.
    
    At the same time, we clean up the call signature, which
    previously took an extra "errs" flag. This was pointless, as
    we didn't act on that flag, but rather just passed it back
    to the caller. Instead, we now use the more traditional
    "return -1" to signal an error, and the caller aggregates
    the error count.
    
    This change fixes two bugs, as well:
    
      - the early return avoids a segfault when passing a NULL
        matched_src to guess_ref()
    
      - the check for multiple sources pointing to a single dest
        aborted if the "err" flag was set. Presumably the intent
        was not to bother with the check if we had no
        matched_src. However, since the err flag was passed in
        from the caller, we might abort the check just because a
        previous refspec had a problem, which doesn't make
        sense.
    
        In practice, this didn't matter, since due to the error
        flag we end up aborting the push anyway.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 17, 2008
  1. Fix approxidate("never") to always return 0

    Olivier Marin committed with gitster Jun 17, 2008
    Commit af66366 introduced the keyword
    "never" to be used with approxidate() but defined it with a fixed date
    without taking care of timezone. As a result approxidate() will return
    a timestamp in the future with a negative timezone.
    
    With this patch, approxidate("never") always return 0 whatever your
    timezone is.
    
    Signed-off-by: Olivier Marin <dkr@freesurf.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. git-am: head -1 is obsolete and doesn't work on some new systems

    amery committed with gitster Jun 17, 2008
    head -<n> was deprecated by POSIX, and as modern versions of coreutils
    package don't support it at least one exports _POSIX2_VERSION=199209
    it's fails on some systems.
    
    head -n<n> is portable, but sed <n>q is even more.
    
    Signed-off-by: Alejandro Mery <amery@geeks.cl>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. builtin-rerere: fix a small leak

    Junio C Hamano committed with gitster Jun 17, 2008
    The data read from MERGE_RR file is kept in path-list by hanging textual
    40-byte conflict signature to path of the blob that contains the
    conflict.  The signature is strdup'ed twice, and the second copy is given
    to the path-list, leaking the first copy.
    
    Signed-off-by: Junio C Hamano <junio@pobox.com>
    Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
  4. gitweb: remove unused parse_ref method

    Lea Wiemann committed with gitster Jun 17, 2008
    The parse_ref method became unused in cd14640, but the author
    decided to leave it in.  Now it gets in the way of refactoring, so
    let's remove it.
    
    Signed-off-by: Lea Wiemann <LeWiemann@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. gitweb: quote commands properly when calling the shell

    Lea Wiemann committed with gitster Jun 17, 2008
    This eliminates the function git_cmd_str, which was used for composing
    command lines, and adds a quote_command function, which quotes all of
    its arguments (as in quote.c).
    
    Signed-off-by: Lea Wiemann <LeWiemann@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. sha1_file.c: simplify parse_pack_index()

    gitster committed Jun 17, 2008
    It was implemented as a thin wrapper around an otherwise unused
    helper function parse_pack_index_file().  The code becomes simpler
    and easier to read by consolidating the two.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. create_tempfile: make sure that leading directories can be accessible…

    gitster committed Jun 17, 2008
    … by peers
    
    In a shared repository, we should make sure adjust_shared_perm() is called
    after creating the initial fan-out directories under objects/ directory.
    
    Earlier an logico called the function only when mkdir() failed; we should
    do so when mkdir() succeeded.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  8. write_loose_object: don't bother trying to read an old object

    torvalds committed with gitster Jun 17, 2008
    Before even calling this, all callers have done a "has_sha1_file(sha1)"
    or "has_loose_object(sha1)" check, so there is no point in doing a
    second check.
    
    If something races with us on object creation, we handle that in the
    final link() that moves it to the right place.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  9. path-list documentation: document all functions and data structures

    Miklos Vajna committed with gitster Jun 15, 2008
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  10. run-command documentation: fix "memset()" parameter

    Miklos Vajna committed with gitster Jun 14, 2008
    When initializing the struct async and struct child_process structures,
    the documentation suggested "clearing" the structure with '0' instead of
    '\0'.  It is enough to use integer zero here.
    
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  11. Merge branch 'maint'

    gitster committed Jun 17, 2008
    * maint:
      diff.c: fix emit_line() again not to add extra line
  12. diff.c: fix emit_line() again not to add extra line

    gitster committed Jun 17, 2008
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 16, 2008
  1. Merge branch 'maint'

    gitster committed Jun 16, 2008
    * maint:
      diff: reset color before printing newline
  2. diff: reset color before printing newline

    szeder committed with gitster Jun 16, 2008
    It worked that way since commit 50f575f (Tweak diff colors,
    2006-06-22), but commit c1795bb (Unify whitespace checking, 2007-12-13)
    changed it.  This patch restores the old behaviour.
    
    Besides Linus' arguments in the log message of 50f575f, resetting color
    before printing newline is also important to keep 'git add --patch'
    happy.  If the last line(s) of a file are removed, then that hunk will
    end with a colored line.  However, if the newline comes before the color
    reset, then the diff output will have an additional line at the end
    containing only the reset sequence.  This causes trouble in
    git-add--interactive.perl's parse_diff function, because @colored will
    have one more element than @diff, and that last element will contain the
    color reset.  The elements of these arrays will then be copied to @hunk,
    but only as many as the number of elements in @diff.  As a result the
    last color reset is lost and all subsequent terminal output will be
    printed in color.
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 15, 2008
  1. Make git reflog expire honour core.sharedRepository.

    MadCoder committed with gitster Jun 15, 2008
    Signed-off-by: Pierre Habouzit <madcoder@debian.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. Update RPM spec to drop curl executable requirement

    gitster committed Jun 15, 2008
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. The "curl" executable is no longer required

    jherland committed with gitster Jun 15, 2008
    git-clone.sh was the last user of the "curl" executable. Relevant git
    commands now use libcurl instead. This should be reflected in the
    install requirements.
    
    Signed-off-by: Johan Herland <johan@herland.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. Makefile: update check-docs target

    gitster committed Jun 15, 2008
    Earlier series to rename documentation pages around did not update this
    target and left check-docs broken.  This should fix it.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. Consistency: Use "libcurl" instead of "cURL library" and "curl"

    jherland committed with gitster Jun 15, 2008
    Signed-off-by: Johan Herland <johan@herland.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. cpio is no longer used by git-clone

    jherland committed with gitster Jun 15, 2008
    Signed-off-by: Johan Herland <johan@herland.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. Documentation: RelNotes-1.5.6: talk about renamed HTML files

    chriscool committed with gitster Jun 15, 2008
    Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jun 14, 2008
  1. GIT 1.5.6-rc3

    gitster committed Jun 14, 2008
    Just a lot of small fixes, mostly documentation.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. Simplify and rename find_sha1_file()

    torvalds committed with gitster Jun 14, 2008
    Now that we've made the loose SHA1 file reading more careful and
    streamlined, we only use the old find_sha1_file() function for checking
    whether a loose object file exists at all.
    
    As such, the whole 'return stat information' part of it was just
    pointless (nobody cares any more), and the naming of the function is not
    really all that relevant either.
    
    So simplify it to not do a 'stat()', but just an existence check (which
    is what the callers want), and rename it to 'has_loose_object()' which
    matches the use.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. Make loose object file reading more careful

    torvalds committed with gitster Jun 14, 2008
    We used to do 'stat()+open()+mmap()+close()' to read the loose object
    file data, which does work fine, but has a couple of problems:
    
     - it unnecessarily walks the filename twice (at 'stat()' time and then
       again to open it)
    
     - NFS generally has open-close consistency guarantees, which means that
       the initial 'stat()' was technically done outside of the normal
       consistency rules.
    
    So change it to do 'open()+fstat()+mmap()+close()' instead, which avoids
    both these issues.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. Avoid cross-directory renames and linking on object creation

    torvalds committed with gitster Jun 14, 2008
    Instead of creating new temporary objects in the top-level git object
    directory, create them in the same directory they will finally end up in
    anyway.  This avoids making the final atomic "rename to stable name"
    operation be a cross-directory event, which makes it a lot easier for
    various filesystems.
    
    Several filesystems do things like change the inode number when moving
    files across directories (or refuse to do it entirely).
    
    In particular, it can also cause problems for NFS implementations that
    change the filehandle of a file when it moves to a different directory,
    like the old user-space NFS server did, and like the Linux knfsd still
    does if you don't export your filesystems with 'no_subtree_check' or if
    you export a filesystem that doesn't have stable inode numbers across
    renames).
    
    This change also obviously implies creating the object fan-out
    subdirectory at tempfile creation time, rather than at the final
    move_temp_to_file() time.  Which actually accounts for most of the size
    of the patch.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. Use 'trash directory' thoroughly in t/test-lib.sh

    jnareb committed with gitster Jun 14, 2008
    ...also in comments.
    
    Signed-off-by: Jakub Narebski <jnareb@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. Don't allocate too much memory in quote_ref_url

    glandium committed with gitster Jun 14, 2008
    In c13b263, http_fetch_ref got "refs/" included in the ref passed to it,
    which, incidentally, makes the allocation in quote_ref_url too big, now.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. gitweb: Make it work with $GIT containing spaces

    jnareb committed with gitster Jun 14, 2008
    This fixes single point where $GIT (which can contain full path
    to git binary) with embedded spaces gave errors.
    
    Signed-off-by: Jakub Narebski <jnareb@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  8. completion: add more 'git add' options

    szeder committed with gitster Jun 14, 2008
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  9. git add: add long equivalents of '-u' and '-f' options

    szeder committed with gitster Jun 14, 2008
    The option -u stands for --update and it is a good idea to make it clear
    especially because this is the only mode of operation of "git add" that
    does something different from "adding".  Give longer --force synonym to -f
    while we are at it as well.
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  10. Merge branch 'rs/attr'

    gitster committed Jun 14, 2008
    * rs/attr:
      Ignore .gitattributes in bare repositories
  11. git-svn: test that extra blank lines aren't inserted in commit messages.

    apenwarr committed with gitster Jun 12, 2008
    Improve the git-svn-author test to check that extra newlines aren't inserted
    into commit messages as they take a round trip from git to svn and back.
    
    We test both with and without the --add-author-from option to git-svn.
    
    git-svn: test that svn repo doesn't have extra newlines.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  12. git-svn: don't append extra newlines at the end of commit messages.

    apenwarr committed with gitster Jun 12, 2008
    In git, all commits end in exactly one newline character.  In svn, commits
    end in zero or more newlines.  Thus, when importing commits from svn into
    git, git-svn always appends two extra newlines to ensure that the
    git-svn-id: line is separated from the main commit message by at least one
    blank line.
    
    Combined with the terminating newline that's always present in svn commits
    produced by git, you usually end up with two blank lines instead of one
    between the commit message and git-svn-id: line, which is undesirable.
    
    Instead, let's remove all trailing whitespace from the git commit on the way
    through to svn.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    Acked-by: Eric Wong <normalperson@yhbt.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>