|
c05cd792
|
2014-01-22T17:51:32
|
|
Drop git_patch_to_str
It's hard or even impossible to correctly free the string buffer
allocated by git_patch_to_str in some circumstances. Drop the function
so people have to use git_patch_to_buf instead - git_buf has a dedicated
destructor.
|
|
0b28217b
|
2014-01-15T12:51:31
|
|
refs: remove the _with_log differentiation
Any well-behaved program should write a descriptive message to the
reflog whenever it updates a reference. Let's make this more prominent
by removing the version without the reflog parameters.
|
|
11bd7a03
|
2013-12-12T11:14:51
|
|
More tests of canceling from callbacks
This covers diff print, push, and ref foreach. This also has a
fix for a small memory leak in the push tests.
|
|
8b22d862
|
2013-12-11T11:55:00
|
|
More improvements to callback return value tests
This time actually checking return values in diff notify tests and
actually testing callbacks for the index all-all/update-all/etc
functions.
|
|
25e0b157
|
2013-12-06T15:07:57
|
|
Remove converting user error to GIT_EUSER
This changes the behavior of callbacks so that the callback error
code is not converted into GIT_EUSER and instead we propagate the
return value through to the caller. Instead of using the
giterr_capture and giterr_restore functions, we now rely on all
functions to pass back the return value from a callback.
To avoid having a return value with no error message, the user
can call the public giterr_set_str or some such function to set
an error message. There is a new helper 'giterr_set_callback'
that functions can invoke after making a callback which ensures
that some error message was set in case the callback did not set
one.
In places where the sign of the callback return value is
meaningful (e.g. positive to skip, negative to abort), only the
negative values are returned back to the caller, obviously, since
the other values allow for continuing the loop.
The hardest parts of this were in the checkout code where positive
return values were overloaded as meaningful values for checkout.
I fixed this by adding an output parameter to many of the internal
checkout functions and removing the overload. This added some
code, but it is probably a better implementation.
There is some funkiness in the network code where user provided
callbacks could be returning a positive or a negative value and
we want to rely on that to cancel the loop. There are still a
couple places where an user error might get turned into GIT_EUSER
there, I think, though none exercised by the tests.
|
|
7fb4147f
|
2013-12-06T13:38:59
|
|
Don't clobber whitespace settings
|
|
628e92cd
|
2013-12-05T14:47:04
|
|
Don't use weird return codes
|
|
c56c6d69
|
2013-12-05T14:13:46
|
|
Implement GIT_DIFF_FIND_BY_CONFIG
|
|
f62c174d
|
2013-12-02T13:49:58
|
|
GIT_DIFF_FIND_REMOVE_UNMODIFIED sounds better
|
|
97ad85b8
|
2013-12-02T13:30:05
|
|
Add GIT_DIFF_FIND_DELETE_UNMODIFIED flag
When doing copy detection, it is often necessary to include
UNMODIFIED records in the git_diff so they are available as source
records for GIT_DIFF_FIND_COPIES_FROM_UNMODIFIED. Yet in the final
diff, often you will not want to have these UNMODIFIED records.
This adds a flag which marks these UNMODIFIED records for deletion
from the diff list so they will be removed after the rename detect
phase is over.
|
|
2123a17f
|
2013-12-02T13:27:06
|
|
Fix bug making split deltas a COPIED targets
When FIND_COPIES is used in combination with BREAK_REWRITES for
rename detection, there was a bug where the split MODIFIED delta
was only used as a target for RENAME records and not for COPIED
records. This fixes that, converting the split into a pair of
DELETED and COPIED deltas when that circumstance arises.
|
|
d8e7ffc2
|
2013-11-18T14:03:25
|
|
Add content offset to git_diff_line
For additions and deletions, external consumers like subversion
can make use of the content offset to generate diffs in their
proprietary formats.
|
|
17820381
|
2013-11-14T14:05:52
|
|
Rename tests-clar to tests
|