Edward Thomson
1a79cd959b
patch: show copy information for identical copies
...
When showing copy information because we are duplicating contents,
for example, when performing a `diff --find-copies-harder -M100 -B100`,
then show copy from/to lines in a patch, and do not show context.
Ensure that we can also parse such patches.
2016-06-25 23:08:30 -04:00
Edward Thomson
9eb1938134
patch::parse: test diff with exact rename and copy
2016-06-25 23:08:30 -04:00
Edward Thomson
8a670dc4c0
patch::parse: test diff with simple rename
2016-06-25 23:08:28 -04:00
Edward Thomson
e774d5af76
diff::parse tests: test parsing a diff
...
Test that we can create a diff file, then parse the results and
that the two are identical in-memory.
2016-06-25 23:08:04 -04:00
Edward Thomson
7166bb1665
introduce git_diff_from_buffer
to parse diffs
...
Parse diff files into a `git_diff` structure.
2016-05-26 13:01:09 -05:00
Edward Thomson
94e488a056
patch: differentiate not found and invalid patches
2016-05-26 13:01:08 -05:00
Edward Thomson
17572f67ed
git_patch_parse_ctx: refcount the context
2016-05-26 13:01:08 -05:00
Edward Thomson
9be638ecf0
git_diff_generated: abstract generated diffs
2016-05-26 13:01:08 -05:00
Edward Thomson
53571f2f0c
vector: more sensible names for grow_at
/shrink_at
2016-05-26 13:01:08 -05:00
Edward Thomson
440e3bae10
patch: git_patch_from_patchfile
-> git_patch_from_buffer
2016-05-26 13:01:08 -05:00
Edward Thomson
e564fc65b5
git_vector_grow/shrink: correct shrink, and tests
2016-05-26 13:01:07 -05:00
Edward Thomson
0ff723cc90
apply: test postimages that grow/shrink original
...
Test with some postimages that actually grow/shrink from the
original, adding new lines or removing them. (Also do so without
context to ensure that we can add/remove from a non-zero part of
the line vector.)
2016-05-26 13:01:07 -05:00
Edward Thomson
8cb27223b8
git_buf_quote/unquote: handle > \177
...
Parse values up to and including `\377` (`0xff`) when unquoting.
Print octal values as an unsigned char when quoting, lest `printf`
think we're talking about negatives.
2016-05-26 13:01:07 -05:00
Edward Thomson
6278fbc5dd
patch parsing: squash some memory leaks
2016-05-26 13:01:07 -05:00
Edward Thomson
d3d95d5ae2
git_buf_quote: quote ugly characters
2016-05-26 13:01:06 -05:00
Edward Thomson
82175084e1
Introduce git_patch_options, handle prefixes
...
Handle prefixes (in terms of number of path components) for patch
parsing.
2016-05-26 13:01:06 -05:00
Edward Thomson
2f3b922ff1
patch_parse: test roundtrip patch parsing -> print
2016-05-26 13:01:05 -05:00
Edward Thomson
42b3442823
patch_parse: ensure we can parse a patch
2016-05-26 13:01:05 -05:00
Edward Thomson
8bca8b9e03
apply: move patch data to patch_common.h
2016-05-26 13:01:04 -05:00
Edward Thomson
804d5fe9f5
patch: abstract patches into diff'ed and parsed
...
Patches can now come from a variety of sources - either internally
generated (from diffing two commits) or as the results of parsing
some external data.
2016-05-26 13:01:04 -05:00
Edward Thomson
8d2eef27ff
patch parsing: ensure empty patches are illegal
2016-05-26 13:01:04 -05:00
Edward Thomson
5d17d72621
patch parsing: parse binary patch files
2016-05-26 13:01:04 -05:00
Edward Thomson
b8dc2fdb92
zstream: fail when asked to inflate garbage
...
When we are provided some input buffer (with a length) to inflate,
and it contains more data than simply the deflated data, fail.
zlib will helpfully tell us when it is done reading (via Z_STREAM_END),
so if there is data leftover in the input buffer, fail lest we
continually try to inflate it.
2016-05-26 13:01:04 -05:00
Edward Thomson
5b78dbdbf3
git_buf: decode base85 inputs
2016-05-26 13:01:04 -05:00
Edward Thomson
3149ff6f66
patch application: apply binary patches
...
Handle the application of binary patches. Include tests that
produce a binary patch (an in-memory `git_patch` object),
then enusre that the patch applies correctly.
2016-05-26 13:01:03 -05:00
Edward Thomson
b88f1713d0
zstream: offer inflating, git_zstream_inflatebuf
...
Introduce `git_zstream_inflatebuf` for simple uses.
2016-05-26 13:01:03 -05:00
Edward Thomson
0004386f29
apply: handle empty patches
...
When a patch is empty, simply copy the source into the destination.
2016-05-26 11:36:11 -05:00
Edward Thomson
d34f68261e
Patch parsing from patch files
2016-05-26 11:36:11 -05:00
Edward Thomson
7cb904ba44
Introduce git_apply_patch
...
The beginnings of patch application from an existing (diff-created)
git_patch object: applies the hunks of a git_patch to a buffer.
2016-05-26 11:36:11 -05:00
Edward Thomson
e102daa4f6
Merge pull request #3798 from mmuman/stat-test-fix
...
test: Fix stat() test to mask out unwanted bits
2016-05-26 10:25:40 -05:00
Jason Haslam
afab1fff01
checkout: handle dirty submodules correctly
...
Don't generate conflicts when checking out a modified submodule and the
submodule is dirty or modified in the workdir.
2016-05-26 01:11:34 -05:00
François Revol
407f2e9fbd
test: Fix stat() test to mask out unwanted bits
...
Haiku and Hurd both pass extra bits in struct stat::st_mode.
2016-05-24 20:01:49 +02:00
Carlos Martín Nieto
a2cb47130e
tree: handle removal of all entries in the updater
...
When we remove all entries in a tree, we should remove that tree from
its parent rather than include the empty tree.
2016-05-24 14:30:43 +02:00
Carlos Martín Nieto
5341230536
tree: plug leaks in the tree updater
2016-05-19 15:29:53 +02:00
Carlos Martín Nieto
922496562b
tree: use testrepo2 for the tree updater tests
...
This gives us trees with subdirectories, which the new test needs.
2016-05-19 15:21:26 +02:00
Carlos Martín Nieto
9464f9ebc1
Introduce a function to create a tree based on a different one
...
Instead of going through the usual steps of reading a tree recursively
into an index, modifying it and writing it back out as a tree, introduce
a function to perform simple updates more efficiently.
`git_tree_create_updated` avoids reading trees which are not modified
and supports upsert and delete operations. It is not as versatile as
modifying the index, but it makes some common operations much more
efficient.
2016-05-17 17:41:05 +02:00
Carlos Martín Nieto
17a93afa78
Merge pull request #3757 from johnhaley81/jh/fix-create-initial-commit
...
Fix `git_commit_create` for an initial commit
2016-05-06 18:44:37 +02:00
John Haley
5785ae9b5e
Fix initial commit test
...
`test_commit_commit__create_initial_commit_parent_not_current` was not correctly
testing that `HEAD` was not changed. Now we grab the oid that it was pointing to
before the call to `git_commit_create` and the oid that it's pointing to afterwards
and compare those.
2016-05-04 11:15:56 -07:00
John Haley
4f22ccb979
Add tests for creating an initial commit
2016-05-03 13:32:32 -07:00
Edward Thomson
c7b4bbffcc
rebase: test rebase (merge) w/ no common ancestor
2016-05-03 15:29:44 -04:00
Edward Thomson
d383c39b3b
Introduce git_signature_from_buffer
...
Allow users to construct a signature from the type of signature
lines that actually appear in commits.
2016-04-28 12:47:14 -04:00
Edward Thomson
b3ffd8f638
rebase::abort: test we can abort rebase by revspec
...
Test that we can properly abort a rebase when it is initialized by a
revspec. This ensures that we do not conflate revspecs and refnames.
2016-04-26 11:49:05 -04:00
Carlos Martín Nieto
9068704bd8
Merge pull request #3749 from arthurschreiber/arthur/add-git-reference-dup
...
Allow creating copies of `git_reference` objects.
2016-04-26 11:02:45 +02:00
Carlos Martín Nieto
c30955e0c0
Merge pull request #3748 from libgit2/ethomson/rebase_detached
...
Rebase improvements with IDs
2016-04-26 11:02:05 +02:00
Carlos Martín Nieto
eb39284bab
tag: ignore extra header fields
...
While no extra header fields are defined for tags, git accepts them by
ignoring them and continuing the search for the message. There are a few
tags like this in the wild which git parses just fine, so we should do
the same.
2016-04-25 12:18:32 +02:00
Arthur Schreiber
908f24fd13
Allow creating copies of git_reference
objects.
2016-04-22 10:34:17 -07:00
Edward Thomson
1f84caf0c0
rebase: correctly finish rebasing detached heads
...
When rebasing with IDs, we do not return to the `branch`,
we remain in a detached HEAD state.
2016-04-21 18:19:05 -04:00
Edward Thomson
320f53cd6c
rebase: test abort immediately after init
...
Instead of `open`ing a rebase and `abort`ing that, test that we can
`abort` a rebase that has just begun with `init`.
2016-04-21 18:19:05 -04:00
Edward Thomson
0bd7740173
clone test: annotate unused vars
2016-04-21 11:05:21 -04:00
Edward Thomson
1dc449105b
Merge pull request #3110 from libgit2/cmn/proxy-config
...
Proxy configuration
2016-04-19 19:48:52 -04:00