Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jul 19, 2010
  1. Ralf Thielow Junio C Hamano

    update-server-info: Shorten read_pack_info_file()

    ralfth authored gitster committed
    The correct responses to a D and a T line in .git/objects/info/packs
    are the same, so combine their case arms.  In both cases we already
    ‘goto’ out of the switch so while at it, remove a redundant ‘break’
    to avoid yet another line of code.
    
    Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
    Reviewed-by: Jonathan Nieder <jrnieder <at> gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 18, 2009
  1. Junio C Hamano

    Merge branch 'ar/unlink-err'

    gitster authored
    * ar/unlink-err:
      print unlink(2) errno in copy_or_link_directory
      replace direct calls to unlink(2) with unlink_or_warn
      Introduce an unlink(2) wrapper which gives warning if unlink failed
Commits on May 1, 2009
  1. Felipe Contreras Junio C Hamano

    Fix a bunch of pointer declarations (codestyle)

    felipec authored gitster committed
    Essentially; s/type* /type */ as per the coding guidelines.
    
    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 30, 2009
  1. Alex Riesen Junio C Hamano

    replace direct calls to unlink(2) with unlink_or_warn

    raalkml authored gitster committed
    This helps to notice when something's going wrong, especially on
    systems which lock open files.
    
    I used the following criteria when selecting the code for replacement:
    - it was already printing a warning for the unlink failures
    - it is in a function which already printing something or is
      called from such a function
    - it is in a static function, returning void and the function is only
      called from a builtin main function (cmd_)
    - it is in a function which handles emergency exit (signal handlers)
    - it is in a function which is obvously cleaning up the lockfiles
    
    Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Oct 31, 2008
  1. Alex Riesen Junio C Hamano

    Use git_pathdup instead of xstrdup(git_path(...))

    raalkml authored gitster committed
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 4, 2008
  1. meyering Junio C Hamano

    Don't access line[-1] for a zero-length "line" from fgets.

    meyering authored gitster committed
    A NUL byte at beginning of file, or just after a newline
    would provoke an invalid buf[-1] access in a few places.
    
    * builtin-grep.c (cmd_grep): Don't access buf[-1].
    * builtin-pack-objects.c (get_object_list): Likewise.
    * builtin-rev-list.c (read_revisions_from_stdin): Likewise.
    * bundle.c (read_bundle_header): Likewise.
    * server-info.c (read_pack_info_file): Likewise.
    * transport.c (insert_packed_refs): Likewise.
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 26, 2007
  1. andre-rosa Junio C Hamano

    Print the real filename that we failed to open.

    andre-rosa authored gitster committed
    When we fail to open a temporary file to be renamed to something else,
    we reported the final filename, not the temporary file we failed to
    open.
    
    Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 11, 2007
  1. dscho Junio C Hamano

    Fix core.sharedRepository = 2

    dscho authored gitster committed
    For compatibility reasons, "git init --shared=all" does not write
    "all" into the config, but a number.  In the shared setup, you
    really have to support even older clients on the _same_ repository.
    
    But git_config_perm() did not pick up on it.
    
    Also, "git update-server-info" failed to pick up on the shared
    permissions.
    
    This patch fixes both issues, and adds a test to prove it.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Tested-by: martin f krafft <madduck@madduck.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 31, 2007
  1. Shawn O. Pearce

    Don't coredump on bad refs in update-server-info.

    spearce authored Junio C Hamano committed
    Apparently if we are unable to parse an object update-server-info
    coredumps, as it doesn't bother to check the return value of its
    call to parse_object.
    
    Instead of coredumping, skip the ref.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 21, 2006
  1. Tell between packed, unpacked and symbolic refs.

    Junio C Hamano authored
    This adds a "int *flag" parameter to resolve_ref() and makes
    for_each_ref() family to call callback function with an extra
    "int flag" parameter.  They are used to give two bits of
    information (REF_ISSYMREF and REF_ISPACKED) about the ref.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. Add callback data to for_each_ref() family.

    Junio C Hamano authored
    This is a long overdue fix to the API for for_each_ref() family
    of functions.  It allows the callers to specify a callback data
    pointer, so that the caller does not have to use static
    variables to communicate with the callback funciton.
    
    The updated for_each_ref() family takes a function of type
    
    	int (*fn)(const char *, const unsigned char *, void *)
    
    and a void pointer as parameters, and calls the function with
    the name of the ref and its SHA-1 with the caller-supplied void
    pointer as parameters.
    
    The commit updates two callers, builtin-name-rev.c and
    builtin-pack-refs.c as an example.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 2, 2006
  1. Shawn O. Pearce

    Replace uses of strdup with xstrdup.

    spearce authored Junio C Hamano committed
    Like xmalloc and xrealloc xstrdup dies with a useful message if
    the native strdup() implementation returns NULL rather than a
    valid pointer.
    
    I just tried to use xstrdup in new code and found it to be missing.
    However I expected it to be present as xmalloc and xrealloc are
    already commonly used throughout the code.
    
    [jc: removed the part that deals with last_XXX, which I am
     finding more and more dubious these days.]
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jul 13, 2006
  1. Remove TYPE_* constant macros and use object_type enums consistently.

    Linus Torvalds authored Junio C Hamano committed
    This updates the type-enumeration constants introduced to reduce
    the memory footprint of "struct object" to match the type bits
    already used in the packfile format, by removing the former
    (i.e. TYPE_* constant macros) and using the latter (i.e. enum
    object_type) throughout the code for consistency.
    
    Eventually we can stop passing around the "type strings"
    entirely, and this will help - no confusion about two different
    integer enumeration.
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jul 9, 2006
  1. Pavel Roskin

    Assorted typo fixes

    proski authored Junio C Hamano committed
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jun 18, 2006
  1. Shrink "struct object" a bit

    Linus Torvalds authored Junio C Hamano committed
    This shrinks "struct object" by a small amount, by getting rid of the
    "struct type *" pointer and replacing it with a 3-bit bitfield instead.
    
    In addition, we merge the bitfields and the "flags" field, which
    incidentally should also remove a useless 4-byte padding from the object
    when in 64-bit mode.
    
    Now, our "struct object" is still too damn large, but it's now less
    obviously bloated, and of the remaining fields, only the "util" (which is
    not used by most things) is clearly something that should be eventually
    discarded.
    
    This shrinks the "git-rev-list --all" memory use by about 2.5% on the
    kernel archive (and, perhaps more importantly, on the larger mozilla
    archive). That may not sound like much, but I suspect it's more on a
    64-bit platform.
    
    There are other remaining inefficiencies (the parent lists, for example,
    probably have horrible malloc overhead), but this was pretty obvious.
    
    Most of the patch is just changing the comparison of the "type" pointer
    from one of the constant string pointers to the appropriate new TYPE_xxx
    small integer constant.
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Dec 21, 2005
  1. server-info: skip empty lines.

    Junio C Hamano authored
    Now we allow an empty line in objects/info/packs file, recognize
    that and stop complaining.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. objects/info/packs: work around bug in http-fetch.c::fetch_indices()

    Junio C Hamano authored
    The code to fetch pack index files in deployed clients have a
    bug that causes it to ignore the pack file on the last line of
    objects/info/packs file, so append an empty line to work it
    around.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Dec 9, 2005
  1. qsort(): ptrdiff_t may be larger than int

    Junio C Hamano authored
    This is a companion patch to e23eff8
    commit.  The same logic, the same rationale that a comparison
    function that returns an int should not just compute a ptrdiff_t
    and return it.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Dec 5, 2005
  1. server-info.c: and two functions are not used anymore.

    Junio C Hamano authored
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. server-info.c: use pack_local like everybody else.

    Junio C Hamano authored
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  3. server-info: throw away T computation as well.

    Junio C Hamano authored
    Again, dumb transport clients are too dumb to make use of the
    top objects information to make a choice among multiple packs,
    so computing these lines are useless for now.  We could
    resurrect them if needed later.  Also dumb transport clients
    presumably can do their own approximation by downloading idx
    files to see how relevant each pack is for their fetch.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  4. server-info: stop sorting packs by latest date.

    Junio C Hamano authored
    This does not seem to buy us much, for the same reason as the
    previous change.  Dumb clients are still too dumb.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  5. server-info.c: drop unused D lines.

    Junio C Hamano authored
    We tried to compute pack interdependency information in
    $GIT_DIR/objects/info/packs, hoping that dumb transports would
    make use of it when choosing from multiple choice, but that has
    never materialized, so stop computing D lines for now.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Nov 15, 2005
  1. Sergey Vlasov

    Rework object refs tracking to reduce memory usage

    sigprof authored Junio C Hamano committed
    Store pointers to referenced objects in a variable sized array instead
    of linked list.  This cuts down memory usage of utilities which use
    object references; e.g., git-fsck-objects --full on the git.git
    repository consumes about 2 MB of memory tracked by Massif instead of
    7 MB before the change.  Object refs are still the biggest consumer of
    memory (57%), but the malloc overhead for a single block instead of a
    linked list is substantially smaller.
    
    Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Nov 3, 2005
  1. Be careful when dereferencing tags.

    Junio C Hamano authored
    One caller of deref_tag() was not careful enough to make sure
    what deref_tag() returned was not NULL (i.e. we found a tag
    object that points at an object we do not have).  Fix it, and
    warn about refs that point at such an incomplete tag where
    needed.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Oct 15, 2005
  1. Show peeled onion from upload-pack and server-info.

    Junio C Hamano authored
    This updates git-ls-remote to show SHA1 names of objects that are
    referred by tags, in the "ref^{}" notation.
    
    This would make git-findtags (without -t flag) almost trivial.
    
        git-peek-remote . |
        sed -ne "s:^$target	"'refs/tags/\(.*\)^{}$:\1:p'
    
    Also Pasky could do:
    
        git-ls-remote --tags $remote |
        sed -ne 's:\(	refs/tags/.*\)^{}$:\1:p'
    
    to find out what object each of the remote tags refers to, and
    if he has one locally, run "git-fetch $remote tag $tagname" to
    automatically catch up with the upstream tags.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Oct 8, 2005
  1. Reduce memory usage in git-update-server-info.

    robfitz@273k.net authored Junio C Hamano committed
    Modify parse_object_cheap() to also free all the entries from the tree
    data structures.
    
    Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 15, 2005
  1. Unoptimize info/refs creation.

    Junio C Hamano authored
    The code did not catch the case where you removed an existing ref
    without changing anything else.  We are not talking about hundreds of
    refs anyway, so remove that optimization.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. Retire info/rev-cache

    Junio C Hamano authored
    It was one of those things that were well intentioned but did not turn
    out to be useful in practice.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Aug 29, 2005
  1. Revert "Replace zero-length array decls with []."

    Junio C Hamano authored
    This reverts 6c5f9ba commit, whose
    change breaks gcc-2.95.
    
    Not that I ignore portability to compilers that are properly C99, but
    keeping compilation with GCC working is more important, at least for
    now.  We would probably end up declaring with "name[1]" and teach the
    allocator to subtract one if we really aimed for portability, but that
    is left for later rounds.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Aug 24, 2005
  1. Replace zero-length array decls with [].

    Jason Riedy authored
    C99 denotes variable-sized members with [], not [0].
    
    Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
