Commit Graph
7701 Commits
Author SHA1 Message Date
Edward Thomson d4b1b76701 checkout: cache system attributes file location 2015-02-04 14:15:12 +00:00
Edward Thomson 9f779aacdd attrcache: don't re-read attrs during checkout
During checkout, assume that the .gitattributes files aren't
modified during the checkout.  Instead, create an "attribute session"
during checkout.  Assume that attribute data read in the same
checkout "session" hasn't been modified since the checkout started.
(But allow subsequent checkouts to invalidate the cache.)

Further, cache nonexistent git_attr_file data even when .gitattributes
files are not found to prevent re-scanning for nonexistent files.
2015-02-03 00:31:08 -05:00
Edward Thomson 60561d5446 tests: update for new test data 2015-02-02 22:46:43 -05:00
Edward Thomson 2fbce0bfac checkout test: ensure .gitattributes lifecycle
The .gitattributes cache should not reload .gitattributes in the
middle of checking out, only between checkout operations.  Otherwise,
we'll spend all our time stat'ing and read'ing the gitattributes.
2015-02-02 22:46:39 -05:00
Edward Thomson 1ac5acdc69 Merge pull request #2819 from libgit2/cmn/config-get-path
config: add parsing and getter for paths
2015-01-26 11:28:59 -06:00
Edward Thomson 2724219918 Merge pull request #2837 from swisspol/set_index
Allow passing a NULL index to git_repository_set_index()
2015-01-26 11:27:09 -06:00
Edward Thomson f483720c6f Merge pull request #2839 from swisspol/typo
Fixed typo in git_repository_reinit_filesystem() documentation
2015-01-26 11:25:16 -06:00
Edward Thomson ff80b5e80b Merge pull request #2847 from jacquesg/coverity
More coverity fixes
2015-01-26 11:24:47 -06:00
Edward Thomson 9a09ed13c4 Merge pull request #2840 from swisspol/sys_repository_include
Make sure sys/repository.h includes the required headers
2015-01-26 11:21:04 -06:00
Edward Thomson 9f1ee63d8f Merge pull request #2841 from swisspol/set_bare
Fixed git_repository_set_bare() not setting "core.bare" correctly
2015-01-26 11:20:00 -06:00
Edward Thomson 65bc22fa50 Merge pull request #2844 from rakuco/netinet-include-fixes
openssl: Add all required includes for AF_INET6 and in6_addr.
2015-01-26 11:18:17 -06:00
Edward Thomson 645073b770 Merge pull request #2848 from JIghtuse/describe_mem_fix
describe example: fix memory allocation size
2015-01-26 10:56:40 -06:00
Carlos Martín Nieto f101a7d4ff Merge pull request #2846 from JIghtuse/master
pathspec: do not try to dereference NULL
2015-01-26 17:29:15 +01:00
Boris Egorov 36e13399c0 describe example: fix memory allocation size
We need to allocate memory for sizeof(char *) * ncommits, not just for
ncommits.

Issue detected by GCC's AddressSanitizer.
2015-01-25 22:34:46 +06:00
Jacques Germishuys bb6aafe88f Ensure the diff hunk callback is specified before trying to dereference it 2015-01-25 14:40:23 +02:00
Jacques Germishuys 636af2198e Return early if allocating a git_pathspec_match_list failed 2015-01-25 14:38:10 +02:00
Jacques Germishuys b63b3b0e4d Ensure git_index_entry is not NULL before trying to free it 2015-01-25 14:08:05 +02:00
Boris Egorov dc5fe00c65 pathspec: do not try to dereference NULL
pathspec_match_free() should not dereference a NULL passed to it.

I found this issue when I tried to run example log program with
nonexistent branch:

./example/log help

Such call leads to segmentation fault.
2015-01-25 01:40:44 +06:00
Raphael Kubo da Costa 3cda6be76b openssl: Add all required includes for AF_INET6 and in6_addr.
This fixes the build at least on FreeBSD, where those types were not
defined indirectly:

src/openssl_stream.c:100:18: error: variable has incomplete type 'struct in6_addr'
        struct in6_addr addr6;
                        ^
src/openssl_stream.c:100:9: note: forward declaration of 'struct in6_addr'
        struct in6_addr addr6;
               ^
