1. 15 Jul, 2013 1 commit
  2. 10 Jul, 2013 1 commit
    • Add BARE option to git_repository_open_ext · 3fe046cf
      This adds a BARE option to git_repository_open_ext which allows
      a fast open path that still knows how to read gitlinks and to
      search for the actual .git directory from a subdirectory.
      
      `git_repository_open_bare` is still simpler and faster, but having
      a gitlink aware fast open is very useful for submodules where we
      want to quickly be able to peek at the HEAD and index data without
      doing any other meaningful repo operations.
      Russell Belfer committed
  3. 12 Jun, 2013 1 commit
  4. 10 Jun, 2013 2 commits
    • Reorganize diff and add basic diff driver · 114f5a6c
      This is a significant reorganization of the diff code to break it
      into a set of more clearly distinct files and to document the new
      organization.  Hopefully this will make the diff code easier to
      understand and to extend.
      
      This adds a new `git_diff_driver` object that looks of diff driver
      information from the attributes and the config so that things like
      function content in diff headers can be provided.  The full driver
      spec is not implemented in the commit - this is focused on the
      reorganization of the code and putting the driver hooks in place.
      
      This also removes a few #includes from src/repository.h that were
      overbroad, but as a result required extra #includes in a variety
      of places since including src/repository.h no longer results in
      pulling in the whole world.
      Russell Belfer committed
  5. 07 Jun, 2013 1 commit
  6. 31 May, 2013 1 commit
  7. 29 May, 2013 1 commit
  8. 24 May, 2013 1 commit
  9. 23 May, 2013 1 commit
  10. 15 May, 2013 1 commit
  11. 11 May, 2013 1 commit
    • refs: remove the OID/SYMBOLIC filtering · 2b562c3a
      Nobody should ever be using anything other than ALL at this level, so
      remove the option altogether.
      
      As part of this, git_reference_foreach_glob is now implemented in the
      frontend using an iterator. Backends will later regain the ability of
      doing the glob filtering in the backend.
      Carlos Martín Nieto committed
  12. 09 May, 2013 1 commit
    • Fix git_repository_message docs · 3d1c9f61
      This clarifies the docs for git_repository_message and also adds
      to the tests to explicitly check NUL termination of data when the
      output buffer is smaller than the message size.  There is a minor
      behavior change so that a non-NULL output buffer will always be
      NUL terminated (at length zero) if an error occurs.
      Russell Belfer committed
  13. 07 May, 2013 1 commit
    • repo: unconditionally create a global config backend · a4b75dcf
      When a repository is initialised, we need to probe to see if there is
      a global config to load. If this is not the case, the user isn't able
      to write to the global config without creating the backend and adding
      it themselves, which is inconvenient and overly complex.
      
      Unconditionally create and add a backend for the global config file
      regardless of whether it exists as a convenience for users.
      
      To enable this, we allow creating backends to files that do not exist
      yet, changing the semantics somewhat, and making some tests invalid.
      Carlos Martín Nieto committed
  14. 01 May, 2013 1 commit
  15. 30 Apr, 2013 1 commit
  16. 24 Apr, 2013 1 commit
  17. 22 Apr, 2013 3 commits
    • Add git__compare_and_swap and use it · e976b56d
      This removes the lock from the repository object and changes the
      internals to use the new atomic git__compare_and_swap to update
      the _odb, _config, _index, and _refdb variables in a threadsafe
      manner.
      Russell Belfer committed
    • Further threading fixes · 53607868
      This builds on the earlier thread safety work to make it so that
      setting the odb, index, refdb, or config for a repository is done
      in a threadsafe manner with minimized locking time.  This is done
      by adding a lock to the repository object and using it to guard
      the assignment of the above listed pointers.  The lock is only
      held to assign the pointer value.
      
      This also contains some minor fixes to the other work with pack
      files to reduce the time that locks are being held to and fix an
      apparently memory leak.
      Russell Belfer committed
    • lol this worked first try wtf · 5df18424
      Vicent Marti committed
  18. 21 Apr, 2013 2 commits
  19. 17 Apr, 2013 1 commit
  20. 07 Mar, 2013 1 commit
  21. 27 Feb, 2013 1 commit
    • Make mode handling during init more like git · 18f08264
      When creating files, instead of actually using GIT_FILEMODE_BLOB
      and the other various constants that happen to correspond to
      mode values, apparently I should be just using 0666 and 0777, and
      relying on the umask to clear bits and make the value sane.
      
      This fixes the rules for copying a template directory and fixes
      the checks to match that new behavior.  (Further changes to the
      checkout logic to follow separately.)
      Russell Belfer committed
  22. 26 Feb, 2013 3 commits
    • Fix portability issues on Windows · 0d1b094b
      The new tests were not taking core.filemode into account when
      testing file modes after repo initialization.  Fixed that and some
      other Windows warnings that have crept in.
      Russell Belfer committed
    • Fix initialization of repo directories · 3c42e4ef
      When PR #1359 removed the hooks from the test resources/template
      directory, it made me realize that the tests for
      git_repository_init_ext using templates must be pretty shabby
      because we could not have been testing if the hooks were getting
      created correctly.
      
      So, this started with me recreating a couple of hooks, including
      a sample and symlink, and adding tests that they got created
      correctly in the various circumstances, including with the SHARED
      modes, etc.  Unfortunately this uncovered some issues with how
      directories and symlinks were copied and chmod'ed.  Also, there
      was a FIXME in the code related to the chmod behavior as well.
      
      Going back over the directory creation logic for setting up a
      repository, I found it was a little difficult to read and could
      result in creating and/or chmod'ing directories that the user
      almost certainly didn't intend.
      
      So that let to this work which makes repo initialization much
      more careful (and hopefully easier to follow).  It required a
      couple of extensions / changes to core fileops utilities, but I
      also think those are for the better, at least for git_futils_cp_r
      in terms of being careful about what actions it takes.
      Russell Belfer committed
    • Increment reference counter in git_repository_set_config · 25e7c9b7
      This fixes #1365
      Sascha Cunz committed
  23. 13 Jan, 2013 1 commit
  24. 12 Jan, 2013 1 commit
  25. 08 Jan, 2013 1 commit
  26. 20 Dec, 2012 2 commits
  27. 01 Dec, 2012 1 commit
  28. 30 Nov, 2012 1 commit
  29. 27 Nov, 2012 3 commits
  30. 22 Nov, 2012 1 commit
  31. 20 Nov, 2012 1 commit