summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* treentry: no need for manual size book-keepingcmn/treebuilder-perfCarlos Martín Nieto2014-06-102-10/+6
| | | | We can simply ask the hasmap.
* treebuilder: don't keep removed entries aroundCarlos Martín Nieto2014-06-103-38/+22
| | | | | | If the user wants to keep a copy for themselves, they should make a copy. It adds unnecessary complexity to make sure the returned entries are valid until the builder is cleared.
* treebuilder: use a map instead of vector to store the entriesCarlos Martín Nieto2014-06-104-54/+84
| | | | | | | | | | | | | | | | | Finding a filename in a vector means we need to resort it every time we want to read from it, which includes every time we want to write to it as well, as we want to find duplicate keys. A hash-map fits what we want to do much more accurately, as we do not care about sorting, but just the particular filename. We still keep removed entries around, as the interface let you assume they were going to be around until the treebuilder is cleared or freed, but in this case that involves an append to a vector in the filter case, which can now fail. The only time we care about sorting is when we write out the tree, so let's make that the only time we do any sorting.
* Merge pull request #2416 from libgit2/cmn/treebuilder-insert-sortedVicent Marti2014-06-101-2/+2
|\ | | | | treebuilder: insert sorted
| * treebuilder: insert sortedcmn/treebuilder-insert-sortedCarlos Martín Nieto2014-06-101-2/+2
| | | | | | | | | | By inserting in the right position, we can keep the vector sorted, making entry insertion almost twice as fast.
* | pathspec: use C guards in headerCarlos Martín Nieto2014-06-101-0/+3
|/
* remote: fix rename docsCarlos Martín Nieto2014-06-091-3/+0
|
* Merge branch 'cmn/soversion' into developmentCarlos Martín Nieto2014-06-082-3/+8
|\
| * Bump version to 0.21.0Carlos Martín Nieto2014-06-081-3/+3
| | | | | | | | Bump library version to 0.21.0 and SONAME to 21
| * Change SOVERSION at API breakscmn/soversionCarlos Martín Nieto2014-06-082-1/+6
|/ | | | | | | | | | Since the SOVERSION doesn't need to follow the library's version and simply needs to be monotonically increasing whenever we release something that breaks the ABI, we can set some number and allow multiple versions of the library to be installed side-by-side. We start here with the minor version as that's what we release for now, and it allows to backport this change to earlier versions.
* Merge pull request #2407 from libgit2/cmn/remote-rename-morev0.21.0-rc1Vicent Marti2014-06-085-115/+191
|\ | | | | More remote rename fixes
| * remote: don't free the remote on deletecmn/remote-rename-moreCarlos Martín Nieto2014-06-063-5/+1
| | | | | | | | This was a bad idea. Don't free except in the free function.
| * remote: handle symrefs when renamingCarlos Martín Nieto2014-06-061-10/+39
| | | | | | | | | | | | | | A symref inside the namespace gets renamed, we should make it point to the target's new name. This is for the origin/HEAD -> origin/master type of situations.
| * remote: failing test for renaming with a symrefCarlos Martín Nieto2014-06-061-0/+48
| |
| * remote: return problem refspecs instead of using a callbackCarlos Martín Nieto2014-06-064-56/+87
| | | | | | | | | | | | There is no reason why we need to use a callback here. A string array fits better with the usage, as this is not an event and we don't need anything from the user.
| * remote: make sure the name stays valid on renameCarlos Martín Nieto2014-06-061-3/+6
| | | | | | | | | | | | We must make sure that the name pointer remains valid, so make sure to allocate the new one before freeing the old one and swap them so the user never sees an invalid pointer.
| * remote: remove rename code for anonymous remotesCarlos Martín Nieto2014-06-061-42/+11
| | | | | | | | | | | | | | | | We don't allow renames of anonymous remotes, so there's no need to handle them. A remote is always associated with a repository, so there's no need to check for that.
* | Merge pull request #2409 from phkelley/win32_thread_fixesVicent Marti2014-06-088-71/+107
|\ \ | | | | | | Win32: Fix object::cache::threadmania test on x64
| * | React to review feedbackPhilip Kelley2014-06-073-18/+26
| | |
| * | Win32: Fix object::cache::threadmania test on x64Philip Kelley2014-06-078-68/+96
|/ /
* | Merge pull request #2408 from phkelley/win32_test_fixesPhilip Kelley2014-06-072-2/+5
|\ \ | |/ |/| Win32 test fixes
| * Win32: Fix diff::workdir::submodules test #2361Philip Kelley2014-06-071-2/+2
| |
| * Win32: Fix failing clone_mirror testPhilip Kelley2014-06-071-0/+3
|/
* Merge pull request #2404 from libgit2/cmn/remote-rename-fixesVicent Marti2014-06-062-7/+39
|\ | | | | Remote rename fixes
| * remote: tighten up reference renamingcmn/remote-rename-fixesCarlos Martín Nieto2014-06-061-7/+9
| | | | | | | | | | | | | | | | Tighten up which references we consider for renaming so we don't try to rename unrelated ones and end up with unexplained references. If there is a reference on the target namespace, git overwrites it, so let's do the same.
| * remote: failing test for renameCarlos Martín Nieto2014-06-061-0/+30
| | | | | | | | | | When there is a reference in the target namespace, we should overwrite it. Instead it gets a different name under the current code.
* | Merge pull request #2405 from arthurschreiber/patch-4Vicent Marti2014-06-061-0/+1
|\ \ | |/ |/| Update AUTHORS
| * Update AUTHORSArthur Schreiber2014-06-061-0/+1
|/ | | | Add me. :)
* Merge pull request #2399 from libgit2/cmn/path-to-pathVicent Marti2014-06-034-35/+26
|\ | | | | clone: re-use the local transport's path resolution
| * clone: re-use the local transport's path resolutioncmn/path-to-pathCarlos Martín Nieto2014-06-034-35/+26
| | | | | | | | | | | | Whe already worked out the kinks with the function used in the local transport. Expose it and make use of it in the local clone method instead of trying to work it out again.
* | Merge pull request #2395 from libgit2/cmn/ref-iter-concurrentRussell Belfer2014-06-032-8/+49
|\ \ | |/ |/| Concurrent ref iterator access
| * refs: copy the packed refs on iterationcmn/ref-iter-concurrentCarlos Martín Nieto2014-06-021-8/+16
| | | | | | | | | | This lets us work without worrying about what's happening but work on a snapshot.
| * refs: failing test for concurrent ref accessCarlos Martín Nieto2014-06-021-0/+33
| | | | | | | | | | If we remove a reference while we're iterating through the packed refs, the position in the iterator will be off.
* | Merge pull request #2389 from ↵Vicent Marti2014-06-032-0/+10
|\ \ | | | | | | | | | | | | arthurschreiber/arthur/set-error-when-no-remote-found Remote: Set an error when a remote cannot be found.
| * | Remote: Set an error when a remote cannot be found.Arthur Schreiber2014-05-302-0/+10
| | | | | | | | | | | | | | | | | | | | | Inside `git_remote_load`, the calls to `get_optional_config` use `giterr_clear` to unset any errors that are set due to missing config keys. If neither a fetch nor a push url config was found for a remote, we should set an error again.
* | | Merge pull request #2396 from libgit2/cmn/docstuffVicent Marti2014-06-035-86/+89
|\ \ \ | | | | | | | | Documentation formatting fixes
| * | | index: split GIT_IDXENTRY into two flag enumscmn/docstuffCarlos Martín Nieto2014-06-031-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | The documentation has shown this as a single enum for a long time. These should in fact be two enums. One with the bits for the flags and another with the bits for the extended flags.
| * | | Formatting fixes for the docsCarlos Martín Nieto2014-06-035-58/+58
| | |/ | |/| | | | | | | | | | These are some issues I found while playing around with the new parser for docurium.
* | | Plug a leak in the testsCarlos Martín Nieto2014-06-031-0/+2
|/ /
* | Merge pull request #2392 from libgit2/cmn/remote-deleteVicent Marti2014-06-011-8/+34
|\ \ | | | | | | remote: build up the list of refs to remove
| * | remote: build up the list of refs to removecmn/remote-deleteCarlos Martín Nieto2014-06-011-8/+34
|/ / | | | | | | | | | | When removing the remote-tracking branches, build up the list and remove in two steps, working around an issue with the iterator. Removing while we're iterating over the refs can cause us to miss references.
* | Merge pull request #2391 from libgit2/rb/clean-up-diff-binary-printVicent Marti2014-05-312-38/+55
|\ \ | | | | | | Minor fixes to binary diff code
| * | minor cleanupsRussell Belfer2014-05-311-5/+5
| | |
| * | Clean up the handling of large binary diffsRussell Belfer2014-05-312-38/+55
|/ /
* | Merge pull request #2388 from ethomson/safecrlf_ignore_warnVicent Marti2014-05-302-1/+48
|\ \ | |/ |/| Ignore core.safecrlf=warn until we have a warn infrastructure
| * Ignore core.safecrlf=warn until we have a warn infrastructureEdward Thomson2014-05-302-1/+48
|/
* Merge pull request #2358 from ↵Vicent Marti2014-05-304-34/+37
|\ | | | | | | | | arthurschreiber/arthur/normalize-ref-names-on-creation Respect core.precomposeunicode = true in more cases.
| * Refs: Extend unicode test for branch creation.Arthur Schreiber2014-05-301-0/+3
| | | | | | | | | | | | This adds another assertion to ensure that the reference name inside the git_reference struct returned by `git_branch_create` is returned as precomposed if `core.precomposeunicode` is enabled.
| * Refs: Add a unicode test for git_branch_move.Arthur Schreiber2014-05-301-0/+17
| | | | | | | | | | This tests that decomposed branch names are correctly precomposed when passed to `git_branch_move` and `core.precomposeunicode` is enabled.
| * Refs: Introduce `git_refname_t`.Arthur Schreiber2014-05-302-13/+12
| |