src/openssl_stream.c:111:18: error: use of undeclared identifier 'AF_INET'
        if (p_inet_pton(AF_INET, host, &addr4)) {
                        ^
src/unix/posix.h:31:40: note: expanded from macro 'p_inet_pton'
                                       ^
src/openssl_stream.c:115:18: error: use of undeclared identifier 'AF_INET6'
                if(p_inet_pton(AF_INET6, host, &addr6)) {
                               ^
src/unix/posix.h:31:40: note: expanded from macro 'p_inet_pton'
                                       ^
2015-01-24 16:19:43 +02:00
Pierre-Olivier Latour b2a7bcdb54 Fixed git_repository_set_bare() not setting "core.bare" correctly 2015-01-23 20:57:13 -08:00
Pierre-Olivier Latour 86815dca20 Make sure sys/repository.h includes the required headers
It was missing "common.h" and "types.h" like other system headers.
This generated compilation errors if including it directly.
2015-01-23 16:04:23 -08:00
Pierre-Olivier Latour 22b6a92365 Fixed typo in git_repository_reinit_filesystem() documentation 2015-01-23 15:59:54 -08:00
Pierre-Olivier Latour fa8ca519cc Allow passing a NULL index to git_repository_set_index()
This is supported by the underlying set_index() implementation
and setting the repository index to NULL is recommended by the
git_repository_set_bare() documentation.
2015-01-23 15:35:29 -08:00
Edward Thomson 73c5db7663 Merge pull request #2834 from ethomson/memleak
checkout: free last created directory
2015-01-22 19:00:16 -06:00
Edward Thomson 1188803922 checkout: free last created directory 2015-01-23 00:19:11 +00:00
Edward Thomson a789b36100 Merge pull request #2829 from jacquesg/dead-code
Remove logically dead code (we're already asserting)
2015-01-21 09:20:54 -06:00
Edward Thomson 68302ed20f Merge pull request #2823 from ethomson/appveyor_badge
README: Point to libgit2 account's AppVeyor badge
2015-01-20 17:48:34 -06:00
Edward Thomson e0902fbce7 checkout tests: cleanup realpath impl on Win32 2015-01-20 17:13:52 -06:00
Edward Thomson 53eb139dcb checkout tests: emulate p_realpath poorly on Win32 2015-01-20 17:13:41 -06:00
Edward Thomson e74340b000 checkout: remove files before writing new ones
On case insensitive filesystems, we may have files in the working
directory that case fold to a name we want to write.  Remove those
files (by default) so that we will not end up with a filename that
has the unexpected case.
2015-01-20 17:13:31 -06:00
Edward Thomson c2dee0fcb0 checkout: drop newline in error message 2015-01-20 17:13:20 -06:00
Edward Thomson 232bc89598 checkout tests: nasty symlinks
Symbolic links that abuse case insensitivity to write into .git.
2015-01-20 17:13:09 -06:00
Edward Thomson b4cbd67f5f checkout: don't recreate previous directory
Don't bother trying to recreate the previously created directory
during checkout, for a modest reduction in the number of stats.
2015-01-20 17:12:58 -06:00
Edward Thomson fe598f0903 mkdir: walk up tree to mkdir
Walk up the tree to mkdir, which is less immediately efficient,
but allows us to look at intermediate directories that may need
attention.
2015-01-20 17:12:46 -06:00
Edward Thomson 1fbfcdfcd0 git_path_join_unrooted: return base len
The documentation for `git_path_join_unrooted` states that the base
length will be returned, so that consumers like checkout know where
to start creating directories instead of always creating directories
at the directory root.
2015-01-20 17:12:35 -06:00
Edward Thomson 1d50b3649d checkout: introduce git_checkout_perfdata
Checkout can now provide performance data about the number of (some)
syscalls performed using an optional callback.
2015-01-20 17:12:23 -06:00
Edward Thomson 93b4a50de1 Merge pull request #2704 2015-01-20 16:19:55 -06:00
Linquize b4c6a9da93 Add files and tests with many UTF-8 chars and few UTF-8 chars 2015-01-20 16:17:48 -06:00
Sven Strickroth 0161e096a3 Make binary detection work similar to vanilla git
Main change: Don't treat chars > 128 as non-printable (common in UTF-8 files)

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2015-01-20 16:17:37 -06:00
Jacques Germishuys 9ae4ad2daf Treat a NULL string as if it's empty 2015-01-20 23:26:55 +02:00
Jacques Germishuys 526182d28c Remove logically dead code (we're already asserting) 2015-01-20 23:24:32 +02:00
Carlos Martín Nieto 2136240dbd Merge pull request #2828 from ethomson/treediff_dont_patch
diff: only compute patches when requested
2015-01-20 20:13:34 +01:00
Edward Thomson 147d86fc69 diff: only compute patches when requested
When we're called with no hunk or line callback, we don't need to
do the hunk or line computation.
2015-01-20 12:31:24 -06:00
Edward Thomson 7cfbf3b770 README: Point to libgit2 account's AppVeyor badge
Microsoft is sponsoring a Pro account at AppVeyor for the libgit2
and LibGit2Sharp projects.  Point to that account's badge.
2015-01-16 21:21:03 +00:00
Carlos Martín Nieto d5712ed2b3 Merge pull request #2821 from maksqwe/strlen_optimization
Remove strlen() calls from loop condition
2015-01-15 14:57:37 +01:00
Maks Naumov d8b5c8c329 Remove strlen() calls from loop condition
Avoid str length recalculation every iteration
2015-01-15 15:16:19 +02:00
Carlos Martín Nieto eac773d92b config: add parsing and getter for paths 2015-01-14 19:36:50 +01:00
Edward Thomson 4d6f55acce CHANGELOG: include small file similarity detection 2015-01-14 10:26:26 -06:00
Edward Thomson a93acf9169 Merge pull request #2818 from leoyanggit/openssl_option
Add option to turn off OpenSSL
2015-01-14 10:23:38 -06:00
Edward Thomson 85880693d5 Merge branch 'pr/2740' 2015-01-14 10:19:28 -06:00