|
2a99df69
|
2012-05-24T17:14:56
|
|
Fix bugs for status with spaces and reloaded attrs
This fixes two bugs:
* Issue #728 where git_status_file was not working for files
that contain spaces. This was caused by reusing the "fnmatch"
parsing code from ignore and attribute files to interpret the
"pathspec" that constrained the files to apply the status to.
In that code, unescaped whitespace was considered terminal to
the pattern, so a file with internal whitespace was excluded
from the matched files. The fix was to add a mode to that code
that allows spaces and tabs inside patterns. This mode only
comes into play when parsing in-memory strings.
* The other issue was undetected, but it was in the recently
added code to reload gitattributes / gitignores when they were
changed on disk. That code was not clearing out the old values
from the cached file content before reparsing which meant that
newly added patterns would be read in, but deleted patterns
would not be removed. The fix was to clear the vector of
patterns in a cached file before reparsing the file.
|
|
9cde607c
|
2012-05-24T15:08:55
|
|
Clean up system file finding tests on Win32
|
|
349fb6d7
|
2012-05-24T23:04:41
|
|
windows: Properly expand all environment variables
|
|
5f60fd00
|
2012-05-24T13:56:03
|
|
Merge pull request #726 from arrbee/utf16-home-dir
Get user's home dir in UTF-16 clean manner
|
|
9e35d7fd
|
2012-05-24T13:44:24
|
|
Fix bugs in UTF-8 <-> UTF-16 conversion
The function to convert UTF-16 to UTF-8 was only allocating a
buffer of wcslen(utf16str) bytes for the UTF-8 string, but that
is not sufficient if you have multibyte characters, and so when
those occured, the conversion was failing. This updates the
conversion functions to use the Win APIs to calculate the correct
buffer lengths.
Also fixes a comparison in the unit tests that would fail if
you did not have a particular environment variable set.
|
|
d3e9c4a5
|
2012-05-24T21:49:43
|
|
repository: default to core.bare = false if it's not set
We used to consider a missing core.bare option to mean that the
repository was corrupt. This is too strict. Consider it a non-bare
repository if it's not set.
|
|
23059130
|
2012-05-24T12:45:20
|
|
Get user's home dir in UTF-16 clean manner
On Windows, we are having problems with home directories
that have non-ascii characters in them. This rewrites the
relevant code to fetch environment variables as UTF-16 and
then explicitly map then into UTF-8 for our internal usage.
|
|
87ac556f
|
2012-05-23T15:05:03
|
|
Merge pull request #720 from nulltoken/fix/libgit2sharp_issue_153
Make git_futils_mkdir_r() able to cope with Windows network paths
|
|
8bf10dba
|
2012-05-23T12:59:21
|
|
Remove left-over debugging output
|
|
dc07184f
|
2012-05-23T12:05:48
|
|
fileops: Make git_futils_mkdir_r() able to cope with Windows network paths
Partially fix libgit2/libgit2sharp#153
|
|
54db1a18
|
2012-05-19T13:20:55
|
|
Cleanup
* indexer: remove leftover printf
* commit: remove unused macros COMMIT_BASIC_PARSE, COMMIT_FULL_PARSE
and COMMIT_PRINT
|
|
59d91979
|
2012-05-18T13:53:38
|
|
Merge pull request #710 from libgit2/breaking-changes
Break everything before the release
|
|
a167002f
|
2012-05-18T12:36:25
|
|
fetch: set dummy function for local fetch
Local fetch isn't implemented yet. Don't segfault on call, but set a
dummy for negotiate_fetch and terminate gracefully.
Reported-by: Brad Harder <bch@methodlogic.net>
|
|
6ec01e63
|
2012-05-17T16:51:17
|
|
Merge pull request #685 from nulltoken/fix/list-remote-branches
branch: retrieve symbolic references when listing the branches
|
|
904b67e6
|
2012-05-18T01:48:50
|
|
errors: Rename error codes
|
|
e172cf08
|
2012-05-18T01:21:06
|
|
errors: Rename the generic return codes
|
|
2e2e9785
|
2012-05-18T00:42:24
|
|
Properly tag all `enums` with a `_t`
|
|
4fbd1c00
|
2012-05-17T20:35:48
|
|
refs: git_reference_listall -> git_reference_list
|
|
29e948de
|
2012-05-10T10:38:10
|
|
global: Change parameter ordering in API
Consistency is good.
|
|
392eced6
|
2012-05-11T22:22:14
|
|
branch: retrieve symbolic references when listing the branches
|
|
52695898
|
2012-05-17T14:46:44
|
|
Merge pull request #709 from arrbee/profiling-with-scottg
Profiling with scottg
|
|
e3557172
|
2012-05-17T14:44:17
|
|
No point in keeping commented out fn
|
|
6e5c4af0
|
2012-05-17T14:21:10
|
|
Fix workdir iterators on empty directories
Creating a workdir iterator on a directory with absolutely
no files was returning an error (GIT_ENOTFOUND) instead of
an iterator for nothing. This fixes that and includes two
new tests that cover that case.
|
|
a0d95962
|
2012-05-17T13:14:17
|
|
Other optimization and warning fixes
This fixes a warning left by the earlier optimization and
addresses one of the other hotspots identified by GProf.
|
|
b59c73d3
|
2012-05-17T13:06:20
|
|
Optimize away git_text_gather_stats in diff
GProf shows `git_text_gather_stats` as the most expensive call
in large diffs. The function calculates a lot of information
that is not actually used and does not do so in a optimal
order. This introduces a tuned `git_buf_is_binary` function
that executes the same algorithm in a fraction of the time.
|
|
bd4ca902
|
2012-05-16T17:02:06
|
|
Fix status for files under ignored dirs
There was a bug where tracked files inside directories that were
inside ignored directories where not being found by status. To
make that a little clearer, if you have a .gitignore with:
ignore/
And then have the following files:
ignore/dir/tracked <-- actually a tracked file
ignore/dir/untracked <-- should be ignored
Then we would show the tracked file as being removed (because
when we got the to contained item "dir/" inside the ignored
directory, we decided it was safe to skip -- bzzt, wrong!).
This update is much more careful about checking that we are
not skipping over any prefix of a tracked item, regardless of
whether it is ignored or not.
As documented in diff.c, this commit does create behavior that
still differs from core git with regards to the handling of
untracked files contained inside ignored directories. With
libgit2, those files will just not show up in status or diff.
With core git, those files don't show up in status or diff
either *unless* they are explicitly ignored by a .gitignore
pattern in which case they show up as ignored files.
Needless to say, this is a local behavior difference only, so
it should not be important and (to me) the libgit2 behavior
seems more consistent.
|
|
ee7680d5
|
2012-05-16T21:21:24
|
|
notes: make git_note_foreach() callback signature easier to cope with from a binding perspective
|
|
9d0011fd
|
2012-05-16T19:23:47
|
|
tree: Naming conventions
|
|
cedf9ca9
|
2012-05-16T19:16:35
|
|
tree: Kill the `git_tree_diff` functions
These are deprecated and replaced with the diffing code in git2/diff.h
|
|
9bd5a99f
|
2012-05-16T10:22:49
|
|
Merge pull request #700 from cholin/revwalk_reset
really reset walker with git_revwalk_reset
|
|
c261c272
|
2012-05-16T09:57:45
|
|
Merge pull request #702 from arrbee/fix-status-file
Update git_status_file and add ranged iterators
|
|
2c833917
|
2012-05-15T16:33:05
|
|
Document git_buf_common_prefix
This function fills in a git_buf with the common prefix of
an array of strings, but let's make that a little more clear.
|
|
6a9d61ef
|
2012-05-15T15:08:54
|
|
indexer: add more consistency checks
Error out in finalize if there is junk after the packfile hash or we
couldn't process all the objects.
|
|
58ffeb9c
|
2012-05-15T14:51:30
|
|
Fix notes to use new fixed iterator signature
|
|
41a82592
|
2012-05-15T14:17:39
|
|
Ranged iterators and rewritten git_status_file
The goal of this work is to rewrite git_status_file to use the
same underlying code as git_status_foreach.
This is done in 3 phases:
1. Extend iterators to allow ranged iteration with start and
end prefixes for the range of file names to be covered.
2. Improve diff so that when there is a pathspec and there is
a common non-wildcard prefix of the pathspec, it will use
ranged iterators to minimize excess iteration.
3. Rewrite git_status_file to call git_status_foreach_ext
with a pathspec that covers just the one file being checked.
Since ranged iterators underlie the status & diff implementation,
this is actually fairly efficient. The workdir iterator does
end up loading the contents of all the directories down to the
single file, which should ideally be avoided, but it is pretty
good.
|
|
73d87a09
|
2012-05-15T21:42:01
|
|
Introduce GITERR_INDEXER
|
|
0b86fdf9
|
2012-05-15T17:03:07
|
|
really reset walker with git_revwalk_reset
From the description of git_revwalk_reset in revwalk.h the function should
clear all pushed and hidden commits, and leave the walker in a blank state (just like at creation).
Apparently everything gets reseted appart of pushed commits (walk->one and walk->twos)
This fix should reset the walker properly.
|
|
d5ed6348
|
2012-05-14T22:24:58
|
|
Fix compilation warnings
|
|
86ecd844
|
2012-05-08T17:58:40
|
|
notes: add git_notes_foreach()
|
|
8c6329ee
|
2012-05-14T11:25:40
|
|
Merge pull request #692 from nulltoken/fix/delete-branch_ENOTFOUND
branch: make git_branch_delete() return GIT_ENOTFOUND when the branch doesn't exist
|
|
c9e9ec97
|
2012-05-14T11:24:37
|
|
Merge pull request #688 from hanwen/master
See issue https://github.com/libgit2/libgit2/issues/680
|
|
e49cb168
|
2012-05-14T11:03:30
|
|
Merge pull request #671 from nulltoken/topic/blob_create_fromdisk
Add git_blob_create_fromdisk()
|
|
72bfde97
|
2012-05-14T11:01:14
|
|
Merge pull request #681 from scottjg/solaris-fixes
Fix build/runtime issues on Solaris
|
|
27f5b7cf
|
2012-05-14T10:58:23
|
|
Merge pull request #682 from arrbee/attribute-cache-buster
Attribute cache buster
|
|
87fe3507
|
2012-05-13T19:09:25
|
|
iterator: prevent git_iterator_free() from segfaulting when being passed a NULL iterator
|
|
6ca9643c
|
2012-05-06T21:00:20
|
|
blob: Add git_blob_create_fromdisk()
This function will create blobs in the object database from files anywhere on the filesystem. This can be run against bare and non-bare repositories.
|
|
341a7136
|
2012-05-13T10:17:52
|
|
branch: make git_branch_delete() return GIT_ENOTFOUND when the branch doesn't exist
|
|
24634c6f
|
2012-05-12T15:01:39
|
|
Handle duplicate objects from different backends in git_odb_read_prefix().
|
|
6fb1c0b4
|
2012-05-09T23:45:55
|
|
Fix readdir_r() usage for Solaris
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.
|
|
b72969e0
|
2012-05-12T01:51:58
|
|
Merge pull request #683 from arrbee/better-repo-init
Improve repo initialization to be more like git
|
|
e28c3776
|
2012-05-11T23:56:23
|
|
object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type
This fix complements cb0ce16bbe8efe2098ef9cfffcf158301b036565 and cover the following additional use cases
- retrieving an object which has been previously searched, found and cached
- retrieving an object through an non ambiguous abbreviated id
|
|
db628072
|
2012-05-11T12:16:19
|
|
Fixed leaks and added tests
|
|
54bdc64a
|
2012-05-10T00:37:03
|
|
Fix rmdir() usage on Solaris
On Solaris, rmdir() throws EEXIST if the folder is not empty, so just add
one more case to check for that, alongside ENOTEMPTY.
|
|
dc13f1f7
|
2012-05-10T11:08:59
|
|
Add cache busting to attribute cache
This makes the git attributes and git ignores cache check
stat information before using the file contents from the
cache. For cached files from the index, it checks the SHA
of the file instead. This should reduce the need to ever
call `git_attr_cache_flush()` in most situations.
This commit also fixes the `git_status_should_ignore` API
to use the libgit2 standard parameter ordering.
|
|
ec42eafd
|
2012-05-09T22:30:57
|
|
Hook up Windows compat fnmatch() for Solaris
Since Solaris does not support some of the same flags as glibc fnmatch(),
we just use the implementation we have for Windows.
Now that it's no longer a windows-specific thing, I moved it into compat/
instead of win32/
|
|
dc34da6e
|
2012-05-08T13:50:40
|
|
Improve repo initialization to be more like git
This adds a bunch of template files to the initialization for
hooks, info/exclude, and description. This makes our initialized
repo look more like core gits.
|
|
2aa1e94d
|
2012-05-09T10:30:34
|
|
Fix 64-bit build warning
|
|
075d6e7d
|
2012-05-09T10:18:54
|
|
Merge pull request #679 from nulltoken/fix/git__isspace
util: Fix git__isspace() implementation
|
|
11678b37
|
2012-05-09T16:18:13
|
|
fetch: filter tag annotation pseudo-refs while generating wants
These objects aren't considered as being advertised, so asking for
them will cause the remote end to close the connection. This makes the
checking in update_tips() unnecessary, because they don't get inserted
in the list.
|
|
0536afca
|
2012-05-09T14:10:30
|
|
remote: don't try to create tag annotations as refs/tags/v0.1.0^{}
Skip them for now. Eventually we might want to filter these out
earler.
|
|
9cd25d00
|
2012-05-09T13:21:21
|
|
util: Fix git__isspace() implementation
The characters <space>, <form-feed>, <newline>, <carriage-return>, <tab>, and <vertical-tab> are part of the "space" definition.
cf. http://www.kernel.org/doc/man-pages/online/pages/man5/locale.5.html
|
|
a640d79e
|
2012-05-09T13:11:50
|
|
indexer: close the pack's fd before renaming it
Windows gets upset if we rename a file with an open descriptor.
|
|
0f49200c
|
2012-05-09T04:37:02
|
|
msvc: Do not use `isspace`
Locale-aware bullshit bitting my ass again yo
|
|
e65752bb
|
2012-05-08T16:06:27
|
|
Merge pull request #677 from arrbee/status-without-head
Add support for diffing index with no HEAD
|
|
7e000ab2
|
2012-05-08T15:03:59
|
|
Add support for diffing index with no HEAD
When a repo is first created, there is no HEAD yet and attempting
to diff files in the index was showing nothing because a tree
iterator could not be constructed. This adds an "empty" iterator
and falls back on that when the head cannot be looked up.
|
|
fd5faae3
|
2012-05-08T23:55:37
|
|
message: Cleanup
|
|
b1e2ba27
|
2012-05-08T23:43:52
|
|
message: Proper OOM handling
|
|
c99bdacf
|
2012-05-08T14:13:43
|
|
Merge pull request #670 from nulltoken/ntk/topic/clean-commit_message
Clean commit and tag messages
|
|
364f51bd
|
2012-05-08T13:56:21
|
|
Merge pull request #668 from nulltoken/topic/binary-blobs
Enhancing the blob diffing experience
|
|
1f796cd1
|
2012-05-08T13:42:11
|
|
Merge pull request #676 from carlosmn/remotes
Add git_remote_add() and change signature for _new()
|
|
19579847
|
2012-05-08T13:23:00
|
|
Clean up warnings and tests
|
|
baaa8a44
|
2012-05-03T20:25:56
|
|
remotes: change git_remote_new's signature
Add a fetch refspec arguemnt and make the arguments (name, url,
refspec), as that order makes more sense.
|
|
a209a025
|
2012-05-03T16:08:33
|
|
remote: add git_remote_add()
Helper function to create a remote with the default settings
|
|
3df9cc59
|
2012-05-03T16:07:22
|
|
config: don't use freed memory on error
Change the order and set a NULL so we don't try to access freed memory
in case of an error.
|
|
2c0cdc3a
|
2012-05-08T10:40:01
|
|
Merge pull request #674 from nulltoken/topic/GIT_ENOTFOUND
Improve the interop with bindings
|
|
65ca81a6
|
2012-05-08T14:28:21
|
|
Minor error fixes
Clear the error in pkt when we notice that the remote is starting to
send the packfile.
Fix the format string for Windows networking errors.
|
|
722c08af
|
2012-05-07T21:21:48
|
|
status: Prevent git_status_file() from returning ENOTFOUND when not applicable
|
|
464cf248
|
2012-05-07T17:25:16
|
|
repository: ensure git_repository_discover() returns ENOTFOUND when unable to find a repository given the constraints
|
|
9abb5bca
|
2012-05-07T13:58:01
|
|
compat: make p_realpath Windows implementation be a bit more POSIX compliant and fail if the provided path does not lead to an existing entry
|
|
46811561
|
2012-05-07T13:56:42
|
|
path: Make git_path_prettify() properly handle ENOTDIR errno value
|
|
cb0ce16b
|
2012-05-07T15:42:13
|
|
object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type
|
|
9fb70f37
|
2012-05-07T10:57:34
|
|
remote: make git_remote_load() return GIT_ENOTFOUND when the remote url cannot be retrieved from the config file
|
|
2fb9d6de
|
2012-05-07T10:04:50
|
|
remote: ensure the allocated remote is freed when an error occurs during its loading
|
|
8d89c8e9
|
2012-05-07T13:36:02
|
|
Merge pull request #672 from scottjg/more-mingw32-fixes
More mingw32 compilation fixes.
|
|
cba285d3
|
2012-05-07T13:30:27
|
|
Fix directory finding for attrs
The fix to support attrs on bare repos went a little too far
in trying to avoid using the working directory and ended up
not processing the input path quite correctly.
|
|
3191ae89
|
2012-05-06T13:04:12
|
|
compat: make p_open able to accept optional mode when passing the O_CREAT flag
This has the nice side effect of making test_attr_repo__staging_properly_normalizes_line_endings_according_to_gitattributes_directives() test pass again on Windows. This test started to fail after commit 674a198 was applied.
|
|
9a29f8d5
|
2012-05-04T07:55:09
|
|
diff: fix the diffing of two identical blobs
|
|
28ef7f9b
|
2012-05-03T17:25:01
|
|
diff: make git_diff_blobs() able to detect binary blobs
|
|
4f806761
|
2012-05-03T17:19:06
|
|
diff: fix the diffing of a concrete blob against a null one
|
|
245c5eae
|
2012-05-03T16:34:02
|
|
diff: When diffing two blobs, ensure the delta callback parameter is filled with relevant information
|
|
8d0f4675
|
2012-05-03T16:27:22
|
|
diff: remove unused parameter
|
|
458b9450
|
2012-03-01T17:03:32
|
|
commit/tag: ensure the message is cleaned up
'git commit' and 'git tag -a' enforce some conventions, like cleaning up excess whitespace and making sure that the last line ends with a '\n'. This fix replicates this behavior.
Fix libgit2/libgit2sharp#117
|
|
901fbdad
|
2012-05-07T00:05:02
|
|
Define explicit _WIN32_WINNT version in makefile
Previously, it was defined in netops.c, but it's also needed in one of the
clar tests, so I figured we might as well just make it global for the
whole project.
Without it, the mingw32 linker won't resolve GetProcessId() (called from
the core/errors.c clar test) because of some conditionals in windows.h.
|
|
49ac5ac8
|
2012-05-06T13:17:25
|
|
transport git: don't use 'error' uninitialized
|
|
3972ca43
|
2012-05-05T22:14:02
|
|
compat: Add `stdarg.h` include
|
|
cd58c15c
|
2012-05-05T16:47:20
|
|
Merge remote-tracking branch 'scottjg/fix-mingw32' into development
Conflicts:
src/netops.c
src/netops.h
src/transports/http.c
tests-clar/clar
|
|
4ef14af9
|
2012-05-05T14:22:06
|
|
Merge pull request #664 from arrbee/attrs-from-index
Support git attrs from index (and bare repo)
|
|
f95e8cc0
|
2012-05-05T14:18:10
|
|
notes: Cleanup error handling
|
|
d3a60dc2
|
2012-05-05T14:14:58
|
|
Merge pull request #663 from schu/notes-honor-config
Honor core.notesRef config option
|
|
b47e0a71
|
2012-05-05T13:52:48
|
|
Fix missing prototype warning in utf-conv.c
|