1. 30 Jun, 2015 1 commit
  2. 17 Jun, 2015 1 commit
  3. 16 Jun, 2015 2 commits
    • Introduce p_utimes and p_futimes · 121c3171
      Provide functionality to set the time on a filesystem entry,
      using utimes or futimes on POSIX type systems or SetFileTime
      on Win32.
      Edward Thomson committed
    • crlf: tick the index forward to work around racy-git behaviour · c4e6ab5f
      In order to avoid racy-git, we zero out the file size for entries with
      the same timestamp as the index (or during the initial checkout). This
      is the case in a couple of crlf tests, as the code is fast enough to do
      everything in the same second.
      
      As we know that we do not perform the modification just after writing
      out the index, which is what this is designed to work around, tick the
      mtime of the index file such that it doesn't agree with the files
      anymore, and we do not zero out these entries.
      Carlos Martín Nieto committed
  4. 01 May, 2015 1 commit
  5. 05 Aug, 2014 3 commits
  6. 13 Jul, 2014 1 commit
  7. 20 Apr, 2014 1 commit
  8. 21 Apr, 2013 1 commit
  9. 09 Mar, 2013 1 commit
    • Make tree iterator handle icase equivalence · e40f1c2d
      There is a serious bug in the previous tree iterator implementation.
      If case insensitivity resulted in member elements being equivalent
      to one another, and those member elements were trees, then the
      children of the colliding elements would be processed in sequence
      instead of in a single flattened list.  This meant that the tree
      iterator was not truly acting like a case-insensitive list.
      
      This completely reworks the tree iterator to manage lists with
      case insensitive equivalence classes and advance through the items
      in a unified manner in a single sorted frame.
      
      It is possible that at a future date we might want to update this
      to separate the case insensitive and case sensitive tree iterators
      so that the case sensitive one could be a minimal amount of code
      and the insensitive one would always know what it needed to do
      without checking flags.
      
      But there would be so much shared code between the two, that I'm
      not sure it that's a win.  For now, this gets what we need.
      
      More tests are needed, though.
      Russell Belfer committed
  10. 29 Jan, 2013 1 commit
  11. 08 Jan, 2013 1 commit
  12. 15 Nov, 2012 1 commit
    • Add POSIX compat lstat() variant for win32 · cccacac5
      The existing p_lstat implementation on win32 is not quite POSIX
      compliant when setting errno to ENOTDIR.  This adds an option to
      make is be compliant so that code (such as checkout) that cares
      to have separate behavior for ENOTDIR can use it portably.
      
      This also contains a couple of other minor cleanups in the
      posix_w32.c implementations to avoid unnecessary work.
      Russell Belfer committed
  13. 07 Nov, 2012 1 commit
  14. 15 Oct, 2012 1 commit
  15. 22 Aug, 2012 2 commits
    • Some cleanup suggested during review · 85bd1746
      This cleans up a number of items suggested during code review
      with @vmg, including:
      
      * renaming "outside repo" config API to `git_config_open_default`
      * killing the `git_config_open_global` API
      * removing the `git_` prefix from the static functions in fileops
      * removing some unnecessary functionality from the "cp" command
      Russell Belfer committed
    • Add template dir and set gid to repo init · ca1b6e54
      This extends git_repository_init_ext further with support for
      initializing the repository from an external template directory
      and with support for the "create shared" type flags that make a
      set GID repository directory.
      
      This also adds tests for much of the new functionality to the
      existing `repo/init.c` test suite.
      
      Also, this adds a bunch of new utility functions including a
      very general purpose `git_futils_mkdir` (with the ability to
      make paths and to chmod the paths post-creation) and a file
      tree copying function `git_futils_cp_r`.  Also, this includes
      some new path functions that were useful to keep the code
      simple.
      Russell Belfer committed
  16. 16 Jul, 2012 1 commit
  17. 07 Jun, 2012 1 commit
  18. 12 May, 2012 1 commit
    • Fix readdir_r() usage for Solaris · 6fb1c0b4
      On Solaris, struct dirent is defined differently than Linux. The field
      containing the path name is of size 0, rather than NAME_MAX. So, we need to
      use a properly sized buffer on Solaris to avoid a stack overflow.
      
      Also fix some DIR* leaks on cleanup.
      Scott J. Goldman committed
  19. 10 May, 2012 1 commit
  20. 02 Mar, 2012 1 commit
    • Update diff to use iterators · 74fa4bfa
      This is a major reorganization of the diff code.  This changes
      the diff functions to use the iterators for traversing the
      content.  This allowed a lot of code to be simplified.  Also,
      this moved the functions relating to outputting a diff into a
      new file (diff_output.c).
      
      This includes a number of other changes - adding utility
      functions, extending iterators, etc. plus more tests for the
      diff code.  This also takes the example diff.c program much
      further in terms of emulating git-diff command line options.
      Russell Belfer committed
  21. 23 Feb, 2012 1 commit
  22. 13 Feb, 2012 1 commit
  23. 19 Sep, 2011 1 commit
  24. 18 Sep, 2011 1 commit
    • Cleanup legal data · bb742ede
      1. The license header is technically not valid if it doesn't have a
      copyright signature.
      
      2. The COPYING file has been updated with the different licenses used in
      the project.
      
      3. The full GPLv2 header in each file annoys me.
      Vicent Marti committed
  25. 30 Aug, 2011 1 commit
  26. 18 Aug, 2011 1 commit
  27. 17 Aug, 2011 1 commit
  28. 09 Jul, 2011 1 commit
    • posix: Portable `vsnprintf` · 2fc78e70
      Our good, lovely folks at Microsoft decided that there was no good
      reason to make `vsnprintf` compilant with the C standard, so that
      function in Windows returns -1 on overflow, instead of returning the
      actual byte count needed to write the full string.
      
      We now handle this situation more gracefully with the POSIX
      compatibility layer, by returning the needed byte size using an
      auxiliary method instead of blindly resizing the target buffer until it
      fits.
      
      This means we can now support `printf`s of any size by allocating a
      temporary buffer. That's good.
      Vicent Marti committed
  29. 05 Jul, 2011 3 commits
    • fileops: Drop `git_fileops_prettify_path` · 5ad739e8
      The old `git_fileops_prettify_path` has been replaced with
      `git_path_prettify`. This is a much simpler method that uses the OS's
      `realpath` call to obtain the full path for directories and resolve
      symlinks.
      
      The `realpath` syscall is the original POSIX call in Unix system and
      an emulated version under Windows using the Windows API.
      Vicent Marti committed
    • fileops: Cleanup · f79026b4
      Cleaned up the structure of the whole OS-abstraction layer.
      
      fileops.c now contains a set of utility methods for file management used
      by the library. These are abstractions on top of the original POSIX
      calls.
      
      There's a new file called `posix.c` that contains
      emulations/reimplementations of all the POSIX calls the library uses.
      These are prefixed with `p_`. There's a specific posix file for each
      platform (win32 and unix).
      
      All the path-related methods have been moved from `utils.c` to `path.c`
      and have their own prefix.
      Vicent Marti committed