|
51e1d808
|
2012-08-06T12:41:08
|
|
Merge remote-tracking branch 'arrbee/tree-walk-fixes' into development
Conflicts:
src/notes.c
src/transports/git.c
src/transports/http.c
src/transports/local.c
tests-clar/odb/foreach.c
|
|
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.
|
|
e25dda51
|
2012-08-02T01:38:30
|
|
Merge remote-tracking branch 'nulltoken/topic/amd64-compat' into development
Conflicts:
src/netops.c
src/netops.h
src/oid.c
|
|
95a1d876
|
2012-08-01T16:31:00
|
|
Merge pull request #850 from libgit2/attr-export
attr: Do not export variables externally
|
|
e5f49501
|
2012-08-01T16:21:41
|
|
Merge pull request #848 from carlosmn/pending-message
repository: add a getter and remove function for git's prepared message
|
|
0c9eacf3
|
2012-08-02T01:15:24
|
|
attr: Do not export variables externally
Fixes #824
Exporting variables in a dynamic library is a PITA. Let's keep
these values internally and wrap them through a helper method.
This doesn't break the external API. @arrbee, aren't you glad I turned
the `GIT_ATTR_` macros into function macros? :sparkles:
|
|
e564e496
|
2012-08-01T20:02:32
|
|
Add function to query for compile time settings.
|
|
074841ec
|
2012-08-01T17:49:19
|
|
repository: add a getter and remove function for git's prepared message
The 'git revert/cherry-pick/merge -n' commands leave .git/MERGE_MSG
behind so that git-commit can find it. As we don't yet support these
operations, users who are shelling out to let git perform these
operations haven't had a convenient way to get this message.
These functions allow the user to retrieve the message and remove it
when she's created the commit.
|
|
bfb59164
|
2012-07-31T10:16:21
|
|
Merge pull request #833 from carlosmn/odb-one
odb: allow creating an ODB backend from a packfile index
|
|
f6b26e77
|
2012-07-27T10:53:09
|
|
git_oid_cmp: inline memcmp by hand to optimize
git.git uses an inlined hashcmp function instead of memcmp, since it
performes much better when comparing hashes (most hashes compared
diverge within the first byte).
Measurements and rationale for the curious reader:
http://thread.gmane.org/gmane.comp.version-control.git/172286
|
|
60d5cc57
|
2012-07-27T09:52:44
|
|
Merge pull request #834 from carlosmn/network-callbacks
Add a struct for network callbacks
|
|
f0244463
|
2012-07-27T18:49:37
|
|
branch: Add `repository` argument to `create`
Yes, we can get the repository from the owner of the object, but having
it marked explicitly makes the API more consistent.
|
|
b41a30bd
|
2012-07-27T18:45:55
|
|
Merge remote-tracking branch 'nulltoken/topic/branch-rework' into development
|
|
b84f75c3
|
2012-07-27T18:43:02
|
|
reflog: Rename `entry_drop` to `drop`
|
|
43b67d49
|
2012-07-27T18:39:40
|
|
Merge remote-tracking branch 'nulltoken/topic/reflog-delete' into development
|
|
2031760c
|
2012-07-26T16:10:22
|
|
Fix git_tree_walk to return user error
This makes sure that an error code returned by the callback function
of `git_tree_walk` will stop the iteration and get propagated back
to the caller verbatim.
Also, this adds a minor helper function `git_tree_entry_byoid` that
searches a `git_tree` for an entry with the given OID. This isn't
a fast function, but it's easier than writing the loop yourself as
an external user of the library.
|
|
76501590
|
2012-07-25T01:33:15
|
|
Remotes: Setter for url+pushurl; Getter for pushurl
|
|
40c75652
|
2012-07-21T12:33:46
|
|
reflog: prevent git_reflog_append() from persisting the reflog back to disk
|
|
ae833178
|
2012-07-21T12:32:02
|
|
reflog: prevent git_reflog_read() from chocking when no log exists yet
|
|
bd72425d
|
2012-07-18T20:12:45
|
|
reflog: introduce git_reflog_write()
|
|
d284b3de
|
2012-07-16T12:12:53
|
|
reflog: rename git_reflog_write() to git_reflog_append()
|
|
59341a5d
|
2012-07-16T18:31:22
|
|
reflog: introduce git_reflog_entry_drop()
|
|
b8457baa
|
2012-07-24T07:57:58
|
|
portability: Improve x86/amd64 compatibility
|
|
ef4d795e
|
2012-07-20T16:39:22
|
|
refs: drop git_reference_remote_tracking_from_branch()
|
|
fb910281
|
2012-07-20T16:38:54
|
|
branch: introduce git_branch_tracking()
|
|
bf9e8cc8
|
2012-07-20T16:34:08
|
|
branch: make git_branch_move() reference based
|
|
abee7bd3
|
2012-07-20T16:31:17
|
|
branch: slight git_branch_create() doc improvement
|
|
88bcd515
|
2012-07-20T16:27:56
|
|
branch: introduce git_reference_is_branch()
|
|
eed378b6
|
2012-07-20T16:19:04
|
|
branch: introduce git_branch_lookup()
|
|
b308c11e
|
2012-07-19T15:39:16
|
|
branch: change git_branch_create() to make it return a reference
|
|
a1773f9d
|
2012-07-23T18:16:09
|
|
Add flag to turn off pathspec testing for diff and status
|
|
b3aaa7a7
|
2012-07-21T17:52:51
|
|
Add a struct for network callbacks
Currently only update_tips is used, but it prepares the way for
progress output during download.
|
|
5b786963
|
2012-07-21T07:56:59
|
|
Merge pull request #818 from nulltoken/rework
Revparse rework
|
|
6782245e
|
2012-07-21T16:24:13
|
|
repo: add git_repository_wrap_odb() to wrap an ODB
Primarily useful when used together with git_odb_backend_one_pack().
|
|
507523c3
|
2012-07-21T16:23:49
|
|
odb: allow creating an ODB backend from a packfile index
git_odb_backend_one_packfile() allows us to create an ODB backend out
of an .idx file.
|
|
db9be945
|
2012-07-15T11:06:15
|
|
object: introduce git_object_peel()
Partially fix #530
|
|
227f3131
|
2012-07-15T14:11:58
|
|
attr: Rename the `git_attr__` exports
Pevents collisions with the original libgit, which also exports those
exact symbols.
Fixes #822
|
|
1ebe432e
|
2012-07-12T20:33:30
|
|
commit: properly export git_commit_nth_gen_ancestor()
|
|
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()
|
|
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
|
|
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.
|
|
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
|
|
33c33707
|
2012-07-04T12:20:43
|
|
refs: deploy git_reference_has_log()
|
|
75261421
|
2012-07-04T11:58:04
|
|
refs: add git_reference_has_log()
|
|
4ea7c8c6
|
2012-07-03T12:35:33
|
|
Replace incorrect 'it' with 'if' in documentation
|
|
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.
|
|
29f9186d
|
2012-07-02T11:18:01
|
|
diff: make inter-hunk-context default value git-compliant
Default in git core is 0, not 3
|
|
46ea40d9
|
2012-06-29T17:08:36
|
|
tree: Rename `entry_copy` to `entry_dup`
|
|
0e2fcca8
|
2012-06-29T02:21:12
|
|
tree: Bring back `entry_bypath`
Smaller, simpler, faster.
|
|
37159957
|
2012-06-28T09:33:08
|
|
indexer: don't use '/objects/pack/' unconditionally
Not everyone who indexes a packfile wants to put it in the standard
git repository location.
|
|
c6713398
|
2012-06-25T23:27:35
|
|
Merge pull request #785 from nulltoken/topic/refs-fromglob
Topic/refs fromglob
|
|
527ed554
|
2012-06-22T15:51:44
|
|
references: introduce git_reference_foreach_glob()
|
|
798e4d53
|
2012-06-22T21:25:17
|
|
amigaos: Cleanup
|
|
2ae052d1
|
2012-06-22T20:48:50
|
|
Merge branch 'pull-req' of https://github.com/chris-y/libgit2 into amigaos
|
|
d4827081
|
2012-06-21T18:48:36
|
|
branch: drop git_branch_list()
|
|
a8fd805e
|
2012-06-21T18:29:38
|
|
branch: add git_branch_foreach()
|
|
c3ce8d0c
|
2012-06-19T15:17:35
|
|
Merge pull request #775 from arrbee/fix-index-filemodes
Make index add/append support core.filemode flag
|
|
77d65af4
|
2012-06-19T15:16:38
|
|
Nicer constant
|
|
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).
|
|
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.
|
|
31eed56b
|
2012-06-18T17:36:14
|
|
Merge pull request #753 from nulltoken/topic/merge-base-many
Expose git_merge_base_many()
|
|
a8df98c6
|
2012-06-14T18:57:24
|
|
Updates from comments on OS4 compatibility pull request http://github.com/libgit2/libgit2/pull/766
|
|
a21bb1aa
|
2012-06-13T23:28:51
|
|
Merge remote-tracking branch 'source/development' into development
|
|
14ebe518
|
2012-06-12T15:23:00
|
|
Expose git_refspec_parse()
This function has been available for some time, but never in a
header. Expose it so we can use it from outside the library.
|
|
327fb51c
|
2012-06-09T18:13:07
|
|
Fix gethostbyname compatibility
|
|
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.
|
|
fa56478f
|
2012-06-08T19:15:11
|
|
Generic needs compat files
|
|
aa5a92d1
|
2012-06-08T18:57:35
|
|
OS4 compatibility
|
|
51975727
|
2012-06-07T23:13:39
|
|
Fix double-defines when using GIT_OLD_ERRORS
|
|
0f5e1f3b
|
2012-06-07T21:56:19
|
|
Network byte order is big-endian - the way it should be :)
|
|
3f035860
|
2012-06-07T22:43:03
|
|
misc: Fix warnings from PVS Studio trial
|
|
6c08e69f
|
2012-06-07T12:30:20
|
|
Merge pull request #669 from nulltoken/topic/reset
Add git_reset()
|
|
b9ebcc59
|
2012-06-07T12:29:31
|
|
Merge pull request #684 from benstraub/rev-parse
Rev parse
|
|
c3f35902
|
2012-06-07T20:29:22
|
|
Merge remote-tracking branch 'source/development' into update-test
Merging main libgit2!
Conflicts:
CMakeLists.txt
src/unix/map.c
|
|
edebceff
|
2012-05-01T13:57:45
|
|
Add git_reset()
Currently supports Soft and Mixed modes.
|
|
cddb8efe
|
2012-06-07T11:34:48
|
|
Merge pull request #704 from nulltoken/topic/blob_fromchunks
Add the ability to create blob given a provider of chunks of bytes
|
|
cd445767
|
2012-05-27T15:00:05
|
|
blob: add git_blob_create_fromchunks()
|
|
b46bdb22
|
2012-05-25T16:28:53
|
|
merge: Expose git_merge_base_many()
|
|
966fbdcb
|
2012-06-05T13:53:33
|
|
Merge pull request #697 from carlosmn/ssl
Add HTTPS support
|
|
56a5000d
|
2012-06-05T12:52:44
|
|
Merge branch 'development' into rev-parse
Conflicts:
src/util.h
tests-clar/refs/branches/listall.c
|
|
d0517805
|
2012-06-05T11:47:17
|
|
Required include for OS4 to typedef int64_t
|
|
d05e2c64
|
2012-05-30T00:27:22
|
|
refspec: expose the force update specifier through git_refspec_force() accessor
|
|
250b95b2
|
2012-05-26T21:17:08
|
|
ssl: allow skipping the server certificate check
Sometimes it's useful not to perform the check. Allow it to be
configurable.
|
|
dbb36e1b
|
2012-05-17T17:56:49
|
|
ssl: check certificates against the system's trusted CAs
|
|
d73c94b2
|
2012-05-19T20:24:55
|
|
Fix spelling errors.
|
|
ad5df35a
|
2012-05-19T01:40:46
|
|
libgit2 v0.17.0 "Lord of Diffstruction"
Welcome to yet another libgit2 release, this one being the
biggest we've shipped so far. Highlights on this release
include diff, branches, notes and submodules support. The new
diff API is shiny and powerful. Check it out.
Apologies, one more time, to all the early adopters for the
breaking API changes. We've been iterating on the error
handling for the library until we reached its current state,
which we believe it's significantly more usable both for normal
users and for developers of bindings to other languages.
Also, we've renamed a few legacy calls to ensure that the whole
external API uses a consistent naming scheme.
As always, check the API docs for the full list of new API calls
and backwards-incompatible changes.
http://libgit2.github.com/libgit2/
Changelog of new features follows:
Attributes:
- Added function macros to check attribute values instead of having
to manually compare them
- Added support for choosing the attribute loading order (workdir files
vs index) and to skip the systems' default `.gitattributes`
- Fixed issues when fetching attribute data on bare repositories
Blob:
- Added support for creating blobs from any file on disk (not
restricted to the repository's working directory)
- Aded support for smudge filters when writing blobs to the ODB
- So far only CRLF normalization is available
Branches:
- Added a high-level branch API:
- git_branch_create
- git_branch_delete
- git_branch_list
- git_branch_move
Commit:
- Commit messages are now filtered to match Git rules (stripping
comments and adding proper whitespacing rules)
Config:
- Added support for setting and getting multivars
- Added `git_config_get_mapped` to map the value of a config
variable based on its defaults
Diff:
- Added full diff API:
- tree to tree
- index to tree
- workdir to index
- workdir to tree
- blob to blob
- Added helper functions to print the diffs as valid patchfiles
Error handling:
- New design for the error handling API, taking into consideration
the requirements of dynamic languages
Indexer:
- Added streaming packfile indexer
Merge:
- Added support for finding the merge base between two commits
Notes:
- Full git-notes support:
- git_note_read
- git_note_message/git_note_oid
- git_note_create
- git_note_remove
- git_note_free
- git_note_foreach
References:
- Added `git_reference_name_to_oid` helper to resolve
a reference to its final OID
- Added `git_reference_cmp` to compare two references with
a stable order
Remotes:
- Added support for writing and saving remotes
- `git_remote_add`
- `git_remote_save`
- Setters for all the attributes of a remote
- Switched remote download to the new streaming packfile indexer
- Fixed fetch on HTTP and Git under Windows
- Added `git_remote_supported_url` helper to check if a protocol
can be accessed by the library
- Added `git_remote_list`
Repository:
- Made `git_repository_open` smarter when finding the `.git` folder.
- Added `git_repository_open_ext` with extra options when
opening a repository
Revwalk:
- Added support for pushing/hiding several references through a glob
- Added helper to push/hide the current HEAD to the walker
- Added helper to push/hide a single reference to the walker
Status:
- Greatly improved Status implementation using the new `diff` code
as a backend
Submodules:
- Added a partial submodules API to get information about a
submodule and list all the submodules in a repository
- git_submodule_foreach
- git_submodule_lookup
Tag:
- Added `git_tag_peel` helper to peel a tag to its pointed object
- Tag messages are now filtered to match Git rules (stripping comments
and adding proper whitespacing rules)
Tree:
- Killed the old `git_tree_diff` API, which is replaced by the
new diff code.
Signed-off-by: Vicent Marti <tanoku@gmail.com>
|
|
904b67e6
|
2012-05-18T01:48:50
|
|
errors: Rename error codes
|
|
e172cf08
|
2012-05-18T01:21:06
|
|
errors: Rename the generic return codes
|
|
2e2e9785
|
2012-05-18T00:42:24
|
|
Properly tag all `enums` with a `_t`
|
|
4fbd1c00
|
2012-05-17T20:35:48
|
|
refs: git_reference_listall -> git_reference_list
|
|
fe3bcf7d
|
2012-05-11T12:20:19
|
|
errors: Remove old comments
|