include


Log

Author Commit Date CI Message
Vicent Martí 26ab6284 2013-05-24T03:30:35 Merge pull request #1593 from ethomson/conflict_iterator introduce git_conflict_iterator
Vicent Martí f7ceef06 2013-05-24T03:24:27 Merge pull request #1592 from ethomson/merge_setup merge setup
Vicent Martí 4811c150 2013-05-24T01:14:52 Merge pull request #1603 from ben/shallow Shallow-clone detection
Vicent Martí 30caf0cf 2013-05-24T01:13:48 Merge pull request #1595 from arrbee/even-more-rename-fixes Even more rename detection fixes
Ben Straub 93d8f77f 2013-05-23T15:11:53 Improve test failure output
Russell Belfer 67db583d 2013-05-23T15:06:07 More diff rename tests; better split swap handling This adds a couple more tests of different rename scenarios. Also, this fixes a problem with the case where you have two "split" deltas and the left half of one matches the right half of the other. That case was already being handled, but in the wrong order in a way that could result in bad output. Also, if the swap also happened to put the other two halves into the correct place (i.e. two files exchanged places with each other), then the second delta was left with the SPLIT flag set when it really should be cleared.
Russell Belfer a21cbb12 2013-05-22T10:37:12 Significant rename detection rewrite This flips rename detection around so instead of creating a forward mapping from deltas to possible rename targets, instead it creates a reverse mapping, looking at possible targets and trying to find a source that they could have been renamed or copied from. This is important because each output can only have a single source, but a given source could map to multiple outputs (in the form of COPIED records). Additionally, this makes a couple of tweaks to the public rename detection APIs, mostly renaming a couple of options that control the behavior to make more sense and to be more like core Git. I walked through the tests looking at the exact results and updated the expectations based on what I saw. The new code is different from the old because it cannot give some nonsense results (like A was renamed to both B and C) which were part of the outputs previously.
Ben Straub 6828bf26 2013-05-21T10:49:36 Merge pull request #1594 from nulltoken/topic/tag_annotation tag: Introduce git_tag_annotation_create()
nulltoken b81cc1d6 2013-05-18T16:52:16 tag: Introduce git_tag_annotation_create()
Ben Straub e167ec18 2013-05-21T08:09:17 Merge pull request #1597 from zodiac/patch-1 define "long name" in git_reference_name_to_id
Carlos Martín Nieto fc74343f 2013-05-21T16:51:50 refs: export the glob iterator
Li Xuanji e069478e 2013-05-21T21:35:58 define "long name" in git_reference_name_to_id
Russell Belfer 9be5be47 2013-05-20T13:37:21 More git_diff_find_similar improvements - Add new GIT_DIFF_FIND_EXACT_MATCH_ONLY flag to do similarity matching without using the similarity metric (i.e. only compare the SHA). - Clean up the similarity measurement code to more rigorously distinguish between files that are not similar and files that are not comparable (previously, a 0 could either mean that the files could not be compared or that they were totally different) - When splitting a MODIFIED file into a DELETE/ADD pair, actually make a DELETED/UNTRACKED pair if the right side of the diff is from the working directory. This prevents an odd mix of ADDED and UNTRACKED files on workdir diffs.
Russell Belfer d958e37a 2013-05-17T17:21:45 Fix issues with git_diff_find_similar There are a number of bugs in the rename code that only were obvious when I started testing it against large old repos with more complex patterns. (The code to do that testing is not ready to merge with libgit2, but I do plan to add more thorough tests.) This contains a significant number of changes and also tweaks the public API slightly to make emulating core git easier. Most notably, this separates the GIT_DIFF_FIND_AND_BREAK_REWRITES flag into FIND_REWRITES (which adds a self-similarity score to every modified file) and BREAK_REWRITES (which splits the modified deltas into add/remove pairs in the diff list). When you do a raw output of core git, rewrites show up as M090 or such, not at A and D output, so I wanted to be able to emulate that. Publicly, this also changes the flags to be uint16_t since we don't need values out of that range. Internally, this contains significant changes from a number of small bug fixes (like using the wrong side of the diff to decide if the object could be found in the ODB vs the workdir) to larger issues about which files can and should be compared and how the various edge cases of similarity scores should be treated. Honestly, I don't think this is the last update that will have to be made to this code, but I think this moves us closer to correct behavior and I tried to document the code so it would be easier to follow..
Russell Belfer aadfa85b 2013-05-17T16:41:15 Add git_diff_print_raw printing helper Makes it easier to emulate the --raw option
Russell Belfer 660d59ca 2013-05-17T16:40:00 Add git_oid_nfmt - a flexible OID formatter I frequently want to the the first N digits of an OID formatted as a string and I'd like it to be efficient. This function makes that easy and I could rewrite the OID formatters in terms of it.
Edward Thomson 0e0108f7 2013-05-17T15:59:57 introduce git_conflict_iterator
Edward Thomson 9c06b250 2013-05-16T13:04:37 merge setup
nulltoken e841c533 2013-05-09T16:42:39 revparse: Introduce git_revparse_ext() Expose a way to retrieve, along with the target git_object, the reference pointed at by some revparse expression (`@{<-n>}` or `<branchname>@{upstream}` syntax).
Vicent Martí e3107e0e 2013-05-16T11:35:02 Merge pull request #1558 from bmorganpa/ssh_transport SSH Transport
Russell Belfer 58206c9a 2013-05-16T10:38:27 Add cat-file example and increase const use in API This adds an example implementation that emulates git cat-file. It is a convenient and relatively simple example of getting data out of a repository. Implementing this also revealed that there are a number of APIs that are still not using const pointers to objects that really ought to be. The main cause of this is that `git_vector_bsearch` may need to call `git_vector_sort` before doing the search, so a const pointer to the vector is not allowed. However, for tree objects, with a little care, we can ensure that the vector of tree entries is always sorted and allow lookups to take a const pointer. Also, the missing const in commit objects just looks like an oversight.
Russell Belfer 89251b28 2013-05-15T16:25:11 Update index.h docs Move the git_index_entry to the very top, since it provides the main structure that needs to be understood by the reader, then move the bitmasks for the flags and the flags_extended under that since they are details for looking at particular fields of the structure.
Russell Belfer 96c01991 2013-05-15T09:24:51 Remove entry dup/free functions and fix comments This removes the functions to duplicate and free copies of a git_index_entry and updates the comments to explain that you should just use the public definition of the struct as needed.
Russell Belfer 797dfb28 2013-05-13T16:09:33 Add APIs to dup and free git_index_entrys This adds git_index_entry_dup to make a copy of an existing entry and git_index_entry_free to release the memory of the copy. It also updates the documentation for git_index_get_bypath and git_index_get_byindex to make it clear that the returned structure should *not* be modified.
Russell Belfer 487884a9 2013-05-13T16:07:29 Improve docs for git_index_entry flag masks The constants for extracting data from git_index_entry flags and flags_extended are not named in a way that makes it easy to know where to use each one. This improves the docs for the flags (and slightly reorganizes them), so it should be more obvious.
Vicent Martí 71596200 2013-05-15T15:47:46 Merge pull request #1588 from arrbee/fixes-for-checkout-and-diff Bug fixes for checkout and diff
Russell Belfer dcb0f7c0 2013-05-15T14:54:02 Fix checkout of submodules with no .gitmodules It is possible for there to be a submodule in a repository with no .gitmodules file (for example, if the user forgot to commit the .gitmodules file). In this case, core Git will just create an empty directory as a placeholder for the submodule but otherwise ignore it. We were generating an error and stopping the checkout. This makes our behavior match that of core git.
nulltoken 1fed6b07 2013-05-13T21:57:37 Fix trailing whitespaces
Linquize 0cb16fe9 2013-05-15T20:26:55 Unify whitespaces to tabs
Edward Thomson b6cc559a 2013-05-11T02:42:49 Merge pull request #1385 from carlosmn/refs-iter Introduce a refs iterator
Carlos Martín Nieto c58cac12 2013-05-04T18:06:14 Introduce a glob-filtering iterator If the backend doesn't provide support for it, the matching is done in refdb on top of a normal iterator.
Carlos Martín Nieto 2b562c3a 2013-05-04T16:32:58 refs: remove the OID/SYMBOLIC filtering Nobody should ever be using anything other than ALL at this level, so remove the option altogether. As part of this, git_reference_foreach_glob is now implemented in the frontend using an iterator. Backends will later regain the ability of doing the glob filtering in the backend.
Carlos Martín Nieto 4def7035 2013-03-02T19:31:03 refs: introduce an iterator This allows us to get a list of reference names in a loop instead of callbacks.
Brad Morgan 89ea0e51 2013-05-10T09:40:14 Removed ifdef
Brad Morgan b4d81a00 2013-05-09T17:40:21 Moved libssh2 sign callback into typedef
Russell Belfer 3d1c9f61 2013-05-09T06:45:06 Fix git_repository_message docs This clarifies the docs for git_repository_message and also adds to the tests to explicitly check NUL termination of data when the output buffer is smaller than the message size. There is a minor behavior change so that a non-NULL output buffer will always be NUL terminated (at length zero) if an error occurs.
Vicent Martí 503dd0f3 2013-05-09T05:43:25 Merge pull request #1560 from carlosmn/ref-dwim Expose git_reference_dwim
Vicent Martí af795759 2013-05-07T15:09:11 Merge pull request #1552 from carlosmn/config-helpers Config helpers for global/xdg config files
Carlos Martín Nieto 98d633cc 2013-05-07T23:28:21 Expose git_reference_dwim Extract this function out of the rev-parse code to be able to DWIM a reference instead of its target.
Carlos Martín Nieto 5d831887 2013-05-07T00:10:02 config: convenience function to open global/xdg The rules for which one to open is a bit silly, so let's make it easier for our users.
Brad Morgan 4ca3d6d2 2013-05-07T14:37:15 Added ifdef
Brad Morgan 00e43380 2013-05-07T14:30:35 Merge remote-tracking branch 'origin/development' into ssh_transport
Brad Morgan 574b86b7 2013-05-07T13:53:23 Fixed compilation issues when libssh2 is missing
Brad Morgan c36565c0 2013-05-07T13:43:10 Added SSH public key authentication
Vicent Martí 33665410 2013-05-07T08:00:44 Merge pull request #1556 from arrbee/diff-patch-fixes Diff patch bug fixes
Russell Belfer d63eec69 2013-05-07T04:44:08 Improve diff function docs
Russell Belfer e35e2684 2013-05-07T04:32:17 Add GIT_DIFF_LINE_CONTEXT_EOFNL This adds a new line origin constant for the special line that is used when both files end without a newline. In the course of writing the tests for this, I was having problems with modifying a file but not having diff notice because it was the same size and modified less than one second from the start of the test, so I decided to start working on nanosecond timestamp support. This commit doesn't contain the nanosecond support, but it contains the reorganization of maybe_modified and the hooks so that if the nanosecond data were being read by stat() (or rather being copied by git_index_entry__init_from_stat), then the nsec would be taken into account. This new stuff could probably use some more tests, although there is some amount of it here.
J. David Ibáñez 6e865996 2013-05-07T07:33:35 Add git_commit_owner to the public interface Just like git_tree_owner, etc.
Vicent Martí 450a78bf 2013-05-06T06:33:02 Merge pull request #1545 from ethomson/checkout_dirs_in_use allow checkout to proceed when a dir to be removed is in use (win32)
Nikolai Vladimirov 72662202 2013-05-06T15:31:26 branch.h: fix typo in docs
nulltoken 467cbec7 2013-05-05T16:48:34 commit: make create_from_oids() accept plain oid
Brad Morgan f7158cd7 2013-05-03T16:31:16 Push working over ssh
Edward Thomson e09d18ee 2013-05-03T18:39:44 allow checkout to proceed when a dir to be removed is in use (win32)
Brad Morgan 297758dc 2013-05-03T10:37:33 Added ssh transport file
Vicent Martí 758e50c5 2013-05-01T06:18:09 Merge pull request #1389 from ethomson/merge_trees Merge trees
Vicent Martí cfcdbc10 2013-05-01T03:03:17 Merge pull request #1523 from libgit2/vmg/namespaces Namespace support
Edward Thomson 75d1c8c6 2013-04-30T17:33:11 move NAME and REUC extensions to sys/
Edward Thomson 0462fba5 2013-04-30T14:56:41 renames!
Edward Thomson bec65a5e 2013-04-01T22:16:21 merge!
Vicent Marti bade5194 2013-04-30T21:02:13 lol namespaces
Russell Belfer 61c00541 2013-04-29T06:21:56 Update comment for clarity
Russell Belfer e26b14c0 2013-04-26T15:35:47 Update diff handling of untracked directories When diff encounters an untracked directory, there was a shortcut that it took which is not compatible with core git. This makes the default behavior no longer take that shortcut and instead look inside the untracked directory to see if there are any untracked files within it. If there are not, then the directory is treated as an ignore directory instead of an untracked directory. This has implications for the git_status APIs.
Vicent Marti 0b726701 2013-04-30T13:13:38 object: Explicitly define helper API methods for all obj types
Vicent Martí cd2ed9f0 2013-04-30T04:02:52 Merge pull request #1518 from arrbee/export-oid-comparison Remove most inlines from the public API
Carlos Martín Nieto 1ffd0806 2013-04-30T11:18:16 remote: add resfpec list accessors Bring back a way of acessing the git_refspec* from a remote. Closes #1514
Carlos Martín Nieto 8d39f2a7 2013-04-30T10:55:17 refspec: add direction accessor
Russell Belfer 203d5b0e 2013-04-29T18:20:58 Some cleanups Removed useless prototype and renamed object typecast functions declaration macro.
Russell Belfer d7761102 2013-04-29T14:22:06 Standardize cast versions of git_object accessors This removes the GIT_INLINE versions of the simple git_object accessors and standardizes them with a helper macro in src/object.h to build the function bodies.
Russell Belfer b7f167da 2013-04-29T13:52:12 Make git_oid_cmp public and add git_oid__cmp
Russell Belfer aa8f0101 2013-04-29T08:59:46 Add git_oid_strcmp and use it for git_oid_streq Add a new git_oid_strcmp that compares a string OID with a hex oid for sort order, and then reimplement git_oid_streq using it. This actually should speed up git_oid_streq because it only reads as far into the string as it needs to, whereas previously it would convert the whole string into an OID and then use git_oid_cmp.
Russell Belfer 0c72248b 2013-04-29T07:34:13 Introduce git_oid_compare, an exported oid cmp
Carlos Martín Nieto 528a4e24 2013-04-28T14:16:45 Parse shorthand refspecs as valid Relax the ONELEVEL ref naming rules so the refspec parsing code can ask for 'master' to be considered valid.
Carlos Martín Nieto b4117e19 2013-04-24T20:09:42 docs: formatting fixes
Vicent Marti 879458e7 2013-04-24T15:52:33 repo: Add `git_repository__cleanup`
Vicent Martí 495d6f07 2013-04-23T12:15:35 Merge pull request #1502 from nvloff/remote_refspecs_minor_fixes Remote refspecs minor fixes
Vicent Martí 7915e6cc 2013-04-23T11:48:12 Merge pull request #1498 from libgit2/vmg/atomic64 64 bit atomic operations and shared cache memory usage
Vicent Marti a2378ae4 2013-04-23T20:42:29 opts: Add getter for cached memory
Vicent Martí 6c9dc12b 2013-04-23T11:37:40 Merge pull request #1501 from xavier-l/packbuilder-commit Added function to insert commit into pack
Nikolai Vladimirov a952b986 2013-04-23T21:28:28 remove git_remote_pushspec
Carlos Martín Nieto 9a9de29d 2013-04-23T19:08:13 Document the odb backend constructors
Xavier L f0e37a8b 2013-04-23T12:22:29 Added function to insert commit into pack
Vicent Marti d8771592 2013-04-22T17:04:52 cache: Max cache size, and evict when the cache fills up
Vicent Marti ee12272d 2013-04-05T22:48:39 Global option setters
Vicent Marti e16e2684 2013-04-04T02:09:32 No longer needed
Vicent Martí a472f887 2013-04-22T07:44:32 Merge pull request #1493 from carlosmn/remotes Revamp the refspec handling
Russell Belfer 21ca0451 2013-04-21T12:52:17 Move git_reference__alloc to include/git2/sys Create a new include/git2/sys/refs.h and move the reference alloc functions there. Also fix some documentation issues and some minor code cleanups.
Russell Belfer 4dcd8780 2013-04-19T17:17:44 Move refdb_backend to include/git2/sys This moves most of the refdb stuff over to the include/git2/sys directory, with some minor shifts in function organization. While I was making the necessary updates, I also removed the trailing whitespace in a few files that I modified just because I was there and it was bugging me.
Russell Belfer 9233b3de 2013-04-19T13:17:29 Move git_commit_create_from_oids into sys/commit.h Actually this renames git_commit_create_oid to git_commit_create_from_oids and moves the API declaration to include/git2/sys/commit.h since it is a dangerous API for general use (because it doesn't check that the OID list items actually refer to real objects).
John Wiegley 92550398 2013-01-29T09:53:23 Added git_commit_create_oid
Russell Belfer 1384b688 2013-04-19T13:00:12 Move some low-level repo fns to include/git2/sys
John Wiegley 7cc3c920 2013-01-29T07:48:36 Added git_repository_new function
Russell Belfer 83cc70d9 2013-04-19T12:48:33 Move odb_backend implementors stuff into git2/sys This moves some of the odb_backend stuff that is related to the internals of an odb_backend implementation into include/git2/sys. Some of the stuff related to streaming I left in include/git2 because it seemed like it would be reasonably needed by a normal user who wanted to stream objects into and out of the ODB. Also, I added APIs for traversing the list of backends so that some of the tests would not need to access ODB internals.
Russell Belfer 83041c71 2013-04-19T11:52:04 Move git_config_backend to include/git2/sys Moving backend implementor objects into include/git2/sys so the APIs can be isolated from the ones that normal libgit2 users would be likely to use.
Carlos Martín Nieto 1be680c4 2013-04-20T19:13:47 refspec: unify the string and parsed data It used to be separate as an attempt to make the querying easier, but it didn't work out that way, so put all the data together. Add git_refspec_string() as well to get the original string, which is now stored alongside the independent parts.
Carlos Martín Nieto bc6374ea 2013-04-20T18:49:11 remote: allow querying for refspecs Introduce git_remote_{fetch,push}_refspecs() to get a list of refspecs from the remote and rename the refspec-adding functions to a less silly name. Use this instead of the vector index hacks in the tests.
Carlos Martín Nieto 4330ab26 2013-04-20T04:43:28 remote: handle multiple refspecs A remote can have a multitude of refspecs. Up to now our git_remote's have supported a single one for each fetch and push out of simplicity to get something working. Let the remotes and internal code know about multiple remotes and get the tests passing with them. Instead of setting a refspec, the external users can clear all and add refspecs. This should be enough for most uses, though we're still missing a querying function.
Edward Thomson 4e4eab52 2013-04-19T18:19:53 alloc doesn't take a refdb; git_refdb_free nicely in the tests
Carlos Martín Nieto 4a38143c 2013-04-19T23:55:37 remote: specify what values direction can mean in git_remote_connect() This fixes #1487
Vicent Marti 437d3666 2013-04-18T00:15:08 repository: Doc fix
Vicent Martí 0d9bf890 2013-04-17T14:59:28 Merge pull request #1475 from libgit2/vmg/refs-peel Allow access to the cached peel data in packed-refs