Log

Author Commit Date CI Message
Russell Belfer 1a42dd17 2013-05-31T14:13:11 Mutex init can fail It is obviously quite a serious problem if this happens, but mutex initialization can fail and we should detect it. It's a bit like a memory allocation failure, in that you're probably pretty screwed if this occurs, but at least we'll catch it.
Russell Belfer f658dc43 2013-05-31T14:09:58 Zero memory for major objects before freeing By zeroing out the memory when we free larger objects (i.e. those that serve as collections of other data, such as repos, odb, refdb), I'm hoping that it will be easier for libgit2 bindings to find errors in their object management code.
Vicent Martí 17ef7dbc 2013-05-31T09:51:53 Merge pull request #1626 from ethomson/index_ext_truncation improve test for index extension truncation
Edward Thomson 8c2458be 2013-05-31T11:41:33 improve test for index extension truncation
Vicent Martí 8d863aa2 2013-05-31T06:01:59 Merge pull request #1621 from NHDaly/clone_transport_flags Added support for setting transport flags (No check SSL cert) to git_clo...
Nathan Daly 88392914 2013-05-30T01:12:27 Added support for setting transport flags (No check SSL cert) to git_clone call.
Vicent Martí 9afc5971 2013-05-31T03:09:38 Merge pull request #1559 from carlosmn/ref-shorthand Introduce git_reference_shorthand
Vicent Martí af2c72d2 2013-05-31T03:08:48 Merge pull request #1623 from yorah/fix/tag_auto remote: make default tag retrieving behaviour consistent
Vicent Martí 9d6d809b 2013-05-31T03:06:07 Merge pull request #1530 from veeti/http-parser Build with the system's http-parser installation if available
Veeti Paananen 7a6e0281 2013-05-02T14:07:22 Build with the system's http-parser installation if available
yorah df50512a 2013-05-30T18:06:54 Proposal to handle default value (auto = 0)
yorah 215af2cc 2013-05-30T17:40:56 remote: make default tag retrieving behaviour consistent Default for newly created remotes will be auto. Default when loading existing remotes with no tag retrieving behaviour set, was already auto.
Ben Straub b2984e8a 2013-05-30T08:43:14 Merge pull request #1622 from yorah/fix/thread-segfault thread: fix segfault on Windows 64 bits
yorah d17db2fd 2013-05-30T11:30:34 thread: fix segfault on Windows 64 bits `lpExitCode` is a pointer to a long. A long is 32 bits wide on Windows. It means that on Windows 64bits, `GetExitCodeThread()` doesn't set/clear the high-order bytes of the 64 bits memory space pointed at by `value_ptr`.
Russell Belfer 0c01f93e 2013-05-29T14:50:24 Merge pull request #1619 from ethomson/gitignore_slash allow (ignore) bare slash in gitignore
Edward Thomson 2d160ef7 2013-05-29T16:03:30 allow (ignore) bare slash in gitignore
Vicent Martí 17776314 2013-05-29T09:55:51 Merge pull request #1617 from arrbee/fix-oid-memory-leak Fix memory leak in oid shortener tests
Russell Belfer ca9b1702 2013-05-29T09:18:21 Fix memory leak in oid shortener tests
Edward Thomson 504a4fd1 2013-05-28T14:12:55 Merge pull request #1615 from arthurschreiber/patch-1 Fix two typos in the merge docs.
Arthur Schreiber 31a61181 2013-05-29T00:02:26 Fix two typos in the merge docs.
Russell Belfer 9007c53f 2013-05-27T16:45:22 Fixing unwrapped calloc
Vicent Martí 8baca134 2013-05-27T06:15:28 Merge pull request #1614 from schu/packbuilder-write packbuilder: also write index in git_packbuilder_write
Michael Schubert 563c19a9 2013-05-11T11:36:29 packbuilder: also write index in git_packbuilder_write git_packbuilder_write() used to write a packfile to the passed file path. Instead, ask for a destination directory and create both the packfile and an index, as most users probably do expect.
Vicent Martí 63908cee 2013-05-27T03:24:52 Merge pull request #1613 from schu/transport-ssh tests: don't verify SSH unsupported with GIT_SSH
Michael Schubert 0582ae6f 2013-05-21T13:56:40 tests: don't verify SSH unsupported with GIT_SSH
Russell Belfer 5aee9632 2013-05-26T08:45:30 Merge pull request #1612 from drodriguez/fix-branch-delete-docs Fix documentation of git_branch_delete.
Daniel Rodríguez Troitiño f8bd730c 2013-05-26T17:29:00 Fix documentation of git_branch_delete. The reference should be freed by the user, not the library.
Vicent Martí 0d77647a 2013-05-25T09:45:02 Merge pull request #1609 from ethomson/qsort_r_glibc qsort_r appeared in glibc 2.8
Edward Thomson c37fb41a 2013-05-25T12:35:55 qsort_r appeared in glibc 2.8
Vicent Martí 85281328 2013-05-24T11:39:56 Merge pull request #1608 from arrbee/various-cleanups-and-tweaks Various cleanups and tweaks
Russell Belfer 7a5ee3dc 2013-05-24T11:09:04 Add ~ expansion to global attributes and excludes This adds ~/ prefix expansion for the value of core.attributesfile and core.excludesfile, plus it fixes the fact that the attributes cache was holding on to the string data from the config for a long time (instead of making its own strdup) which could have caused a problem if the config was refreshed. Adds a test for the new expansion capability.
Russell Belfer d20b0449 2013-05-24T10:37:40 Clarify GIT_DIFF_INCLUDE_UNTRACKED_CONTENT option This improves the docs for GIT_DIFF_INCLUDE_UNTRACKED_CONTENT as well as the other flags related to UNTRACKED items in diff, plus it makes that flag now automatically turn on GIT_DIFF_INCLUDE_UNTRACKED which seems like a reasonable dwim type of change.
Russell Belfer 16adc9fa 2013-05-24T10:35:58 Typedef git_config_level_t and use it everywhere The GIT_CONFIG_LEVEL constants actually work well as an enum because they are mutually exclusive, so this adds a typedef to the enum and uses that everywhere that one of these constants are expected, instead of the old code that typically used an unsigned int.
Russell Belfer 2e62e7c2 2013-05-24T10:33:41 Docs for git_libgit2_opts and cache disable tweak This adds docs for the cache control options to git_libgit2_opts and also tweaks the cache code so that if the cache is disabled, then the next time we attempt to insert something into the cache in question, we will actually clear any old cached objects.
Russell Belfer 0f1f9833 2013-05-24T10:32:07 Add typedefs on some public enums Apparently this makes things easier to bind in some languages.
Russell Belfer 5e57cfa1 2013-05-24T09:12:17 Merge pull request #1607 from ethomson/hurd qsort_r is broken on HURD, avoid
Vicent Martí 4bc67efd 2013-05-24T05:36:23 Merge pull request #1605 from ethomson/replace_reuc_fix Cherry picking REUC fixes
Russell Belfer 43efc449 2013-05-16T11:03:55 Ensure reuc vector is always valid In theory, if there was a problem reading the REUC data, the read_reuc() routine could have left uninitialized and invalid data in the git_index vector. This moves the line that inserts a new entry into the vector down to the bottom of the routine so we know all the content is already valid. Also, per @linquize, this uses calloc to ensure no uninitialized data.
Edward Thomson 25a899ec 2013-05-24T10:30:32 qsort_r is broken on HURD, avoid
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
Vicent Martí 87a56fe0 2013-05-24T00:44:50 Merge pull request #1604 from arrbee/config-file-checks Extend checking for config with no files
Ben Straub 6f0b8142 2013-05-23T17:28:52 Stop leaking memory
Russell Belfer 0700ca1a 2013-05-23T16:11:53 More config code checks and cleanups
Russell Belfer 3b32b6d3 2013-05-23T09:19:42 More tests of config with various absent files Plus a bit of extra paranoia to ensure config object has valid contents.
Russell Belfer 49f70f2c 2013-05-23T15:48:06 Fill out diff rename test coverage This extends the rename tests to make sure that every rename scenario in the inner loop of git_diff_find_similar is actually exercised. Also, fixes an incorrect assert that was in one of the clauses that was not previously being exercised.
Ben Straub 93d8f77f 2013-05-23T15:11:53 Improve test failure output
Russell Belfer f38cea97 2013-05-23T15:21:43 Move core.abbrev lookup out of diff print loop This moves the GIT_CVAR_ABBREV lookup out of the loop. Also, this fixes git_diff_print_raw to actually use that constant instead of hardcoding 7 characters.
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 c68b09dc 2013-05-23T11:52:34 Fix dereference of freed delta I was accidentally using a value that I had just freed. This moves the clearing of the delta internal flags into a better place.
Ben Straub 9c941ccf 2013-05-23T08:52:24 Merge pull request #1599 from nulltoken/topic/windows_resources Update windows resources to match the dll name
Ben Straub c4085fbf 2013-05-23T07:31:05 Merge pull request #1601 from Merovius/bugfix_shorten Bugfix: Return NULL in push_leaf, when trie is full
Axel Wagner 06c070b5 2013-05-23T09:43:56 Add testcase for #1600
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.
Axel Wagner 52f537e9 2013-05-22T02:04:12 Bugfix: Return NULL in push_leaf, when trie is full os->full was set 1, but the overflowed idx_leaf was still used to index into os->nodes a little later. Returning NULL fixes that.
nulltoken 095bfd74 2013-05-21T11:38:24 cmake: Update Windows resources to reflect the optional vendor string Make InternalName and OriginalFilename resources reflect the name of the compiled binary.
nulltoken ccf1a2ba 2013-05-21T11:37:13 cmake: Fix indentation
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
Edward Thomson 60750fc4 2013-05-20T13:53:00 Merge pull request #1596 from grimreaper/development Initialize loose_deleted before it is used for a check later on.
Russell Belfer 4742148d 2013-05-20T13:41:39 Add more diff rename detection tests This adds a bunch more rename detection tests including checks vs the working directory, the new exact match options, some more whitespace variants, etc. This also adds a git_futils_writebuffer helper function and uses it in checkout. This is mainly added because I wanted an easy way to write out a git_buf to disk inside my test code.
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.
Eitan Adler 038c1654 2013-05-19T01:41:00 Initialize loose_deleted before it is used for a check later on.
Russell Belfer 5c8f37a3 2013-05-17T17:33:03 Extend diff example Add --raw output format and (some) options to invoke rename/copy detection on the diff.
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 0293450e 2013-05-17T16:57:49 Fix delta compare to use correct pathname The delta cmp function needs to choose the correct path for ordering when a delta is ADDED, RENAMED, or COPIED.
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
Russell Belfer 5b3d52ce 2013-05-16T13:13:28 Merge pull request #1568 from nulltoken/topic/revparse_ext Introduce git_revparse_ext()
nulltoken f672cd2a 2013-05-10T20:15:57 revparse: Make revparse_ext() return git_reference from names as well
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).
nulltoken dcaa898d 2013-05-09T16:52:04 revparse: Simplify temporary reference freeing
Vicent Martí e3107e0e 2013-05-16T11:35:02 Merge pull request #1558 from bmorganpa/ssh_transport SSH Transport
Vicent Martí c2d282cf 2013-05-16T11:10:42 Merge pull request #1590 from arrbee/examples-like-git Add cat-file to examples (with some public API improvements)
Vicent Martí 18e37db9 2013-05-16T11:10:13 Merge pull request #1591 from arrbee/reorder-reuc-read-for-safety Ensure reuc vector is always valid
Russell Belfer 57908bb3 2013-05-16T11:03:55 Ensure reuc vector is always valid In theory, if there was a problem reading the REUC data, the read_reuc() routine could have left uninitialized and invalid data in the git_index vector. This moves the line that inserts a new entry into the vector down to the bottom of the routine so we know all the content is already valid. Also, per @linquize, this uses calloc to ensure no uninitialized data.
Russell Belfer 4a782c82 2013-05-16T11:02:30 Merge pull request #1574 from linquize/calloc Use calloc() for safety
Russell Belfer 8d784001 2013-05-16T10:43:10 Make examples/diff.c compile vs threadsafe library
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.
Linquize 7026ad89 2013-05-16T21:08:55 calloc() to initialize memory
Vicent Martí 12f831fa 2013-05-16T04:41:05 Merge pull request #1586 from jamill/fetch_fix Fetch should not fail when remote HEAD reference is not present locally
Vicent Martí 54e489c2 2013-05-15T16:35:47 Merge pull request #1579 from arrbee/index-entry-dup-and-free Index entry dup and free
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
Vicent Martí 6957f73c 2013-05-15T15:47:20 Merge pull request #1578 from nulltoken/fix/whitespaces Fix trailing whitespaces
Russell Belfer 72b3dd4a 2013-05-15T15:23:33 Use GIT_IDXENTRY_STAGE macro Since I added the GIT_IDXENTRY_STAGE macro to extract the stage from a git_index_entry, we probably don't need an internal inline function to do the same thing.
Russell Belfer 09fae31d 2013-05-15T14:58:26 Improve robustness of diff rename detection Under some strange circumstances, diffs can end up listing files that we can't actually open successfully. Instead of aborting the git_diff_find_similar, this makes it so that those files just won't be considered as valid rename/copy targets instead.
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.
Russell Belfer 55d3a390 2013-05-15T14:52:12 Remove old symlinks before updating Unlike blob updates, symlink updates cannot be done "in place" writing over an old symlink. This means that in checkout when we realize that we can safely update a symlink, we still need to remove the old one before writing the new.
Russell Belfer 79ef3be4 2013-05-15T14:50:05 Fix diff crash when last item is untracked dir When the last item in a diff was an untracked directory that only contained ignored items, the loop to scan the contents would run off the end of the iterator and dereference a NULL pointer. This includes a test that reproduces the problem and a fix.