|
1616fa68
|
2013-08-15T17:25:05
|
|
revparse: Use more idiomatic error value test
|
|
899ec41f
|
2013-08-15T16:25:48
|
|
revparse: Free left side of invalid range revspecs
This fixes a small memory leak in git_revparse where early returns on
errors from git_revparse_single cause a free() on the (reallocated) left
side of the revspec to be skipped.
|
|
1e94df08
|
2013-08-15T00:09:46
|
|
sha1-lookup: This assert was correct
|
|
c87bf86c
|
2013-08-14T10:58:02
|
|
Commit 7affc2f7 removed var initialization
That commit accidentally removed the initialization of the "start"
variable giving undefined results for the host extraction from the
url input.
|
|
ad0af715
|
2013-08-14T06:48:09
|
|
Merge pull request #1780 from phkelley/development
Respect GIT_SSL_NO_VERIFY and http.sslVerify
|
|
9d1751bf
|
2013-08-14T06:44:28
|
|
Merge pull request #1783 from libgit2/cmn/relax-remote
remote: relax the url rules
|
|
c4ded21e
|
2013-08-14T06:43:43
|
|
Merge pull request #1774 from libgit2/test-ssh
Test SSH in travis
|
|
89f6d84c
|
2013-08-14T06:40:38
|
|
Merge pull request #1781 from brodie/brodie/stat-before-open
fileops: stat() before open()ing in git_futils_readbuffer_updated()
|
|
d5904eb8
|
2013-08-14T06:38:37
|
|
Merge pull request #1782 from libgit2/vmg/no-lookup
Do not use the "experimental" lookup mode
|
|
0b9ebb54
|
2013-08-14T11:18:05
|
|
remote: relax the url rules
Accept any value for the remote's url, including an empty string which
we used to reject as invalid configuration.
This is not quite what git does (although it has its own problems with
such configurations) and it makes it harder to fix the issue, by not
letting the user modify it.
As we already need to check for a valid URL when we try to connect to
the network, let that perform the check, as we don't need to do it
anywhere else.
|
|
5be622fb
|
2013-08-11T01:37:44
|
|
Test SSH in travis
Set up the ssh credentials so we are able to talk to localhost and
issue git commands. Move to use a script, as the command list is
getting somewhat long.
While here, delay installing valgrind until we need it, as it and its
dependencies are by far the largest downloads and this allows us to
start compiling (and failing) faster and we only incur this cost when
the test suite runs successfully.
|
|
59547ce7
|
2013-08-14T10:34:07
|
|
oid: Helper for old-school hashcmp
|
|
e2164da5
|
2013-08-14T10:31:02
|
|
sha1_lookup: Hello my name is MSVC and how do I pointer
|
|
67591c8c
|
2013-08-14T10:28:01
|
|
sha1_lookup: do not use the "experimental" lookup mode
|
|
af6dab7e
|
2013-08-13T13:10:52
|
|
Respect GIT_SSL_NO_VERIFY and http.sslVerify
|
|
2af9bcb2
|
2013-08-13T11:37:31
|
|
Merge pull request #1779 from ben/win32-precompiled-header-speedup
Speed up build under MSVC
|
|
40948998
|
2013-08-13T11:36:24
|
|
Merge pull request #1767 from libgit2/win32-bigger-utf8-buffer
Bigger buffer for utf-8 parsing in win32
|
|
9ccdb211
|
2013-08-13T10:55:37
|
|
fileops: stat() before open()ing in git_futils_readbuffer_updated()
This reverts refactoring done in 13224ea4aad9a1b3c9cc4c992ceaea9af623e047
that introduces a performance regression for NFS when reading files that
don't exist. open() forces a cache invalidation on NFS, while stat()ing a
file just uses the cache and is very quick.
To give a specific example, say you have a repo with a thousand packed
refs. Before this change, looking up every single one ould incur a thousand
slow open() calls. With this change, it's a thousand fast stat() calls.
|
|
0228a514
|
2013-08-13T10:20:25
|
|
Missed one path for path_as_utf8 type
|
|
ee065601
|
2013-08-13T09:53:56
|
|
Minor win32 fixes and improvements
This is just a bunch of small fixes that I noticed while looking
at the UTF8 and UTF16 path stuff. It fixes a slowdown in looking
for an empty directory (not exiting loop asap), makes the dir name
in the git__DIR structure be a GIT_FLEX_ARRAY to save an allocation,
and fixes some slightly odd assumptions in the cl_getenv helper.
|
|
841034a3
|
2013-08-13T09:45:56
|
|
Reintroduce type for UTF8 win32 path conversions
|
|
d4cff0cb
|
2013-08-13T09:40:32
|
|
Rename git__win32_path fns to git_win32_path
|
|
e12618b1
|
2013-08-13T09:22:53
|
|
Add some things to precompiled header
|
|
3869a171
|
2013-08-08T10:10:23
|
|
Fix mingw cross-compile build
|
|
3948e862
|
2013-08-13T09:38:37
|
|
windows: Fuck me
|
|
345b6307
|
2013-08-13T09:35:07
|
|
windows: Require order
|
|
53d712dc
|
2013-08-13T09:31:03
|
|
windows: Missing renames.
|
|
abf37327
|
2013-08-13T09:15:39
|
|
windows: Path conversion with better semantics
|
|
14da6182
|
2013-08-12T12:05:58
|
|
Merge pull request #1775 from libgit2/ssh-default-user
SSH username fixes
|
|
423e3b0c
|
2013-08-12T11:02:53
|
|
Update to clar 7bf638b80
|
|
d10de8bd
|
2013-08-12T12:07:33
|
|
CMake: finding libssh2 should be idempotent
With the current code, running 'cmake .' in an already-configured
directory causes the removal of ssh flags passed to the compiler,
making it impossible to build with ssh support but by removing CMake's
cache.
Remove the check for LIBSSH2_LIBRARY and let CMake do the right thing
wrt finding the library.
|
|
7affc2f7
|
2013-08-11T23:30:47
|
|
Include username in each credential type
Key-based authentication also needs an username, so include it in each
one.
Also stop assuming a default username of "git" in the ssh transport
which has no business making such a decision.
|
|
e54cfb9b
|
2013-08-12T11:50:27
|
|
odb: free object data when id is ambiguous
By the time we recognise this as an ambiguous id, the object's data
has been loaded into memory. Free it when returning EABMIGUOUS.
|
|
8ca09399
|
2013-08-11T17:28:33
|
|
Merge pull request #1768 from arrbee/issue-1766-gitignore-weirdness
Fix issue 1766 - bugs in managing ignore file lists
|
|
0e26fca1
|
2013-08-10T15:11:19
|
|
Make utf-8 source strings unlimited
|
|
aa0af729
|
2013-08-10T14:56:58
|
|
Fix 64-bit MSVC warnings
|
|
a25519ac
|
2013-08-09T15:30:50
|
|
Merge pull request #1770 from ethomson/index_fuzz
Fixes to safely reading the index
|
|
3bc3ed80
|
2013-08-09T10:06:23
|
|
Improve and comment git_ignore__pop_dir
This just cleans up the improved logic for popping ignore dirs
and documents why the complex behavior is needed.
|
|
ba8b8c04
|
2013-08-07T09:17:20
|
|
Improve building ignore file lists
The routines to push and pop ignore files while traversing a
directory had some issues. In particular, setting up the initial
list would sometimes push an ignore file before it ought to be
applied if the starting path was a directory containing an ignore
file. Also, the pop function was not always matching the right
part of the path and would fail to pop ignores from the list in
some cases.
This adds some tests that exercise a particular problematic case
and then fixes the problems that I could find related to this.
At some point, I'd like to isolate this ignore rule management
code and rewrite it, but that's a larger project and right now,
I'll opt to just try to fix the broken behaviors.
|
|
d1be9e4c
|
2013-08-09T11:39:38
|
|
Merge pull request #1773 from arrbee/fix-fnmatch-prefix
Revert PR #1462 and provide alternative fix
|
|
b7b77def
|
2013-08-09T11:20:49
|
|
Match against file with leading ! was too broad
|
|
4ba64794
|
2013-08-09T10:52:35
|
|
Revert PR #1462 and provide alternative fix
This rolls back the changes to fnmatch parsing from commit
2e40a60e847d6c128af23e24ea7a8efebd2427da except for the tests
that were added. Instead this adds couple of new flags that can
be passed in when attempting to parse an fnmatch pattern. Also,
this changes the pathspec match logic to special case matching a
filename with a '!' prefix against a negative pattern.
This fixes the build.
|
|
fbb6c0c8
|
2013-08-09T09:35:23
|
|
Merge pull request #1764 from ethomson/status_renames_from_rewrites
Add rename from rewrites to status
|
|
33d532dc
|
2013-08-09T09:32:06
|
|
Merge pull request #1462 from yorah/fix/libgit2sharp-issue-379
status: fix handling of filenames with special prefixes
|
|
7f7ebe13
|
2013-08-08T12:57:13
|
|
Merge pull request #1771 from nvloff/write_empty_config_value
config: allow setting empty string as value
|
|
c57f6682
|
2013-08-08T21:17:32
|
|
config: allow empty string as value
`git_config_set_string(config, "config.section", "")` fails when
escaping the value.
The buffer in `escape_value` is allocated without NULL-termination. And
in case of empty string 0 is passed for buffer size in `git_buf_grow`.
`git_buf_detach` returns NULL when the allocated size is 0 and that
leads to an error return in `GITERR_CHECK_ALLOC` called after
`escape_value`
The change in `config_file.c` was suggested by Russell Belfer <rb@github.com>
|
|
a1f69452
|
2013-08-08T12:36:11
|
|
git_strndup fix when OOM
|
|
57f31f05
|
2013-08-08T11:05:00
|
|
Fixes to safely reading the index
Avoid wrapping around extension size when reading, avoid walking off
the end of the buffer when reading names.
|
|
5e96f316
|
2013-08-08T08:54:38
|
|
Merge pull request #1738 from libgit2/diff-patch-content-size
Add API for getting at git_diff_patch->content_size
|
|
bf145a6a
|
2013-08-08T08:53:37
|
|
Merge pull request #1746 from libgit2/rename-detection-performance
Rename detection slow
|
|
aaefbdee
|
2013-08-08T08:48:57
|
|
Discriminate path-specific and general UTF-X conversions
|
|
46c37911
|
2013-08-08T07:50:59
|
|
Merge pull request #1638 from brodie/brodie/handle-duplicate-objects-across-packs
odb_pack: handle duplicate objects from different packs
|
|
d19bcb33
|
2013-06-06T14:49:14
|
|
odb_pack: handle duplicate objects from different packs
This is based on 24634c6fd02b2240e4a93fad70a08220f8fb793a.
This also corrects an issue with error codes being mixed up with the
number of found objects.
|
|
2c0128ee
|
2013-08-07T19:29:33
|
|
Rename git_win_str_utf* to git_win32_path_utf*
|
|
9c38f7a6
|
2013-08-07T13:22:41
|
|
Add typedefs for win32 utf-8 and utf-16 buffers
...and normalize the signatures of the two conversion functions.
|
|
75f98a95
|
2013-08-07T06:12:27
|
|
Add checkout test for long file name
|
|
c0c51693
|
2013-08-06T21:05:03
|
|
Add long-file-name branch to test repo
|
|
2984f319
|
2013-08-07T05:55:12
|
|
Don't use win32-only macro in test code
|
|
8c8a5490
|
2013-08-06T20:35:51
|
|
Add status test for long paths
|
|
c7d4904c
|
2013-08-07T10:38:41
|
|
Merge pull request #1769 from ethomson/configparse
Parse config headers with quoted quotes
|
|
2d9f5b9f
|
2013-08-07T11:11:55
|
|
Parse config headers with quoted quotes
Parse config headers that have the last quote on the
line quoted instead of walking off the end.
|
|
c5780abb
|
2013-08-05T21:58:48
|
|
Merge pull request #1765 from arrbee/ambiguous-oids
More tests for ambiguous OIDs across packs
|
|
437224b4
|
2013-08-05T21:46:32
|
|
More tests for ambiguous OIDs across packs
The test coverage for ambiguous OIDs was pretty thin. This adds
a bunch of new objects both in packs, across packs, and loose that
match to 8 characters so that we can test various cases of
ambiguous lookups.
|
|
ee77378d
|
2013-08-05T13:33:44
|
|
Merge pull request #1763 from nvloff/nameless_submodule_segfault
submodule: check alloc and name presence
|
|
e38f0d69
|
2013-08-05T14:06:41
|
|
Add rename from rewrites to status
In git_diff_paired_foreach, temporarily resort the
index->workdir diff list by index path so that we can
track a rename in the workdir from head->index->workdir.
|
|
f1af935b
|
2013-08-05T21:53:09
|
|
submodule: check alloc and name presense
|
|
d8563619
|
2013-08-05T11:41:39
|
|
Split UTF-16 and UTF-8 buffer sizes for win32
Also fixed up call-sites to use the correct buffer sizes, especially
when converting to utf-8.
|
|
9b7d02ff
|
2013-08-05T10:53:39
|
|
Update submodule documentation
Fixes #1762
|
|
e8242022
|
2013-08-05T09:59:02
|
|
Move slow tests to "stress" clar module
Create a new section of clar tests "stress" that will default to
being off where we can put slow tests that push the library for
performance testing purposes.
|
|
31b42eac
|
2013-08-04T14:09:44
|
|
Restore commented out tests
This restores the commented out tests (even though they're slow)
and fixes some trailing whitespace.
|
|
0a38eb42
|
2013-07-31T22:36:50
|
|
Rename test for rename from rewrite
A rename test that illustrates a rename from a rewrite.
|
|
7edb74d3
|
2013-08-04T14:06:13
|
|
Update rename src map for any split src
When using a rename source that is actually a to-be-split record,
we have to update the best-fit mapping data in both the case where
the target is also a split record and the case where the target
is a simple added record. Before this commit, we were only doing
the update when the target was itself a split record (and even in
that case, the test was slightly wrong).
|
|
a42c2a8c
|
2013-07-31T21:51:50
|
|
Rename test for multiple similar matches
A rename test that illustrates a source matching multiple targets.
|
|
d730d3f4
|
2013-07-31T16:40:42
|
|
Major rename detection changes
After doing further profiling, I found that a lot of time was
being spent attempting to insert hashes into the file hash
signature when using the rolling hash because the rolling hash
approach generates a hash per byte of the file instead of one
per run/line of data.
To optimize this, I decided to convert back to a run-based file
signature algorithm which would be more like core Git.
After changing this, a number of the existing tests started to
fail. In some cases, this appears to have been because the test
was coded to be too specific to the particular results of the file
similarity metric and in some cases there appear to have been bugs
in the core rename detection code where only by the coincidence
of the file similarity scoring were the expected results being
generated.
This renames all the variables in the core rename detection code
to be more consistent and hopefully easier to follow which made it
a bit easier to reason about the behavior of that code and fix the
problems that I was seeing. I think it's in better shape now.
There are a couple of tests now that attempt to stress test the
rename detection code and they are quite slow. Most of the time
is spent setting up the test data on disk and in the index. When
we roll out performance improvements for index insertion, it
should also speed up these tests I hope.
|
|
1cd0acf6
|
2013-07-31T10:43:56
|
|
Merge pull request #1748 from arthurschreiber/patch-1
Allow Makefile.embed to be used when cross-compiling
|
|
a6837b5f
|
2013-07-31T19:13:35
|
|
When building with MINGW, specify `__USE_MINGW_ANSI_STDIO`.
This option is already present in the CMake config, but was missing from `Makefile.embed` and would cause all kinds of weird failures when compiling rugged on windows with the ruby devkit.
|
|
94d12ffa
|
2013-07-28T08:39:41
|
|
Merge pull request #1755 from csware/double-close
Fix possible double close
|
|
a873449f
|
2013-07-27T17:00:21
|
|
Merge pull request #1753 from 13ren/log-bugfix
Fix -n bug; default to all ancestors
|
|
f5254d78
|
2013-07-27T20:15:06
|
|
Fix possible double close
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
c3ae0473
|
2013-07-27T05:31:28
|
|
Fix -n bug; default to all ancestors
|
|
8dd8aa48
|
2013-07-26T10:28:57
|
|
Fix some warnings
|
|
a16e4172
|
2013-07-25T12:27:39
|
|
Fix rename detection to use actual blob size
The size data in the index may not reflect the actual size of the
blob data from the ODB when content filtering comes into play.
This commit fixes rename detection to use the actual blob size when
calculating data signatures instead of the value from the index.
Because of a misunderstanding on my part, I first converted the
git_index_add_bypath API to use the post-filtered blob data size
in creating the index entry. I backed that change out, but I
kept the overall refactoring of that routine and the new internal
git_blob__create_from_paths API because it eliminates an extra
stat() call from the code that adds a file to the index.
The existing tests actually cover this code path, at least when
running on Windows, so at this point I'm not adding new tests to
cover the changes.
|
|
d477a9ab
|
2013-07-25T06:44:56
|
|
Merge pull request #1749 from csware/handle-fixes
Close p->mwf.fd only if necessary
|
|
3a2d48d5
|
2013-07-25T14:54:19
|
|
Close p->mwf.fd only if necessary
This fixes a regression introduced in revision 9d2f841a5d39fc25ce722a3904f6ebc9aa112222.
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
effdbeb3
|
2013-07-24T17:48:37
|
|
Make rename detection file size fix better
The previous fix for checking file sizes with rename detection
always loads the blob. In this version, if the odb backend can
get the object header without loading the whole thing into memory,
then we'll just use that, so that we can eliminate possible rename
sources & targets without loading them.
|
|
a5140f4d
|
2013-07-24T17:11:49
|
|
Fix rename detection for tree-to-tree diffs
The performance improvements I introduced for rename detection
were not able to run successfully for tree-to-tree diffs because
the blob size was not known early enough and so the file signature
always had to be calculated nonetheless.
This change separates loading blobs into memory from calculating
the signature. I can't avoid having to load the large blobs into
memory, but by moving it forward, I'm able to avoid the signature
calculation if the blob won't come into play for renames.
|
|
847c6793
|
2013-07-25T00:26:51
|
|
Allow Makefile.embed to be used when cross-compiling
This allows libgit2 to be cross-compiled (e.g. when building native rugged binaries for windows from Linux or OS X).
```
CROSS_COMPILE=i686-w64-mingw32 make -f Makefile.embed
```
|
|
f5c4d022
|
2013-07-24T13:44:35
|
|
Fix incorrect comment
|
|
397357a0
|
2013-07-24T13:12:00
|
|
Add rename test that used to be really slow
Before the optimization commits, this test used to take about 20
seconds to run on my machine. Afterwards, there is still a couple
seconds of data setup, but the actual diff and rename detection
runs in a fraction of a second.
|
|
427cc255
|
2013-07-24T13:11:11
|
|
Use local variables in hash calc to avoid aliasing
|
|
18e9efc4
|
2013-07-24T13:10:16
|
|
Don't check rename if file size difference is huge
|
|
69c66b55
|
2013-07-24T13:09:33
|
|
Don't do text diff unless content will be used
|
|
39a1a662
|
2013-07-24T13:09:07
|
|
Don't unload diff data unless loaded
|
|
eb1c1707
|
2013-07-23T15:45:58
|
|
Restore GIT_DIFF_LINE_BINARY usage
This restores the usage of GIT_DIFF_LINE_BINARY for the diff
output line that reads "Binary files x and y differ" so that it
can be optionally colorized independently of the file header.
|
|
df40f398
|
2013-07-23T15:18:28
|
|
Make compact output more like core Git
|
|
197b8966
|
2013-07-23T14:34:31
|
|
Add hunk/file headers to git_diff_patch_size
This allows git_diff_patch_size to account for hunk headers and
file headers in the returned size. This required some refactoring
of the code that is used to print file headers so that it could be
invoked by the git_diff_patch_size API.
Also this increases the test coverage and fixes an off-by-one bug
in the size calculation when newline changes happen at the end of
the file.
|
|
cdbcb8dd
|
2013-07-23T09:43:07
|
|
Merge pull request #1745 from libgit2/doc-fixes
Doc fixes
|
|
64061d4a
|
2013-07-23T10:51:14
|
|
remote: fix git_remote_download() documentation
The description of what the function does hasn't been true for quite a
while. Change it to reflect the way it currently works.
While here, remove an even older comment about missing features that
have been implemented.
|
|
c05a55b0
|
2013-07-23T09:40:19
|
|
Clean up some documentation
clang's docparser highlighted these.
|
|
e5bdf829
|
2013-07-22T23:59:08
|
|
Merge pull request #1732 from libgit2/revwalk-glob-should-ignore-invalid
Invalid refs on disk cause revwalk globbing to fail
|