Commits on Aug 1, 2005
  1. [PATCH] Fix sparse warnings

    Linus Torvalds authored Junio C Hamano committed
    A few sparse warnings have crept in again since I checked last time:
    undeclared variables with global scope.
    
    Fix them by marking the private variables properly "static".
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jul 29, 2005
  1. server-info: do not complain if a tag points at a non-commit.

    Junio C Hamano authored
    Linux 2.6 tree has one of those tree tags.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jul 24, 2005
  1. [PATCH] Add update-server-info.

    Junio C Hamano authored Linus Torvalds committed
    The git-update-server-info command prepares informational files
    to help clients discover the contents of a repository, and pull
    from it via a dumb transport protocols.  Currently, the
    following files are produced.
    
     - The $repo/info/refs file lists the name of heads and tags
       available in the $repo/refs/ directory, along with their
       SHA1.  This can be used by git-ls-remote command running on
       the client side.
    
     - The $repo/info/rev-cache file describes the commit ancestry
       reachable from references in the $repo/refs/ directory.  This
       file is in an append-only binary format to make the server
       side friendly to rsync mirroring scheme, and can be read by
       git-show-rev-cache command.
    
     - The $repo/objects/info/pack file lists the name of the packs
       available, the interdependencies among them, and the head
       commits and tags contained in them.  Along with the other two
       files, this is designed to help clients to make smart pull
       decisions.
    
    The git-receive-pack command is changed to invoke it at the end,
    so just after a push to a public repository finishes via "git
    push", the server info is automatically updated.
    
    In addition, building of the rev-cache file can be done by a
    standalone git-build-rev-cache command separately.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Something went wrong with that request. Please try again.