1. 02 Dec, 2008 12 commits
    • Use cgcc in the sparse target · 80133dad
      cgcc is the recommended way to run sparse, since it provides
      many -Defines suitable to the given gcc platform. For example,
      on some Ubuntu/glibc versions, a plain sparse invocation gives
      the following warning:
      
          "warning: This machine appears to be neither x86_64 nor i386."
      
      Using "cgcc -no-compile" instead eliminates this warning.
      
      Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
      Acked-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Ramsay Jones committed
    • Fixup documentation to reflect the "git_obj" rename · 43288a07
      commit dff79e27 renamed
      the (small object) "git_sobj" to a plain "git_obj", but
      neglected to update some of the documentation to reflect
      that change.
      
      Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Ramsay Jones committed
    • Add a dirent walker to the fileops API · ea790f33
      Since at least MS have something like GetFirstDirEnt() and
      GetNextDirEnt() (presumably with superior performance), we
      can let MS hackers add support for a dirent walker using
      that API instead, while we stick with the posix-style
      readdir() calls.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add an io caching layer to the gitfo api · 4188d28f
      The idea is taken from Junio's work in read-cache.c, where
      it's used for writing out the index without tap-dancing on
      the poor harddrive. Since it's almost certainly useful for
      cached writing of packfiles too, we turn it into a generic
      API, making it perfectly simple to reuse it later.
      
      gitfo_write_cached() has the same contract as gitfo_write(), it
      returns GIT_SUCCESS if all bytes are successfully written (or were
      at least buffered for later writing), and <0 if an error occurs
      during buffer writing.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Remove config.h and make fileops an internal API · ec250c6e
      Since it doesn't make sense to make the disk access stuff
      portable *AND* public (that's a job for each application
      imo), we can take a shortcut and just support unixy stuff
      for now and get away with coding most of it as macros.
      
      Since we go with an internal API for starters and only
      provide higher-level API's to the libgit users, we'll be
      ok with this approach.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • doxygen config: Update path to public headers · 42c07750
      In d4043ee9, public headers
      were moved from include/git to src/git, but the doxygen
      configuration wasn't updated to reflect this. This patch
      amends that slippage, making documentation generation once
      again work as intended.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add a new author state "ign" to git.git-authors · 634a64b1
      This is to be used for application code that currently
      resides in git, but only for authors whose only not
      insignificant contributions are for that code (such as
      "imap-send").
      
      Presently, this is used for Mike McCormack and Robert
      Shearman.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add Kristian Høgsberg to the list of consenting authors · 9e300586
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add Adam Simpkins as ??? to git.git-authors · 0cfd861b
      Adam has made significant contributions to the http
      transport code, but his listed email address is no longer
      valid.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add René Scharfe to git.git-authors · 6e9ac9c8
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add Matthieu Moy and Steffen Prohaska to git.git-authors · f2b93d41
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add Sven Verdoolaege to git.git-authors · cc7301d8
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
  2. 22 Nov, 2008 12 commits
    • Make using CFLAGS a bit simpler · ab3f234e
      This patch introduces the $(ALL_CFLAGS) variable, which holds
      $(BASIC_CFLAGS) as well as userdefined $(CFLAGS) and then
      consistently uses that variable where both were used anyway.
      
      Since we're in the area, we optimize the sparse running a
      bit, getting rid of the shell and just letting sparse iterate
      over the files.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add $(CONFIG_H) as a build-dependency for sparse · 6013ffa6
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Make src/git/config.h a macro in Makefile · 21648b45
      This makes it far more convenient to reference as a dependency
      for other targets.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Remove license top-comment from public header files · c6ebb4a9
      Since it's being added when we install the headers anyway,
      we might as well get rid of it. If anything, we should point
      coders to the COPYING file in the project's root directory
      instead of duplicating the same (large-ish) text everywhere.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add an embryo of a TLS-aware error handling system · ae234862
      This adds the per-thread global variable git_errno to the
      system, which callers can examine to get information about
      an error.
      
      Two helper functions are added to reduce LoC-count for the
      library code itself.
      
      Also, some exceptions are made for running sparse on GIT_TLS
      definitions, since it doesn't grok thread-local variables at
      all.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add util.h - utility macros · 3a2aabdc
      ARRAY_SIZE() et al go in util.h, included from common.h
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add internal common.h file · 76a8c447
      This one pulls in compiler compatibility macros, some
      common header files, and also the public common.h header.
      
      C source files are modified to use the private common.h
      in favour of the public one.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add cc-compat.h - C compiler compat macros for internal use · f501265f
      Holds things such as FLEX_ARRAY and whatnot.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Rename git_revpool_* functions gitrp_* · c215be41
      Otherwise their prototypes don't match their declarations.
      
      Detected by 'sparse', which is obviously good to run
      before each commit.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add a 'sparse' make target · 3e1d42b7
      Given the confusion on git@vger, we'd better not name
      this target "check" or (worse) "test", but it's still
      useful to have. As "sparse", noone should have problems
      understanding what it does.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • s/COPYING/.HEADER/ for install-headers target · ff7c7576
      We don't want to prepend the entire license; Only the
      file header part of it.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Get rid of GIT__PRIVATE macro · 4f0adcd0
      Using it in the first place means something's wrong.
      This patch replaces it with an internal header which
      carries the previously "protected" code instead.
      
      Internal source-files simply include "commit.h" and
      they're done. The internal header includes the public
      one to make sure we always use the proper prototype.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
  3. 18 Nov, 2008 7 commits
    • Add compiler/platform agnostic thread-local storage · 36f0f61f
      It doesn't cover all cases, but we can work on those as
      we go along. For now, gcc, MSVC++, Intel C/C++, IBM XL C/C++,
      Sun Studio C/C++ and Borland C++ Builder are the supported
      compilers (although we boldly assume that they all are of
      a recent enough version to support thread-local storage).
      
      This is intended to be used in upcoming patches that implement
      graceful (but TLS-dependant) error-handling in the library.
      
      As an added bonus, we also bring the online_cpus() function
      from git.git to detect the number of usable cpu's.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Add a fake and phony install-headers target · a57e9a8c
      It actually does what it's supposed to (more or less),
      but not very portably and not to the correct directory.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Move public headers to src/git · d4043ee9
      It's arguably smoother to keep them close to the source,
      as that's where one's working when modifying them. More
      importantly, though, is the ability to use private headers
      in the src/ dir that simply include "git/$samename.h" to
      get to the public API at the same time.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • s/git_revp/git_revpool/ · 1b9e92c7
      git_revp is something I personally can't stop pronouncing
      "rev pointer". I'm sure others would suffer the same
      problem.
      
      Also, rename the git_revp_ sub-api "gitrp_". This is the
      first of many such renames, primarily done to prevent
      extreme inflation in the "git_" namespace, which we'd like
      to reserve for a higher-level API.
      
      While we're at it, we remove the noise-char "c" from a lot
      of functions. Since revision walking is all about commits,
      the common case should be that we're dealing with commits.
      Exceptions can get a more mnemonic description as needed.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Rename "git_sobj" "git_obj" · dff79e27
      The 's' never really made sense, since it's not a "small"
      object at all, but rather a plain object. As such, it should
      have a "plain" object name.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • Use same-directory include for public headers · 257bd746
      It doesn't make sense to use "git/somefile.h" in the
      public git headers, as it's quite likely that projects
      using them will have a git directory themselves. This
      alters it, making the public headers look for headers
      in the same directory they themselves are in.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
    • List git.git authors consenting to relicense their code · eb160e94
      Since re-using code from git.git proper is the quick way
      forward, we need to list those who have given their consent
      to do just that. The relicense permission is only valid for
      use with libgit2, and only for GPLv2 + gcc-exception (as
      specified by 'COPYING'.
      
      Signed-off-by: Andreas Ericsson <ae@op5.se>
      Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
      Andreas Ericsson committed
  4. 04 Nov, 2008 9 commits