summaryrefslogtreecommitdiff
path: root/include/git2/tree.h
Commit message (Collapse)AuthorAgeFilesLines
* Add complex checkout test and then fix checkoutRussell Belfer2012-10-091-2/+2
| | | | | | | | | | | | | | | | This started as a complex new test for checkout going through the "typechanges" test repository, but that revealed numerous issues with checkout, including: * complete failure with submodules * failure to create blobs with exec bits * problems when replacing a tree with a blob because the tree "example/" sorts after the blob "example" so the delete was being processed after the single file blob was created This fixes most of those problems and includes a number of other minor changes that made it easier to do that, including improving the TYPECHANGE support in diff/status, etc.
* tree entry: rename git_tree_entry_attributes() into git_tree_entry_filemode()nulltoken2012-08-211-2/+2
|
* filemode: deploy enum usagenulltoken2012-08-211-2/+2
|
* treebuilder: enhance attributes handling on insertionnulltoken2012-08-191-1/+7
|
* tree: allow the user to skip an entry or cancel the walkCarlos Martín Nieto2012-08-131-2/+3
| | | | | | | | | Returning a negative cancels the walk, and returning a positive one causes us to skip an entry, which was previously done by a negative value. This allows us to stay consistent with the rest of the functions that take a callback and keeps the skipping functionality.
* Merge remote-tracking branch 'arrbee/tree-walk-fixes' into developmentVicent Marti2012-08-061-0/+11
|\ | | | | | | | | | | | | | | | | Conflicts: src/notes.c src/transports/git.c src/transports/http.c src/transports/local.c tests-clar/odb/foreach.c
| * Fix git_tree_walk to return user errorRussell Belfer2012-07-261-0/+11
| | | | | | | | | | | | | | | | | | | | | | 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.
* | portability: Improve x86/amd64 compatibilitynulltoken2012-07-241-2/+2
|/
* tree: Rename `entry_copy` to `entry_dup`tree-entry-by-pathVicent Marti2012-06-291-2/+2
|
* tree: Bring back `entry_bypath`Vicent Marti2012-06-291-14/+53
| | | | Smaller, simpler, faster.
* Fix spelling errors.Bruce Mitchener2012-05-191-2/+2
|
* errors: Rename error codesbreaking-changesVicent Martí2012-05-181-1/+1
|
* errors: Rename the generic return codesVicent Martí2012-05-181-9/+8
|
* tree: Naming conventionsVicent Martí2012-05-161-1/+1
|
* tree: Kill the `git_tree_diff` functionsVicent Martí2012-05-161-34/+0
| | | | These are deprecated and replaced with the diffing code in git2/diff.h
* Add missing GIT_EXTERN declarationsSascha Cunz2012-05-141-2/+2
|
* Revert GIT_STATUS constants to avoid issuesRussell Belfer2012-03-021-6/+0
| | | | | | | | | This reverts the changes to the GIT_STATUS constants and adds a new enumeration to describe the type of change in a git_diff_delta. I don't love this solution, but it should prevent strange errors from occurring for now. Eventually, I would like to unify the various status constants, but it needs a larger plan and I just wanted to eliminate this breakage quickly.
* Clean up diff implementation for reviewRussell Belfer2012-03-021-4/+5
| | | | | | | This fixes several bugs, updates tests and docs, eliminates the FILE* assumption in favor of printing callbacks for the diff patch formatter helpers, and adds a "diff" example function that can perform a diff from the command line.
* Implement diff lists and formattersRussell Belfer2012-03-021-0/+5
| | | | | | | | This reworks the diff API to separate the steps of producing a diff descriptions from formatting the diff. This will allow us to share diff output code with the various diff creation scenarios and will allow us to implement rename detection as an optional pass that can be run on a diff list.
* Update Copyright headerschu2012-02-131-1/+1
| | | | Signed-off-by: schu <schu-github@schulog.org>
* tree: recursive diff-indexVicent Marti2011-12-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk> Signed-off-by: Vicent Marti <tanoku@gmail.com> # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Author: Carlos Martín Nieto <carlos@cmartin.tk> # # On branch development # Your branch is ahead of 'origin/development' by 11 commits. # # Changes to be committed: # (use "git reset HEAD^1 <file>..." to unstage) # # modified: include/git2/tree.h # modified: src/tree.c # modified: tests-clay/clay_main.c # modified: tests-clay/object/tree/diff.c # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # 0001-remote-Cleanup-the-remotes-code.patch # 466.patch # 466.patch.1 # 488.patch # Makefile # libgit2.0.15.0.dylib # libgit2.0.dylib # libgit2.dylib # libgit2_clay # libgit2_test # tests-clay/object/tree/
* tree: implement tree diffingCarlos Martín Nieto2011-12-031-0/+34
| | | | | | | | For each difference in the trees, the callback gets called with the relevant information so the user can fill in their own data structures. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
* Rename all `_close` methodsVicent Marti2011-11-261-4/+4
| | | | | There's no difference between `_free` and `_close` semantics: keep everything with the same name to avoid confusions.
* tree: Fix documentationVicent Marti2011-11-221-1/+2
|
* tree: Add payload to `git_tree_walk`Vicent Marti2011-11-181-2/+2
|
* Rename `git_tree_frompath` to `git_tree_get_subtree`Vicent Marti2011-11-181-7/+7
| | | | That makes more sense to me.
* tree: Add traversal in post-orderVicent Marti2011-10-271-0/+30
|
* tree: Fix name lookups once and for allVicent Marti2011-10-201-6/+0
| | | | Double-pass binary search. Jeez.
* tree: Fix lookups by entry nameVicent Marti2011-10-191-0/+6
|
* tree: Add git_tree_frompath() which, given a relative path to a tree entry, ↵nulltoken2011-10-131-0/+14
| | | | retrieves the tree object containing this tree entry
* Cleanup legal dataVicent Marti2011-09-191-22/+4
| | | | | | | | | | 1. The license header is technically not valid if it doesn't have a copyright signature. 2. The COPYING file has been updated with the different licenses used in the project. 3. The full GPLv2 header in each file annoys me.
* Standardized doxygen @return lines for int functions to say "GIT_SUCCESS or ↵David Boyce2011-09-131-6/+6
| | | | an error code".
* cleanup: remove trailing spacesKirill A. Shutemov2011-07-011-1/+1
| | | | Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
* Merge pull request #240 from Romain-Geissler/tree-object-typeVicent Martí2011-06-061-0/+8
|\ | | | | Tree: Added a function that returns the type of a tree entry.
| * Tree: Added a function that returns the type of a tree entry.Romain Geissler2011-06-061-0/+8
| |
* | Merge pull request #239 from pegonma/oid_prefixVicent Martí2011-06-061-0/+17
|\ \ | | | | | | Search objects of different types given OID prefix
| * | Added methods to search objects of different typesMarc Pegon2011-06-061-0/+17
| |/ | | | | | | given an OID prefix.
* | Tree: API uniformasation: Use unsigned int for all index number.Romain Geissler2011-06-051-2/+2
|/
* Build & write custom trees in memoryVicent Marti2011-04-041-6/+111
|
* Fix the git_tree_write implementationVicent Marti2011-04-041-10/+16
|
* New external API method: `git_tree_create`Sarath Lakshman2011-04-031-0/+12
| | | | | Creates a tree by scanning the index file. The method handles recursive creation of trees for subdirectories and adds them to the parent tree.
* Do not return on `void` helper methodsVicent Marti2011-03-231-1/+1
| | | | MSVC doesn't swallow that.
* Add close wappers for commit, tree, tag and blobCarlos Martín Nieto2011-03-231-0/+18
| | | | | | | | In the same spirit that git_repository_lookup is no longer available, add wrappers so the users don't have to cast when closing their objects. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
* I broke your bindingsVicent Marti2011-03-201-107/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hey. Apologies in advance -- I broke your bindings. This is a major commit that includes a long-overdue redesign of the whole object-database structure. This is expected to be the last major external API redesign of the library until the first non-alpha release. Please get your bindings up to date with these changes. They will be included in the next minor release. Sorry again! Major features include: - Real caching and refcounting on parsed objects - Real caching and refcounting on objects read from the ODB - Streaming writes & reads from the ODB - Single-method writes for all object types - The external API is now partially thread-safe The speed increases are significant in all aspects, specially when reading an object several times from the ODB (revwalking) and when writing big objects to the ODB. Here's a full changelog for the external API: blob.h ------ - Remove `git_blob_new` - Remove `git_blob_set_rawcontent` - Remove `git_blob_set_rawcontent_fromfile` - Rename `git_blob_writefile` -> `git_blob_create_fromfile` - Change `git_blob_create_fromfile`: The `path` argument is now relative to the repository's working dir - Add `git_blob_create_frombuffer` commit.h -------- - Remove `git_commit_new` - Remove `git_commit_add_parent` - Remove `git_commit_set_message` - Remove `git_commit_set_committer` - Remove `git_commit_set_author` - Remove `git_commit_set_tree` - Add `git_commit_create` - Add `git_commit_create_v` - Add `git_commit_create_o` - Add `git_commit_create_ov` tag.h ----- - Remove `git_tag_new` - Remove `git_tag_set_target` - Remove `git_tag_set_name` - Remove `git_tag_set_tagger` - Remove `git_tag_set_message` - Add `git_tag_create` - Add `git_tag_create_o` tree.h ------ - Change `git_tree_entry_2object`: New signature is `(git_object **object_out, git_repository *repo, git_tree_entry *entry)` - Remove `git_tree_new` - Remove `git_tree_add_entry` - Remove `git_tree_remove_entry_byindex` - Remove `git_tree_remove_entry_byname` - Remove `git_tree_clearentries` - Remove `git_tree_entry_set_id` - Remove `git_tree_entry_set_name` - Remove `git_tree_entry_set_attributes` object.h ------------ - Remove `git_object_new - Remove `git_object_write` - Change `git_object_close`: This method is now *mandatory*. Not closing an object causes a memory leak. odb.h ----- - Remove type `git_rawobj` - Remove `git_rawobj_close` - Rename `git_rawobj_hash` -> `git_odb_hash` - Change `git_odb_hash`: New signature is `(git_oid *id, const void *data, size_t len, git_otype type)` - Add type `git_odb_object` - Add `git_odb_object_close` - Change `git_odb_read`: New signature is `(git_odb_object **out, git_odb *db, const git_oid *id)` - Change `git_odb_read_header`: New signature is `(size_t *len_p, git_otype *type_p, git_odb *db, const git_oid *id)` - Remove `git_odb_write` - Add `git_odb_open_wstream` - Add `git_odb_open_rstream` odb_backend.h ------------- - Change type `git_odb_backend`: New internal signatures are as follows int (* read)(void **, size_t *, git_otype *, struct git_odb_backend *, const git_oid *) int (* read_header)(size_t *, git_otype *, struct git_odb_backend *, const git_oid *) int (* writestream)(struct git_odb_stream **, struct git_odb_backend *, size_t, git_otype) int (* readstream)( struct git_odb_stream **, struct git_odb_backend *, const git_oid *) - Add type `git_odb_stream` - Add enum `git_odb_streammode` Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Change interface for Tree Index attr (always unsigned)Vicent Marti2011-03-051-1/+2
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Check for valid range of attributes for tree entrySakari Jokinen2011-03-051-1/+1
|
* Move the external includes folder from `src` to `include`Vicent Marti2011-03-031-0/+222
Signed-off-by: Vicent Marti <tanoku@gmail.com>