|
d4b747c1
|
2013-02-21T16:44:44
|
|
Add diff rename tests with partial similarity
This adds some new tests that actually exercise the similarity
metric between files to detect renames, copies, and split modified
files that are too heavily modified.
There is still more testing to do - these tests are just partially
covering the cases.
There is also one bug fix in this where a change set with only
MODIFY being broken into ADD/DELETE (due to low self-similarity)
without any additional RENAMED entries would end up not processing
the split requests (because the num_rewrites counter got reset).
|
|
960a04dd
|
2013-02-21T12:40:33
|
|
Initial integration of similarity metric to diff
This is the initial integration of the similarity metric into
the `git_diff_find_similar()` code path. The existing tests all
pass, but the new functionality isn't currently well tested. The
integration does go through the pluggable metric interface, so it
should be possible to drop in an alternative to the internal
metric that libgit2 implements.
This comes along with a behavior change for an existing interface;
namely, passing two NULLs to git_diff_blobs (or passing NULLs to
git_diff_blob_to_buffer) will now call the file_cb parameter zero
times instead of one time. I know it's strange that that change
is paired with this other change, but it emerged from some
initialization changes that I ended up making.
|
|
71a3d27e
|
2013-02-08T10:06:47
|
|
Replace diff delta binary with flags
Previously the git_diff_delta recorded if the delta was binary.
This replaces that (with no net change in structure size) with
a full set of flags. The flag values that were already in use
for individual git_diff_file objects are reused for the delta
flags, too (along with renaming those flags to make it clear that
they are used more generally).
This (a) makes things somewhat more consistent (because I was
using a -1 value in the "boolean" binary field to indicate unset,
whereas now I can just use the flags that are easier to understand),
and (b) will make it easier for me to add some additional flags to
the delta object in the future, such as marking the results of a
copy/rename detection or other deltas that might want a special
indicator.
While making this change, I officially moved some of the flags that
were internal only into the private diff header.
This also allowed me to remove a gross hack in rename/copy detect
code where I was overwriting the status field with an internal
value.
|
|
9bc8be3d
|
2013-02-19T10:25:41
|
|
Refine pluggable similarity API
This plugs in the three basic similarity strategies for handling
whitespace via internal use of the pluggable API. In so doing, I
realized that the use of git_buf in the hashsig API was not needed
and actually just made it harder to use, so I tweaked that API as
well.
Note that the similarity metric is still not hooked up in the
find_similarity code - this is just setting out the function that
will be used.
|
|
5e5848eb
|
2013-02-14T17:25:10
|
|
Change similarity metric to sampled hashes
This moves the similarity metric code out of buf_text and into a
new file. Also, this implements a different approach to similarity
measurement based on a Rabin-Karp rolling hash where we only keep
the top 100 and bottom 100 hashes. In theory, that should be
sufficient samples to given a fairly accurate measurement while
limiting the amount of data we keep for file signatures no matter
how large the file is.
|
|
99ba8f23
|
2013-01-22T15:27:08
|
|
wip: adding metric to diff
|
|
f3327cac
|
2013-01-13T10:06:09
|
|
Some similarity metric adjustments
This makes the text similarity metric treat \r as equivalent
to \n and makes it skip whitespace immediately following a line
terminator, so line indentation will have less effect on the
difference measurement (and so \r\n will be treated as just a
single line terminator).
This also separates the text and binary hash calculators into
two separate functions instead of have more if statements inside
the loop. This should make it easier to have more differentiated
heuristics in the future if we so wish.
|
|
9c454b00
|
2013-01-11T22:13:02
|
|
Initial implementation of similarity scoring algo
This adds a new `git_buf_text_hashsig` type and functions to
generate these hash signatures and compare them to give a
similarity score. This can be plugged into diff similarity
scoring.
|
|
6ec37f72
|
2013-02-20T11:42:15
|
|
Merge pull request #1350 from arrbee/fix-1292
Add explicit entrycount to tree builder
|
|
e2237179
|
2013-02-20T10:58:56
|
|
Some code cleanups in tree.c
This replaces most of the explicit vector iteration with calls
to git_vector_foreach, adds in some git__free and giterr_clear
calls to clean up during some error paths, and a couple of
other code simplifications.
|
|
93ab370b
|
2013-02-20T10:50:01
|
|
Store treebuilder length separately from entries vec
The treebuilder entries vector flags removed items which means
we can't rely on the entries vector length to accurately get the
number of entries. This adds an entrycount value and maintains it
while updating the treebuilder entries.
|
|
f7511c2c
|
2013-02-20T10:19:58
|
|
Merge pull request #1348 from libgit2/signatures-2
Simplify signature parsing
|
|
cf80993a
|
2013-02-20T18:46:10
|
|
signature: Small cleanup
|
|
41051e3f
|
2013-02-20T17:09:51
|
|
signature: Shut up MSVC, you silly goose
|
|
c51880ee
|
2013-02-20T17:03:18
|
|
Simplify signature parsing
|
|
56543a60
|
2013-02-15T16:02:45
|
|
Clear up warnings from cppcheck
The cppcheck static analyzer generates warnings for a bunch of
places in the libgit2 code base. All the ones fixed in this
commit are actually false positives, but I've reorganized the
code to hopefully make it easier for static analysis tools to
correctly understand the structure. I wouldn't do this if I
felt like it was making the code harder to read or worse for
humans, but in this case, these fixes don't seem too bad and will
hopefully make it easier for better analysis tools to get at any
real issues.
|
|
71d62d39
|
2013-02-15T16:01:31
|
|
Fix memory leak in p_getaddrinfo on Amiga
If gethostbyname() fails on platforms with NO_ADDRINFO, the code
leaks the struct addrinfo that was allocated. This fixes that
(and a number of code formatting issues in that area of code in
src/posix.c).
|
|
a9e1339c
|
2013-02-14T08:12:05
|
|
Fix a leak when canceling a network operation
|
|
2fe67aeb
|
2013-02-14T08:46:58
|
|
Fix a git_filebuf leak (fixes Win32 clone::can_cancel)
|
|
5f633e91
|
2013-02-13T18:12:51
|
|
Change git2.rc to identify git.dll as VOS_NT_WINDOWS32
|
|
6a0ffe84
|
2013-02-12T10:50:55
|
|
Merge pull request #1333 from phkelley/push_options
Add git_push_options, to set packbuilder parallelism
|
|
fbe67de9
|
2013-02-12T10:16:30
|
|
Merge pull request #1246 from arrbee/fix-force-text-for-diff-blobs
Add FORCE_TEXT check into git_diff_blobs code path
|
|
9c258af0
|
2013-02-12T10:13:56
|
|
Merge pull request #1316 from ben/clone-cancel
Allow network operations to cancel
|
|
ed55fd8b
|
2013-02-11T13:29:07
|
|
Reorganize FORCE_TEXT diff flag checks
|
|
c2907575
|
2013-01-15T09:24:17
|
|
Add FORCE_TEXT check into git_diff_blobs code path
`git_diff_blobs` and `git_diff_blob_to_buffer` skip the step
where we check file attributes because they don't have a filename
associated with the data. Unfortunately, this meant they were also
skipping the check for the GIT_DIFF_FORCE_TEXT option and so you
could not force a diff of an apparent binary file. This adds the
force text check into their code path.
|
|
2bca5b67
|
2013-02-07T23:44:18
|
|
remote: Introduce git_remote_is_valid_name()
Fix libgit2/libgit2sharp#318
|
|
4d811c3b
|
2013-02-07T23:40:10
|
|
refs: No component of a refname can end with '.lock'
|
|
390a3c81
|
2013-02-11T11:44:00
|
|
Merge pull request #1190 from nulltoken/topic/reset-paths
reset: Allow the selective reset of pathspecs
|
|
e026cfee
|
2013-02-11T09:12:39
|
|
Merge pull request #1323 from jamill/resolve_remote
Resolve a remote branch's remote
|
|
db4bb415
|
2013-02-07T14:53:52
|
|
Teach refspec to transform destination reference to source reference
|
|
2e3e8c88
|
2013-02-08T11:05:47
|
|
Teach remote branch to return its remote
|
|
b8b897bb
|
2013-02-11T08:28:53
|
|
Add git_push_options, to set packbuilder parallelism
|
|
8c29dca6
|
2013-02-11T09:25:57
|
|
Fix some incorrect MSVC #ifdef's. Fixes #1305
|
|
a150cc87
|
2013-02-10T18:16:10
|
|
Fix a bug introduced in df93a681 'Merge the push...'
|
|
a9d081e5
|
2013-02-10T19:36:39
|
|
Fix -Wmaybe-uninitialized warning
|
|
df93a681
|
2013-02-08T15:00:08
|
|
Merge the push report into the refs to avoid a 3rd network call
|
|
ff9df883
|
2013-02-08T14:27:21
|
|
Fix Windows symlinks
|
|
f3e49210
|
2013-02-08T10:02:37
|
|
Merge pull request #1249 from yorah/topic/diff-notify-unmatched-pathspecs
diff: Add a callback to notify of diffed files
|
|
5b62eb7d
|
2013-02-08T02:50:23
|
|
Merge pull request #1325 from SHyx0rmZ/fix-windows-symlinks
Fix Windows symlinks
|
|
7672c8c7
|
2013-02-08T11:29:23
|
|
Moved braces to conform to code style
|
|
64012fdb
|
2013-02-08T03:24:45
|
|
Replace LoadLibrary with GetModuleHandle, since kernel32 is loaded by default
As requested
|
|
a49e5bed
|
2013-02-08T01:26:04
|
|
Replace call to strnlen with call to strlen
|
|
f88885e3
|
2013-02-08T01:10:03
|
|
Include <string.h>
|
|
3b5e44ae
|
2013-02-08T00:50:20
|
|
Fix call to readlink
|
|
0d64ba48
|
2013-01-25T17:35:46
|
|
diff: add a notify callback to `git_diff__from_iterators`
The callback will be called for each file, just before the `git_delta_t` gets inserted into the diff list.
When the callback:
- returns < 0, the diff process will be aborted
- returns > 0, the delta will not be inserted into the diff list, but the diff process continues
- returns 0, the delta is inserted into the diff list, and the diff process continues
|
|
943700ec
|
2013-01-18T16:37:13
|
|
Return the matched pathspec pattern in `git_pathspec_match_path`
Instead of returning directly the pattern as the return value, I used an
out parameter, because the function also tests if the passed pathspecs
vector is empty. If yes, it considers that the path "matches", but in
that case there is no matched pattern per se.
|
|
94ed23f8
|
2013-02-07T01:41:20
|
|
Call p_readlink to determine symlink size
|
|
f393d4e8
|
2013-02-06T13:07:56
|
|
Clone: fetch all tags
|
|
ea57f66b
|
2013-02-06T11:02:29
|
|
Expect standard error code from internal calls
|
|
def60ea4
|
2013-02-05T13:14:48
|
|
Allow all non-zero returns to cancel transfers
|
|
3ad05221
|
2013-02-05T16:52:56
|
|
Fix MSVC compilation warnings
Fix #1308
|
|
a0c34c94
|
2013-01-20T13:27:28
|
|
reset: Introduce git_reset_default()
|
|
fe95ac1b
|
2013-02-05T10:59:58
|
|
Allow progress callback to cancel fetch
This works by having the indexer watch the return
code of the callback, so will only take effect
on object boundaries.
|
|
3cf58e66
|
2013-01-15T16:12:12
|
|
index: Fix indentations
|
|
de81aee3
|
2013-02-04T14:49:28
|
|
Merge pull request #1298 from ben/user-at
Handle "user@" prefix for credentials partially included in URLs
|
|
630146bd
|
2013-02-04T13:52:18
|
|
Address feedback
|
|
0e8e5a61
|
2013-02-03T11:44:26
|
|
revparse: Lookup sha before branch
|
|
545b479a
|
2013-02-02T17:36:20
|
|
revparse: Lookup branch before described tag
Fix #1306
|
|
15760c59
|
2013-02-01T19:21:55
|
|
Use malloc rather than calloc
|
|
e9631660
|
2013-02-01T15:57:31
|
|
Merge pull request #1303 from csware/win32_consistent_error_encoding
Win32: Make sure error messages are consistently UTF-8 encoded
|
|
c70455c7
|
2013-02-01T22:53:51
|
|
Deduplicate FormatMessage UTF-16 to UTF-8 conversion code
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
bd25a302
|
2013-02-01T22:22:26
|
|
Improved error handling
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
db37d3de
|
2013-02-01T15:37:45
|
|
Merge pull request #1299 from csware/support_local_msysgit_install
Support local msysgit installations
|
|
89ad1c57
|
2013-02-01T22:14:52
|
|
Get utf8_size from WideCharToMultiByte instead of guessing it
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
b0dc81f0
|
2013-02-01T16:17:34
|
|
Win32: Make sure error messages are consistently UTF-8 encoded
W/o this a libgit2 error message could have a mixed encoding:
e.g. a filename in UTF-8 combined with a native Windows error message
encoded with the local code page.
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
91f13a18
|
2013-02-01T14:23:26
|
|
Try harder to find global config file
|
|
c4beee76
|
2013-02-01T10:00:55
|
|
Introduce git__substrdup
|
|
329eee33
|
2013-02-01T09:41:50
|
|
Merge pull request #1286 from lznuaa/master
Fix clone fail if repo head detached
|
|
45792c92
|
2013-02-01T10:32:05
|
|
Stick to coding style: Move up braces
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
8c36a3cd
|
2013-01-31T15:24:59
|
|
Remove double-free segfaults
|
|
016179d6
|
2013-01-31T14:54:58
|
|
WinHttp: use cred in url if provided
|
|
54ffc1f7
|
2013-01-31T14:41:01
|
|
HTTP: use creds in url if available
|
|
cf7038a6
|
2013-01-31T14:04:21
|
|
Enhance url parsing to include passwords
|
|
e5ef0f18
|
2013-01-31T20:23:30
|
|
refs: handle ALLOW_ONELEVEL normalization with leading slash
A leading slash confuses the name normalization code when the flags
include ALLOW_ONELEVEL. Catch this case in particular to avoid
triggering an assertion in the uppercase check which expects us not to
pass it an empty string.
The existing tests don't catch this as they simply use the NORMAL
flag.
This fixes #1300.
|
|
c55378fc
|
2013-01-31T17:43:59
|
|
Detect msysgit installation of users without admin rights
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
ec56af08
|
2013-01-31T17:37:20
|
|
Refactored: Move msysgit registry detection to it's own function
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
7602cb7c
|
2013-01-31T10:44:57
|
|
Add user-from-url param to auth callback
|
|
2234b2b0
|
2013-01-30T19:03:58
|
|
Stash username from url (but don't use it yet)
|
|
5f10853e
|
2013-01-30T18:50:31
|
|
Skip "user@" when finding hostname in url
|
|
f1e2735c
|
2013-01-30T11:10:39
|
|
Add helper for diff line stats
This adds a `git_diff_patch_line_stats()` API that gets the total
number of adds, deletes, and context lines in a patch. This will
make it a little easier to emulate `git diff --stat` and the like.
Right now, this relies on generating the `git_diff_patch` object,
which is a pretty heavyweight way to get stat information. At
some future point, it would probably be nice to be able to get
this information without allocating the entire `git_diff_patch`,
but that's a much larger project.
|
|
d2041216
|
2013-01-29T13:57:53
|
|
Merge pull request #1296 from arrbee/stricter-config-name-checks
Stricter config entry name validation
|
|
ea53203c
|
2013-01-29T13:54:30
|
|
Merge pull request #1295 from carlosmn/obsd
Fix p_realpath on OpenBSD
|
|
4657fc1c
|
2013-01-29T13:54:08
|
|
Merge pull request #1285 from phkelley/vector
Vector improvements and their fallout
|
|
590365db
|
2013-01-29T16:49:12
|
|
Now with no multiply
|
|
1e7799e8
|
2013-01-29T12:15:18
|
|
Implement config key validation rules
This is a new implementation of core git's config key checking
rules that prevents non-alphanumeric characters (and '-') for
the top-level section and key names inside of config files.
This also validates the target section name when renaming
sections.
|
|
67fcac56
|
2013-01-29T18:00:32
|
|
Fix p_realpath on OpenBSD
OpenBSD's realpath(3) doesn't require the last part of the path to
exist. Override p_realpath in this OS to bring it in line with the
library's assumptions.
|
|
5fb98206
|
2013-01-28T15:56:04
|
|
Added git_treebuilder_entrycount
Conflicts:
src/tree.c
|
|
11d9f6b3
|
2013-01-27T14:17:07
|
|
Vector improvements and their fallout
|
|
28c3beaa
|
2013-01-27T15:02:06
|
|
Fix fail clone local repo which head detatched
Set head detach if can't found branch after download
Signed-off-by: Frank Li <lznuaa@gmail.com>
|
|
88183c19
|
2013-01-27T13:36:37
|
|
Fix fail clone local repository because can't found object
avoid use object which is already free
Signed-off-by: Frank Li <lznuaa@gmail.com>
|
|
aa3bf89d
|
2013-01-26T15:12:53
|
|
Fix a mutex leak in pack.c
|
|
cfc39f50
|
2013-01-25T22:43:52
|
|
Fix 3 memory leaks
|
|
ae386101
|
2013-01-25T12:02:21
|
|
Merge pull request #1279 from carlosmn/config-trailing-backslash
config: support trailing backslashes
|
|
9f35754a
|
2013-01-25T13:29:28
|
|
config: support trailing backslashes
Check whether the backslash at the end of the line is being escaped or
not so as not to consider it a continuation marker when it's e.g. a
Windows-style path.
|
|
c5193e3c
|
2013-01-25T12:00:27
|
|
clone: Prevent segfault upon faulted remote creation
|
|
c253056d
|
2013-01-24T20:44:17
|
|
Added git_branch_name().
This is a convenience function to get the branch name of a given
ref. The returned branch name is compatible with the name that can
be supplied e.g. to git_branch_lookup(). That is, the prefixes
"refs/heads" or "refs/remotes" are omitted.
Also added a new test for testing the new function.
|
|
5425097f
|
2013-01-24T18:53:08
|
|
index: Speed up loading a tree into the index
The index is empty; repeated tree entries cannot collide.
cc github/gitrpc#83
|
|
3fbd7485
|
2013-01-24T11:03:11
|
|
Merge pull request #1250 from jamill/push_update_tips
Update remote tips on push
|
|
a0f777c8
|
2013-01-23T23:44:34
|
|
opts: Add getters too
|
|
b101fbf9
|
2013-01-22T18:55:56
|
|
Merge pull request #1271 from libgit2/global-settings
Global options setter
|