|
5dca2010
|
2012-08-03T17:08:01
|
|
Update iterators for consistency across library
This updates all the `foreach()` type functions across the library
that take callbacks from the user to have a consistent behavior.
The rules are:
* A callback terminates the loop by returning any non-zero value
* Once the callback returns non-zero, it will not be called again
(i.e. the loop stops all iteration regardless of state)
* If the callback returns non-zero, the parent fn returns GIT_EUSER
* Although the parent returns GIT_EUSER, no error will be set in
the library and `giterr_last()` will return NULL if called.
This commit makes those changes across the library and adds tests
for most of the iteration APIs to make sure that they follow the
above rules.
|
|
0aeae705
|
2012-07-25T17:01:50
|
|
tests-clar/status: fix missing-prototype warning
|
|
a1773f9d
|
2012-07-23T18:16:09
|
|
Add flag to turn off pathspec testing for diff and status
|
|
151446ca
|
2012-07-03T17:46:07
|
|
Add a test for getting status of files containing brackets
|
|
e5e71f5e
|
2012-07-18T16:26:11
|
|
Add more test coverage to match default git behavior for files containing brackets
|
|
02a0d651
|
2012-07-12T16:31:59
|
|
Add git_buf_unescape and git__unescape to unescape all characters in a string (in-place)
|
|
279b45b0
|
2012-07-23T21:22:53
|
|
revparse: don't allow an empty string
Asking the library for "" used to give HEAD, but that's trying to
impose a default at the wrong layer. Make it fail.
|
|
14e1bc15
|
2012-07-21T17:54:56
|
|
tests: plug a leak in the config stress
|
|
5b786963
|
2012-07-21T07:56:59
|
|
Merge pull request #818 from nulltoken/rework
Revparse rework
|
|
5d9cfa07
|
2012-07-20T17:52:53
|
|
config: escape subsection names when creating them
This allows us to set options like "some.foo\\ish.var".
This closes #830
|
|
71d27358
|
2012-07-19T10:23:45
|
|
Fix bug with merging diffs with null options
A diff that is created with a NULL options parameter could result
in a NULL prefix string, but diff merge was unconditionally
strdup'ing it. I added a test to replicate the issue and then a
new method that does the right thing with NULL values.
|
|
db9be945
|
2012-07-15T11:06:15
|
|
object: introduce git_object_peel()
Partially fix #530
|
|
d448392e
|
2012-07-15T00:46:01
|
|
revparse: extend test coverage
|
|
b0f15338
|
2012-07-15T00:45:20
|
|
revparse: add reflog test data
|
|
d1b7921a
|
2012-07-12T11:46:20
|
|
revparse: fix disambiguation of refs and abbrev oids
|
|
bb89cf94
|
2012-07-12T10:57:31
|
|
revparse: simplify handling of the colon syntax
|
|
dc1f4b32
|
2012-07-12T10:52:19
|
|
tree: unfound tree entry returns GIT_ENOTFOUND
|
|
465092ce
|
2012-07-12T11:56:50
|
|
Fix memory leak in test
|
|
eca67c58
|
2012-07-12T20:40:09
|
|
tests: fix git_odb_foreach() object count
Some objects were added in another PR
|
|
dd4345b4
|
2012-07-12T09:42:54
|
|
Merge pull request #789 from carlosmn/odb-foreach
odb: add git_odb_foreach()
|
|
0cf6b2f2
|
2012-07-12T09:37:09
|
|
Merge pull request #805 from nulltoken/fix/revwalk-email-parsing
Fix revwalk email parsing
|
|
db2d4061
|
2012-07-12T09:35:35
|
|
Merge pull request #814 from nulltoken/topic/revparse-refac
Revparse refactoring: a start
|
|
48bcf81d
|
2012-07-12T09:32:44
|
|
Merge pull request #812 from arrbee/assorted-tweaks
Assorted goodies
|
|
84f18e35
|
2012-07-12T00:44:07
|
|
refs: introduce git_reference_remote_tracking_from_branch()
|
|
874303d4
|
2012-07-11T23:47:58
|
|
refs: readonly tests don't need a sandboxed repo
|
|
b1aca6ea
|
2012-07-11T16:14:12
|
|
commit: introduce git_commit_nth_gen_ancestor()
|
|
8aedf1d5
|
2012-07-05T17:02:03
|
|
signature: prevent angle bracket usage in identity
|
|
118cf57d
|
2012-07-04T16:06:07
|
|
revwalk: relax the parsing of the commit time
|
|
5b071115
|
2012-07-04T14:00:19
|
|
tests: add test commit with angle brackets in the author name
|
|
a13a30ac
|
2012-07-11T05:29:51
|
|
Merge pull request #801 from nulltoken/fix/ref-renaming
refs and revparse love <3
|
|
991a56c7
|
2012-07-10T15:35:38
|
|
Add flag to write gitlink on setting repo workdir
This added a flag to the `git_repository_set_workdir()` function
that enables generation of a `.git` gitlink file that links the
new workdir to the parent repository. Essentially, the flag tells
the function to write out the changes to disk to permanently set
the workdir of the repository to the new path.
If you pass this flag as true, then setting the workdir to something
other than the default workdir (i.e. the parent of the .git repo
directory), will create a plain file named ".git" with the standard
gitlink contents "gitdir: <repo-path>", and also update the
"core.worktree" and "core.bare" config values.
Setting the workdir to the default repo workdir will clear the
core.worktree flag (but still permanently set core.bare to false).
BTW, the libgit2 API does not currently provide a function for
clearing the workdir and converting a non-bare repo into a bare one.
|
|
b3ff1dab
|
2012-07-10T15:22:39
|
|
Adding git_config_foreach_match() iteration fn
Adding a new config iteration function that let's you iterate
over just the config entries that match a particular regular
expression. The old foreach becomes a simple use of this with
an empty pattern.
This also fixes an apparent bug in the existing `git_config_foreach`
where returning a non-zero value from the iteration callback was
not correctly aborting the iteration and the returned value was
not being propogated back to the caller of foreach.
Added to tests to cover all these changes.
|
|
b0fe1129
|
2012-07-10T15:13:30
|
|
Add path utilities to resolve relative paths
This makes it easy to take a buffer containing a path with relative
references (i.e. .. or . path segments) and resolve all of those
into a clean path. This can be applied to URLs as well as file
paths which can be useful.
As part of this, I made the drive-letter detection apply on all
platforms, not just windows. If you give a path that looks like
"c:/..." on any platform, it seems like we might as well detect
that as a rooted path. I suppose if you create a directory named
"x:" on another platform and want to use that as the beginning
of a relative path under the root directory of your repo, this
could cause a problem, but then it seems like you're asking for
trouble.
|
|
039fc406
|
2012-07-10T15:10:14
|
|
Add a couple of useful git_buf utilities
* `git_buf_rfind` (with tests and tests for `git_buf_rfind_next`)
* `git_buf_puts_escaped` and `git_buf_puts_escaped_regex` (with tests)
to copy strings into a buffer while injecting an escape sequence
(e.g. '\') in front of particular characters.
|
|
4d3a7b78
|
2012-07-10T21:45:16
|
|
Merge pull request #793 from libgit2/tree-entry-by-path
Bring back `entry_bypath`
|
|
19017a24
|
2012-07-10T16:24:17
|
|
Merge pull request #797 from yorah/fix/inter-hunk-context
diff: make inter-hunk-context default value git-compliant
|
|
3e82d6c6
|
2012-07-07T08:25:39
|
|
revparse: unfound reference return ENOTFOUND
|
|
ce9e8e11
|
2012-07-07T07:27:53
|
|
revparse: fix invalid test reference name
|
|
b8460c20
|
2012-07-06T23:37:44
|
|
revparse: do not segfault when retrieving the last entry
|
|
3d78ab64
|
2012-07-06T19:48:57
|
|
revparse: split reflog test per feature
|
|
3cd90893
|
2012-07-06T17:25:31
|
|
revparse: enhance upstream reflog test coverage
|
|
35bed94f
|
2012-07-03T18:01:46
|
|
revparse: enhance refs/<name> coverage
|
|
cab65c2b
|
2012-07-05T22:26:14
|
|
revparse: detect incorrect "refname@{-n}" syntax
|
|
1decf88b
|
2012-07-03T15:34:22
|
|
revparse: slightly improve readability of tests
|
|
34922eee
|
2012-07-03T14:59:14
|
|
revparse: readonly tests don't need a sandboxed repo
|
|
d0a920a6
|
2012-07-07T10:36:35
|
|
refs: deep unfound ref returns ENOTFOUND
|
|
75261421
|
2012-07-04T11:58:04
|
|
refs: add git_reference_has_log()
|
|
b6bfd96f
|
2012-07-03T12:07:33
|
|
refs: fix moving of the reflog when renaming a ref
|
|
b00e9216
|
2012-07-03T12:38:09
|
|
Merge pull request #798 from nulltoken/fix/revparse-date
revparse: fix parsing of date specifiers
|
|
521aedad
|
2012-06-05T14:48:51
|
|
odb: add git_odb_foreach()
Go through each backend and list every objects that exists in
them. This allows fsck-like uses.
|
|
973ed4c9
|
2012-07-03T12:11:19
|
|
repo tests: do cleanup reinit tests
|
|
494ae940
|
2012-07-02T17:51:02
|
|
revparse: fix parsing of date specifiers
|
|
29f9186d
|
2012-07-02T11:18:01
|
|
diff: make inter-hunk-context default value git-compliant
Default in git core is 0, not 3
|
|
52b938d5
|
2012-06-29T17:06:38
|
|
revparse: unfound reflog entry returns ENOTFOUND
|
|
08ac23a5
|
2012-06-29T17:02:29
|
|
revparse: unfound reflog ref returns ENOTFOUND
|
|
4de89ce7
|
2012-06-29T16:51:46
|
|
revparse: unfound partially-named ref returns ENOTFOUND
|
|
7e8c146c
|
2012-06-29T00:47:46
|
|
Don't rmdir() nonexistent dirs in object::tree::frompath tests
It causes the clar testsuite to abort on Windows, and isn't necessary.
|
|
0e2fcca8
|
2012-06-29T02:21:12
|
|
tree: Bring back `entry_bypath`
Smaller, simpler, faster.
|
|
0e7af9e7
|
2012-06-28T18:04:01
|
|
revparse: unfound nth parent returns ENOTFOUND
|
|
0d23c62c
|
2012-06-28T11:09:16
|
|
revparse: handle specs with caret and colon
|
|
5b68ba7e
|
2012-06-27T17:27:38
|
|
revparse: unfound treepath returns ENOTFOUND
|
|
faaa7c51
|
2012-06-27T16:51:19
|
|
revparse: return trees through the "colon" syntax
|
|
e28dd29b
|
2012-06-28T07:50:16
|
|
revparse: replace spaces with tabs
|
|
ed754a75
|
2012-06-25T23:28:17
|
|
Merge pull request #783 from nulltoken/topic/reinit-coverage
Repo reinit fix + enhanced test coverage
|
|
527ed554
|
2012-06-22T15:51:44
|
|
references: introduce git_reference_foreach_glob()
|
|
d046945c
|
2012-06-22T16:42:37
|
|
Fix MSVC compilation errors
|
|
d6d8cc27
|
2012-06-22T13:41:26
|
|
tests-clar: fix isolation of repo initialization tests
|
|
dbb24a39
|
2012-06-22T11:30:43
|
|
repository: enhance reinitialization test coverage
|
|
f7292a99
|
2012-06-22T10:13:50
|
|
tests-clar: mark unused variables
|
|
fb8aa9e1
|
2012-06-21T20:12:50
|
|
Merge pull request #782 from nulltoken/topic/branch-foreach
Branch foreach
|
|
d4827081
|
2012-06-21T18:48:36
|
|
branch: drop git_branch_list()
|
|
a8fd805e
|
2012-06-21T18:29:38
|
|
branch: add git_branch_foreach()
|
|
dca6b228
|
2012-06-20T18:06:37
|
|
notes: fix memory leaks
|
|
9311423c
|
2012-06-21T02:30:30
|
|
tests: plug a leak in the repo tests
The second call to assert_config_entry_on_init_bytype is cleaned up by
the main cleanup function, but that overwrites the first _repo. Make
sure that one doesn't leak.
|
|
eb6bc45f
|
2012-06-19T21:11:48
|
|
Avoid uninitialized variable error.
|
|
cdca82c7
|
2012-06-20T00:46:26
|
|
Plug a few leaks
|
|
c3ce8d0c
|
2012-06-19T15:17:35
|
|
Merge pull request #775 from arrbee/fix-index-filemodes
Make index add/append support core.filemode flag
|
|
52329940
|
2012-06-19T15:04:45
|
|
Merge pull request #768 from nulltoken/topic/expose-message-prettify
message: Expose git_message_prettify()
|
|
da825c92
|
2012-06-19T14:27:02
|
|
Make index add/append support core.filemode flag
This fixes git_index_add and git_index_append to behave more like
core git, preserving old filemode data in the index when adding
and/or appending with core.filemode = false.
This also has placeholder support for core.symlinks and
core.ignorecase, but those flags are not implemented (well,
symlinks has partial support for preserving mode information in
the same way that git does, but it isn't tested).
|
|
2c90145a
|
2012-06-19T09:24:44
|
|
Fix potential segfault in revparse.
|
|
743a4b3b
|
2012-06-15T22:24:59
|
|
message: Expose git_message_prettify()
git_commit() and git_tag() no longer prettify the
message by default. This has to be taken care of
by the caller.
This has the nice side effect of putting the
caller in position to actually choose to strip
the comments or not.
|
|
68f527c4
|
2012-06-18T17:50:12
|
|
Merge pull request #758 from libgit2/config-values-containing-quotes
Quotes inside config values don't survive serialization/deserialization
|
|
8c4c357f
|
2012-06-19T02:43:36
|
|
clar: Fix warnings
|
|
31eed56b
|
2012-06-18T17:36:14
|
|
Merge pull request #753 from nulltoken/topic/merge-base-many
Expose git_merge_base_many()
|
|
b93688d0
|
2012-06-19T02:33:03
|
|
Merge remote-tracking branch 'yorah/fix/notes-creation' into development
Conflicts:
src/notes.c
|
|
515a4c7c
|
2012-06-19T00:59:04
|
|
tree: Proper path comparison logic
|
|
e00b56eb
|
2012-06-15T10:15:57
|
|
Fix broken tests caused by no longer prettifying by default
|
|
67d334c1
|
2012-06-11T16:57:02
|
|
config: add more tests for writing escaped chars
|
|
750be86a
|
2012-06-09T12:45:21
|
|
Add a test that shows we don't preserve quotes in config values
|
|
fa45d25f
|
2012-06-13T14:03:48
|
|
Fix issue #763
|
|
027d77ee
|
2012-06-06T16:41:42
|
|
notes: simplify tests
|
|
7623b1b6
|
2012-06-11T11:33:13
|
|
repository: make git_repository_init() value the core.logallrefupdates config entry
|
|
976b69bd
|
2012-06-11T11:06:53
|
|
repository: widen test coverage regarding initialization and configuration entries
|
|
cfc17dc4
|
2012-06-09T17:43:18
|
|
Add a test showing that git_status_file gets confused by spaces in .gitignore
|
|
145e696b
|
2012-06-08T11:56:24
|
|
Minor fixes, cleanups, and clarifications
There are three actual changes in this commit:
1. When the trailing newline of a file is removed in a diff, the
change will now be reported with `GIT_DIFF_LINE_DEL_EOFNL` passed
to the callback. Previously, the `ADD_EOFNL` constant was given
which was just an error in my understanding of when the various
circumstances arose. `GIT_DIFF_LINE_ADD_EOFNL` is deprecated and
should never be generated. A new newline is simply an `ADD`.
2. Rewrote the `diff_delta__merge_like_cgit` function that contains
the core logic of the `git_diff_merge` implementation. The new
version doesn't actually have significantly different behavior,
but the logic should be much more obvious, I think.
3. Fixed a bug in `git_diff_merge` where it freed a string pool
while some of the string data was still in use. This led to
`git_diff_print_patch` accessing memory that had been freed.
The rest of this commit contains improved documentation in `diff.h`
to make the behavior and the equivalencies with core git clearer,
and a bunch of new tests to cover the various cases, oh and a minor
simplification of `examples/diff.c`.
|
|
0abd7244
|
2012-06-04T16:17:41
|
|
Fix filemode comparison in diffs
File modes were both not being ignored properly on platforms
where they should be ignored, nor be diffed consistently on
platforms where they are supported.
This change adds a number of diff and status filemode change
tests. This also makes sure that filemode-only changes are
included in the diff output when they occur and that filemode
changes are ignored successfully when core.filemode is false.
There is no code that automatically toggles core.filemode
based on the capabilities of the current platform, so the user
still needs to be careful in their .git/config file.
|
|
a02e7249
|
2012-05-29T17:53:29
|
|
notes: simplify the handling of fanouts
- Do not create new levels of fanout when creating notes from libgit2
- Insert a note in an existing matching fanout
- Remove a note from an existing fanout
- Cleanup git_note_read, git_note_remove, git_note_foreach, git_note_create methods in order use tree structures instead of tree_oids
|
|
e272efcb
|
2012-06-08T11:24:37
|
|
Tests: wrap 'getenv' and friends for Win32 tests.
|
|
3a0d1e12
|
2012-05-10T15:32:52
|
|
notes: add failing test
|
|
454cc829
|
2012-05-29T13:28:26
|
|
notes: add test resource with faked two-level fanout
|