|
28cdb315
|
2015-09-18T23:48:22
|
|
apple: work around non-POSIX struct stat on OS X.
|
|
0226f7dd
|
2015-08-29T13:59:20
|
|
diff/index: respect USE_NSEC for racily clean file detection
|
|
c963fe1d
|
2015-06-23T09:05:49
|
|
cmake: fix CMake code organization problem
|
|
e9e6df2c
|
2015-06-15T09:28:55
|
|
cmake: Only provide USE_NSEC if struct stat members are avilable.
This allows us to remove OS checks from source code, instead relying
on CMake to detect whether or not `struct stat` has the nanoseconds
members we rely on.
|
|
360dd4da
|
2015-06-23T10:02:48
|
|
win32: define our own POSIX struct stat, and support USE_NSEC
|
|
2be78557
|
2015-06-02T12:45:30
|
|
caps: add test for GIT_FEATURES_NSEC
|
|
0269833f
|
2015-06-02T12:42:07
|
|
settings: expose GIT_USE_NSEC flag in git_libgit2_features
|
|
e7de893e
|
2015-06-01T13:43:54
|
|
cmake: add USE_NSEC, and only check nanosec m/ctime if enabled
|
|
cdef1fad
|
2015-09-18T16:46:57
|
|
Merge pull request #3433 from libgit2/cmn/config-comment
Keep config comments in the same place as git
|
|
cd677b8f
|
2015-09-18T12:28:05
|
|
config: buffer comments to match git's variable-adding
When there is a comment at the end of a section, git keeps it there,
while we write the new variable right at the end.
Keep comments buffered and dump them when we're going to output a
variable or section, or reach EOF. This puts us in line with the config
files which git produces.
|
|
08313c4b
|
2015-09-18T11:30:50
|
|
config: test that comments are left as with git
|
|
dfe2856d
|
2015-09-18T12:06:55
|
|
Fix a couple of warnings
|
|
403e1800
|
2015-09-18T12:03:43
|
|
Merge pull request #3418 from DimStar77/master
pkg-config: fix directory references in libgit2.pc
|
|
5540d9db
|
2015-09-10T16:11:10
|
|
pkg-config: fix directory references in libgit2.pc
Before:
libdir=/usr//usr/lib64
includedir=/usr//usr/include
After:
libdir=/usr/lib64
includedir=/usr/include
(note the duplication of /usr in the before case)
|
|
8d6052df
|
2015-09-17T22:03:26
|
|
Merge pull request #3432 from ethomson/mkdir
`mkdir`: split into `mkdir` and `mkdir_relative`
|
|
9ce2e7b3
|
2015-09-17T12:48:37
|
|
`mkdir`: cope with root path on win32
|
|
e164ddb1
|
2015-09-17T12:23:19
|
|
win32: return EACCES in `p_lstat`
Don't coalesce all errors into ENOENT. At least identify EACCES.
All callers should be handling this case already, as the POSIX
`lstat` will return this.
|
|
81aaf370
|
2015-09-17T11:26:38
|
|
mkdir: chmod existing paths with `GIT_MKDIR_CHMOD`
|
|
e24c60db
|
2015-09-17T09:42:05
|
|
mkdir: find component paths for mkdir_relative
`git_futils_mkdir` does not blindly call `git_futils_mkdir_relative`.
`git_futils_mkdir_relative` is used when you have some base directory
and want to create some path inside of it, potentially removing blocking
symlinks and files in the process. This is not suitable for a general
recursive mkdir within the filesystem.
Instead, when `mkdir` is being recursive, locate the first existent
parent directory and use that as the base for `mkdir_relative`.
|
|
0862ec2e
|
2015-09-17T09:58:38
|
|
core::mkdir tests: ensure we don't stomp symlinks in mkdir
In `mkdir` and `mkdir_r`, ensure that we don't try to remove symlinks
that are in our way.
|
|
08df6630
|
2015-09-16T18:07:56
|
|
core::mkdir tests: include absolute mkdirs
|
|
ac2fba0e
|
2015-09-16T15:07:27
|
|
git_futils_mkdir_*: make a relative-to-base mkdir
Untangle git_futils_mkdir from git_futils_mkdir_ext - the latter
assumes that we own everything beneath the base, as if it were
being called with a base of the repository or working directory,
and is tailored towards checkout and ensuring that there is no
bogosity beneath the base that must be cleaned up.
This is (at best) slow and (at worst) unsafe in the larger context
of a filesystem where we do not own things and cannot do things like
unlink symlinks that are in our way.
|
|
add0378d
|
2015-09-16T17:46:24
|
|
Merge pull request #3429 from ethomson/checkout_chmod
Checkout: handle mode changes
|
|
eea7c850
|
2015-09-16T05:44:27
|
|
checkout: overwrite files with differing modes
When a file exists on disk and we're checking out a file that differs
in executableness, remove the old file. This allows us to recreate the
new file with p_open, which will take the new mode into account and
handle setting the umask properly.
Remove any notion of chmod'ing existing files, since it is now handled
by the aforementioned removal and was incorrect, as it did not take
umask into account.
|
|
6fe32284
|
2015-09-16T10:17:54
|
|
checkout::tree tests: don't use hardcoded mode
|
|
b4d183a7
|
2015-09-16T04:12:47
|
|
checkout::tree tests: don't use static buffer
|
|
33cad995
|
2015-06-01T14:31:49
|
|
Check that checkout preserves filemode in working directory.
|
|
6124d983
|
2015-06-01T11:16:36
|
|
Check that an executable in index is not an executable after checkout.
|
|
b1f6c0b6
|
2015-09-14T14:58:54
|
|
Merge pull request #3428 from ethomson/clone_test_buffer
Clone test buffer
|
|
8452fecc
|
2015-09-14T14:05:01
|
|
cl_git_path_url: assert sane static buffer size
|
|
4cc355c9
|
2015-09-14T13:58:38
|
|
clone::nonetwork: don't use fixed size buffer
|
|
b0885675
|
2015-09-13T23:21:14
|
|
Merge pull request #3425 from ethomson/diriter_root
Handle `git_path_diriter` instances at the drive root on Windows
|
|
ceb01c09
|
2015-09-13T22:31:08
|
|
Merge pull request #3426 from ethomson/fs_iterator
iterator: loop fs_iterator advance (don't recurse)
|
|
9d905541
|
2015-09-13T14:18:08
|
|
diriter: don't double '/' on posix
The canonical directory path of the root directory of a volume on
POSIX already ends in a slash (eg, `/`). This is true only at the
root. Do not add a slash to paths in this case.
|
|
26d7cf6e
|
2015-09-11T18:27:04
|
|
iterator: loop fs_iterator advance (don't recurse)
|
|
5a466bef
|
2015-09-13T13:59:41
|
|
diriter: don't double '/' on Windows
The canonical directory path of the root directory of a volume on
windows already ends in a slash (eg, `c:/`). This is true only
at the volume root. Do not add a slash to paths in this case.
|
|
2cde210d
|
2015-09-13T13:52:19
|
|
diriter: test we can iterate root
Ensure that we can iterate the filesystem root and that paths come
back well-formed, not with an additional '/'. (eg, when iterating
`c:/`, expect that we do not get some path like `c://autoexec.bat`).
|
|
f2b25261
|
2015-09-13T19:43:55
|
|
Merge pull request #3423 from libgit2/cmn/push-tests-inline-oid
push: put the git_oid inline in the test structure
|
|
e78aeefa
|
2015-09-13T19:43:39
|
|
Merge pull request #3420 from ethomson/iterator
iterator: advance the tree iterator smartly
|
|
9562ebcd
|
2015-09-13T17:33:26
|
|
Merge pull request #3424 from arthurschreiber/arthur/transaction-dont-free-config
Don't free config in `git_transaction_commit`.
|
|
548cb334
|
2015-09-13T16:32:24
|
|
Don't free config in `git_transaction_commit`.
The config is not owned by the transaction, so please don’t free it.
|
|
1e80bf27
|
2015-09-13T06:21:18
|
|
Merge branch 'cmn/ignore-dir-check'
|
|
657afd35
|
2015-09-13T06:18:49
|
|
ignore: add test and adjust style and comment for dir with wildmatch
The previous commit left the comment referencing the earlier state of
the code, change it to explain the current logic. While here, change the
logic to avoid repeating the copy of the base pattern.
|
|
305407e1
|
2015-09-13T06:03:12
|
|
Merge pull request #3370 from libgit2/cmn/submodule-refactor
submodule: refactor to be more explicit in the search
|
|
1af5aecb
|
2015-09-13T05:38:29
|
|
push: put the git_oid inline in the test structure
These are small pieces of data, so there is no advantage to allocating
them separately. Include the two ids inline in the struct we use to
check that the expected and actual ids match.
|
|
dc5b678f
|
2015-09-12T22:49:23
|
|
Merge pull request #3422 from ethomson/workdir_diff
diff: examine pathlist on non-files
|
|
8ab4d0e1
|
2015-09-12T15:32:18
|
|
diff: check pathspec on non-files
When we're not doing pathspec matching, we let the iterator handle
file matching for us. However, we can only trust the iterator to
return *files* that match the pattern, because the iterator must
return directories that are not strictly in the pathlist, but that
are the parents of files that match the pattern, so that diff can
later recurse into them.
Thus, diff must examine non-files explicitly before including them
in the delta list.
|
|
92f7d32b
|
2015-09-12T13:46:22
|
|
diff::workdir: ensure ignored files are not returned
Ensure that a diff with the workdir is not erroneously returning
directories.
|
|
049dbf42
|
2015-09-12T04:00:34
|
|
Merge pull request #3421 from ethomson/mempack-fix
Mempack fix
|
|
220d6f8a
|
2015-09-11T20:06:14
|
|
mempack: expose clear function
|
|
707f6537
|
2015-09-11T16:35:14
|
|
Removing memory leak in mempack's free
It calls git_mempack_reset which reallocates the object array. git_oidmap_free is now called on it explicitly.
|
|
a1859e21
|
2015-09-11T17:38:28
|
|
iterator: advance the tree iterator smartly
While advancing the tree iterator, if we advance over things that
we aren't interested in, then call `current`. Which may *itself*
call advance.
While advancing the tree iterator, if we advance over things that
we aren't interested in, then call `current`. Which may *itself*
call advance.
While advancing the tree iterator, if we advance over things that
we aren't interested in, then call `current`. Which may *itself*
call advance.
While advancing the tree iterator, if we advance over things that
we aren't interested in, then call `current`. Which may *itself*
call advance.
While advancing the tree iterator, if we advance over things that
we aren't interested in, then call `current`. Which may *itself*
call advance.
Error: stack overflow.
|
|
8e177b2b
|
2015-09-10T14:44:52
|
|
Fixing dangling pointers in git_mempack_reset
git_mempack_reset was leaving free'd pointers in the oidmap.
|
|
a3b9731f
|
2015-09-10T21:23:03
|
|
submodule: add a test for a renamed submdoule dir
|
|
f17525b0
|
2015-08-10T18:36:27
|
|
submodule: refactor to be more explicit in the search
When searching for information about a submdoule, let's be more explicit
in what we expect to find. We currently insert a submodule into the map
and change certain parameters when the config callback gets called.
Switch to asking for the configuration we're interested in, rather than
taking it in an arbitrary order.
|
|
6c21211c
|
2015-09-09T13:59:38
|
|
Merge pull request #3379 from theseion/additional_libssh2_error_reporting
report libssh2 error if list of authentication methods can't be retrieved
|
|
53ba8c9e
|
2015-09-09T01:37:06
|
|
Merge pull request #3415 from ethomson/lock_hidden
filebuf: ensure we can lock a hidden file
|
|
8e736a73
|
2015-09-08T15:48:44
|
|
futils: ensure we can write a hidden file
|
|
ea3f2c29
|
2015-09-08T14:35:53
|
|
filebuf: ensure we can lock a hidden file
|
|
c1770aeb
|
2015-09-08T12:43:36
|
|
Merge pull request #3410 from libgit2/cmn/ssh-embed-again
Revert "Get rid of libssh2 embedding"
|
|
6d6020de
|
2015-09-08T18:34:51
|
|
Merge pull request #3353 from ethomson/wrongcase_add
index: canonicalize directory case when adding
|
|
2964cbea
|
2015-09-08T11:50:08
|
|
Merge pull request #3381 from leoyanggit/index_directory_iterator
New feature: add the ablility to iterate through a directory in index
|
|
a32bc85e
|
2015-08-07T12:43:49
|
|
git_index_add: allow case changing renames
On case insensitive platforms, allow `git_index_add` to provide a new
path for an existing index entry. Previously, we would maintain the
case in an index entry without the ability to change it (except by
removing an entry and re-adding it.)
Higher-level functions (like `git_index_add_bypath` and
`git_index_add_frombuffers`) continue to keep the old path for easier
usage.
|
|
280adb3f
|
2015-08-04T16:51:00
|
|
index: canonicalize directory case when adding
On case insensitive systems, when given a user-provided path in the
higher-level index addition functions (eg `git_index_add_bypath` /
`git_index_add_frombuffer`), examine the index to try to match the
given path to an existing directory.
Various mechanisms can cause the on-disk representation of a folder
to not match the representation in HEAD or the index - for example,
a case changing rename of some file `a/file.txt` to `A/file.txt`
will update the paths in the index, but not rename the folder on
disk.
If a user subsequently adds `a/other.txt`, then this should be stored
in the index as `A/other.txt`.
|
|
e1d27bca
|
2015-09-06T10:51:29
|
|
Merge pull request #3413 from libgit2/cmn/follow-symlink
filebuf: follow symlinks when creating a lock file
|
|
9fd4c9c8
|
2015-09-06T10:50:22
|
|
Merge pull request #3366 from libgit2/cmn/index-hashmap
Use a hashmap for path-based lookups in the index
|
|
d83b2e9f
|
2015-09-05T03:54:06
|
|
filebuf: follow symlinks when creating a lock file
We create a lockfile to update files under GIT_DIR. Sometimes these
files are actually located elsewhere and a symlink takes their place. In
that case we should lock and update the file at its final location
rather than overwrite the symlink.
|
|
c097f717
|
2015-08-17T15:02:02
|
|
New API: git_index_find_prefix
Find the first index entry matching a prefix.
|
|
81b76367
|
2015-09-04T13:30:49
|
|
index: put the icase insert choice in macros
This should let us see more clearly what we're doing and avoid the ugly
'if' we need every time we want to interact with the map.
|
|
01fe8374
|
2015-09-03T13:35:15
|
|
Revert "Get rid of libssh2 embedding"
The embedding was removed as a libssh2 release with Windows crypto
support became available, but dependencies are still annoying so this
ahs been requested again.
This reverts commit 20dcb7315cd4c5760c68402998fd9e5a6bf5505d.
|
|
1cef6b9f
|
2015-09-03T11:38:21
|
|
config: correct documentation for non-existent config file
|
|
21e7015c
|
2015-09-01T02:26:11
|
|
Merge pull request #3402 from ethomson/faster_diff
Provide path matching in the iterators (for faster diffs)
|
|
53c2296b
|
2015-08-31T19:41:43
|
|
iterator: better document GIT_DIFF_DISABLE_PATHSPEC_MATCH
|
|
03210cfa
|
2015-08-31T12:12:21
|
|
iterator test: handle case (in)sensitivity
|
|
4d19bced
|
2015-08-30T19:33:18
|
|
iterator test: use new iter opts in fifo test
|
|
d53c8880
|
2015-08-30T19:25:47
|
|
iterator: saner pathlist matching for idx iterator
Some nicer refactoring for index iteration walks.
The index iterator doesn't binary search through the pathlist space,
since it lacks directory entries, and would have to binary search
each index entry and all its parents (eg, when presented with an index
entry of `foo/bar/file.c`, you would have to look in the pathlist for
`foo/bar/file.c`, `foo/bar` and `foo`). Since the index entries and the
pathlist are both nicely sorted, we walk the index entries in lockstep
with the pathlist like we do for other iteration/diff/merge walks.
|
|
56ed415a
|
2015-08-30T19:10:00
|
|
diff: drop `FILELIST_MATCH`
Now that non-pathspec matching diffs are implemented at the iterator
level, drop `FILELIST_MATCH`ing.
|
|
71ef639e
|
2015-08-30T18:57:06
|
|
status test: brackets are now literal
|
|
7b73739f
|
2015-08-30T18:56:39
|
|
checkout: use pathlist-based iterators
|
|
1af84271
|
2015-08-30T18:35:57
|
|
tree_iterator: use a pathlist
|
|
4a0dbeb0
|
2015-08-30T17:06:26
|
|
diff: use new iterator pathlist handling
When using literal pathspecs in diff with `GIT_DIFF_DISABLE_PATHSPEC_MATCH`
turn on the faster iterator pathlist handling.
Updates iterator pathspecs to include directory prefixes (eg, `foo/`)
for compatibility with `GIT_DIFF_DISABLE_PATHSPEC_MATCH`.
|
|
ed38e26d
|
2015-08-30T15:47:49
|
|
Merge pull request #3401 from phatblat/pb/doc-warning
Escape @ in doc comment
|
|
91c9484c
|
2015-08-29T17:46:34
|
|
Escape @ in doc comment
|
|
3273ab3f
|
2015-08-28T20:06:18
|
|
diff: better document GIT_DIFF_PATHSPEC_DISABLE
Document that `GIT_DIFF_PATHSPEC_DISABLE` is not necessarily about
explicit path matching, but also includes matching of directory
names. Enforce this in a test.
|
|
aa06ecaf
|
2015-08-28T19:30:08
|
|
Merge pull request #3352 from ethomson/hidden
win32: ensure hidden files can be staged
|
|
6c9352bf
|
2015-08-28T18:30:39
|
|
iterator: sort subdirs properly with pathlist
When given a pathlist, don't assume that directories sort before
files. Walk through any list of entries sorting before us to make
sure that we've exhausted all entries that *aren't* directories.
Eg, if we're searching for 'foo/bar', and we have a 'foo.c', keep
advancing the pathlist to keep looking for an entry prefixed with
'foo/'.
|
|
810cabb9
|
2015-07-28T20:04:11
|
|
racy-git: TODO to use improved diffing
|
|
ef206124
|
2015-07-28T19:55:37
|
|
Move filelist into the iterator handling itself.
|
|
ed1c6446
|
2015-07-28T11:41:27
|
|
iterator: use an options struct instead of args
|
|
126932eb
|
2015-08-26T17:08:35
|
|
Merge pull request #3399 from arthurschreiber/patch-8
Fix a typo [ci skip]
|
|
fec4a68c
|
2015-08-26T23:08:03
|
|
Fix a typo [ci skip]
|
|
c1322a9e
|
2015-08-25T19:09:38
|
|
Merge pull request #3396 from ethomson/copying
COPYING: include winhttp definition copyright
|
|
afe0ff1a
|
2015-08-25T11:20:37
|
|
COPYING: include winhttp definition copyright
Include the copyright notice from the deps/winhttp/ sources. Move the
LGPL to the bottom of the file (since multiple dependencies are LGPL
licensed) and include the actual copyright notices from the regex sources.
|
|
19475924
|
2015-08-25T00:39:58
|
|
Merge pull request #3355 from palmin/palmin/fix-2830
Include the 4 characters not recognised as hex-number in parse_len
|
|
6d0defe3
|
2015-08-24T18:47:48
|
|
Fix 'If we're dealing with a directory' check
|
|
6b36945d
|
2015-08-20T14:54:22
|
|
Merge pull request #3388 from libgit2/cmn/smart-callbacks
transport: provide a way to get the callbacks
|
|
88201608
|
2015-08-20T14:53:51
|
|
Merge pull request #3389 from libgit2/cmn/old-security
CMake: fall back to OpenSSL on older OS X
|
|
b445940e
|
2015-08-19T12:53:31
|
|
CMake: fall back to OpenSSL on older OS X
Starting at OS X 10.8, the Security framework offers some functions
which are unified across OS X and iOS. These are the functions that we
use.
Older versions of OS X do not have these functions and we fail to
compile. In these situations, fall back to using OpenSSL for our TLS
stream instead.
|
|
57af0b92
|
2015-08-19T00:46:28
|
|
cred: add a free function wrapper
|
|
47ed7e5a
|
2015-08-18T20:55:59
|
|
transport: provide a way to get the callbacks
libgit2 implementations of smart subtransports can simply reach through
the structure, but external implementors cannot.
Add these two functions as a way for the smart subtransports to get the
callbacks as set by the user.
|