Log

Author Commit Date CI Message
Carlos Martín Nieto 966fb207 2014-06-25T21:25:44 tree: free in error conditions As reported by coverity, we would leak some memory in error conditions.
Carlos Martín Nieto 5e0f47c3 2014-06-25T21:20:39 pack: free the new pack struct if we fail to insert If we fail to insert the packfile in the map, make sure to free it. This makes the free function only attempt to remove its mwindows from the global list if we have opened the packfile to avoid accessing the list unlocked.
Carlos Martín Nieto c61dc1a9 2014-06-25T17:12:44 travis: build the master branch We need to tell Travis to build the master branch or it won't build it or the pull requests.
Vicent Marti 1fe56243 2014-06-25T15:14:20 Merge pull request #2435 from ethomson/text_attr Update text=auto / core.autocrlf=false behavior
Vicent Marti a252b9e2 2014-06-25T15:14:14 Merge pull request #2439 from ethomson/revert_export Export git_revert_commit
Edward Thomson 4e813a8b 2014-06-25T09:11:07 Export git_revert_commit
Edward Thomson d412165f 2014-06-18T16:54:32 Update text=auto / core.autocrlf=false behavior Git for Windows 1.9.4 changed the behavior when the text=auto attribute is specified and core.autocrlf=false. Previous observed behavior would *not* filter files when going into the working directory, the new behavior *does* filter. Update our behavior to match.
Carlos Martín Nieto e1fc03c9 2014-06-24T17:56:27 Add CHANGELOG entry for mixed-EOL fix
Carlos Martín Nieto 3ddd0d92 2014-06-24T17:55:15 Merge remote-tracking branch 'upstream/cmn/mixed-eol-passthrough'
Carlos Martín Nieto 29fe897d 2014-06-24T17:52:52 Add CHANGELOG entry for treebuilder map
Carlos Martín Nieto 5e37874d 2014-06-24T17:51:45 Merge remote-tracking branch 'upstream/cmn/treebuilder-perf'
Carlos Martín Nieto 130cb548 2014-06-24T17:37:41 Add CHANGELOG entry for shared packs
Carlos Martín Nieto 58152669 2014-06-24T17:35:14 Merge branch 'cmn/global-mwf'
Vicent Marti 35757155 2014-06-24T17:30:47 Merge pull request #2434 from libgit2/rb/contributing-updates Update CONTRIBUTING and PROJECTS
Carlos Martín Nieto 5a76ad35 2014-06-19T11:45:46 crlf: pass-through mixed EOL buffers from LF->CRLF When checking out files, we're performing conversion into the user's native line endings, but we only want to do it for files which have consistent line endings. Refuse to perform the conversion for mixed-EOL files. The CRLF->LF filter is left as-is, as that conversion is considered to be normalization by git and should force a conversion of the line endings.
Carlos Martín Nieto b3b66c57 2014-06-18T17:13:12 Share packs across repository instances Opening the same repository multiple times will currently open the same file multiple times, as well as map the same region of the file multiple times. This is not necessary, as the packfile data is immutable. Instead of opening and closing packfiles directly, introduce an indirection and allocate packfiles globally. This does mean locking on each packfile open, but we already use this lock for the global mwindow list so it doesn't introduce a new contention point.
Carlos Martín Nieto d30447cb 2014-06-23T18:02:59 Add a CHANGELOG entry for the filebuf change
Carlos Martín Nieto 461da57a 2014-06-23T17:32:30 Merge remote-tracking branch 'upstream/cmn/filebuf-atomic-unlock'
Russell Belfer b247a39d 2014-06-20T10:15:03 missing paren
Russell Belfer a142ed91 2014-06-20T10:10:38 Update CONTRIBUTING and PROJECTS This updates CONTRIBUTING to reflect the changes to use the master branch and make explicit recommendations about updating CHANGELOG.md and providing test coverage. Also, this includes some old updates to PROJECTS.md that I wrote to expand the list of projects, pulling in things from old feature requests.
Vicent Marti 28f087c8 2014-06-20T14:42:16 libgit2 v0.21.0
Vicent Marti 1589aa0c 2014-06-16T11:11:40 Merge pull request #2425 from libgit2/cmn/clone-auth-change Don't use read-write accounts for the tests
Vicent Marti e93206e0 2014-06-14T12:58:03 Merge pull request #2421 from libgit2/cmn/init-ssl-once netops: init OpenSSL once under lock
Carlos Martín Nieto 09561d33 2014-06-13T22:27:46 test: remove assembla clone test The assembla failure we were seeing referred to a private repository, which is not what is there at the moment. This reverts 1fd21b0342f
Carlos Martín Nieto 3382d8b1 2014-06-13T22:24:43 test: use read-only account Don't write in plaintext the password of an account which has full control over the repository. Instead use an account with read-only access.
Carlos Martín Nieto 9c3e4e97 2014-06-13T02:35:33 http: fix typo in credentials logic We want to check whether the credentials callback is NULL, not whether the payload is.
Carlos Martín Nieto 081e76ba 2014-06-12T16:20:52 ssl: init everything all the time Bring together all of the OpenSSL initialization to git_threads_init() so it's together and doesn't need locks. Moving it here also gives us libssh2 thread safety (when built against openssl).
Carlos Martín Nieto 8f897b6f 2014-06-12T14:50:08 ssl: init also without threads
Carlos Martín Nieto cf15ac8a 2014-06-12T03:20:34 ssl: cargo-cult thread safety OpenSSL's tests init everything in the main thread, so let's do that.
Carlos Martín Nieto 5fa04943 2014-06-11T23:19:48 ssl: use locking When using in a multithreaded context, OpenSSL needs to lock, and leaves it up to application to provide said locks. We were not doing this, and it's just luck that's kept us from crashing up to now.
Carlos Martín Nieto 76f76162 2014-06-11T21:14:45 remote: update documentation Add docs for git_clone_local_t and move the docs for the git_clone_options to each field.
Carlos Martín Nieto 1d3364ac 2014-06-11T20:52:15 netops: init OpenSSL once under lock The OpenSSL init functions are not reentrant, which means that running multiple fetches in parallel can cause us to crash. Use a mutex to init OpenSSL, and since we're adding this extra checks, init it only once.
Vicent Marti 3f3d21ba 2014-06-11T18:56:24 Merge pull request #2417 from libgit2/cmn/revwalk-array-fix revwalk: more sensible array handling
Carlos Martín Nieto f9a97667 2014-06-11T00:06:44 revwalk: more sensible array handling Instead of using a sentinel empty value to detect the last commit, let's check for when we get a NULL from popping the stack, which lets us know when we're done. The current code causes us to read uninitialized data, although only on RHEL/CentOS 6 in release mode. This is a readability win overall.
Carlos Martín Nieto fcc60066 2014-06-09T22:59:32 treentry: no need for manual size book-keeping We can simply ask the hasmap.
Carlos Martín Nieto 978fbb4c 2014-06-09T22:45:23 treebuilder: don't keep removed entries around 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.
Carlos Martín Nieto 4d3f1f97 2014-06-09T04:38:22 treebuilder: use a map instead of vector to store the entries 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.
Vicent Marti 7064cdaf 2014-06-10T12:56:11 Merge pull request #2416 from libgit2/cmn/treebuilder-insert-sorted treebuilder: insert sorted
Carlos Martín Nieto 17fbf852 2014-06-10T03:53:26 pathspec: use C guards in header
Carlos Martín Nieto 2c11d2ee 2014-06-09T23:23:53 treebuilder: insert sorted By inserting in the right position, we can keep the vector sorted, making entry insertion almost twice as fast.
Carlos Martín Nieto 281da004 2014-06-09T19:35:41 remote: fix rename docs
Carlos Martín Nieto 47fae920 2014-06-08T20:01:45 Merge branch 'cmn/soversion' into development
Carlos Martín Nieto 4fb32a44 2014-06-08T20:01:02 Bump version to 0.21.0 Bump library version to 0.21.0 and SONAME to 21
Carlos Martín Nieto 99807672 2014-06-08T19:42:54 Change SOVERSION at API breaks 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.
Vicent Marti ce5e6617 2014-06-08T16:44:32 Merge pull request #2407 from libgit2/cmn/remote-rename-more More remote rename fixes
Vicent Marti 9560203d 2014-06-08T16:44:14 Merge pull request #2409 from phkelley/win32_thread_fixes Win32: Fix object::cache::threadmania test on x64
Philip Kelley 1b4e29b7 2014-06-07T13:56:39 React to review feedback
Philip Kelley fb591767 2014-06-07T12:51:48 Win32: Fix object::cache::threadmania test on x64
Philip Kelley df192198 2014-06-07T12:37:49 Merge pull request #2408 from phkelley/win32_test_fixes Win32 test fixes
Philip Kelley daf2a648 2014-06-07T12:18:56 Win32: Fix diff::workdir::submodules test #2361
Philip Kelley 6d1b0438 2014-06-07T12:18:24 Win32: Fix failing clone_mirror test
Carlos Martín Nieto 231f350d 2014-06-06T22:55:34 remote: don't free the remote on delete This was a bad idea. Don't free except in the free function.
Carlos Martín Nieto d1544564 2014-06-06T22:38:26 remote: handle symrefs when renaming 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.
Carlos Martín Nieto eb6aa791 2014-06-06T22:01:35 remote: failing test for renaming with a symref
Carlos Martín Nieto 72bca13e 2014-06-06T16:33:54 remote: return problem refspecs instead of using a callback 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.
Carlos Martín Nieto 61dcfe14 2014-06-06T15:57:37 remote: make sure the name stays valid on rename 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.
Carlos Martín Nieto 5a49ff9f 2014-06-06T15:54:42 remote: remove rename code for anonymous remotes 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.
Vicent Marti 716e20b4 2014-06-06T13:37:22 Merge pull request #2404 from libgit2/cmn/remote-rename-fixes Remote rename fixes
Vicent Marti c073184e 2014-06-06T13:35:29 Merge pull request #2405 from arthurschreiber/patch-4 Update AUTHORS
Arthur Schreiber 05554d83 2014-06-06T11:01:20 Update AUTHORS Add me. :)
Carlos Martín Nieto a52ab4b8 2014-06-06T01:09:49 remote: tighten up reference renaming 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.
Carlos Martín Nieto fe3b9d07 2014-06-06T00:54:11 remote: failing test for rename When there is a reference in the target namespace, we should overwrite it. Instead it gets a different name under the current code.
Carlos Martín Nieto e58281aa 2014-04-04T14:40:38 filebuf: make unlocking atomic When renaming a lock file to its final location, we need to make sure that it is replaced atomically. We currently have a workaround for Windows by removing the target file. This means that the target file, which may be a ref or a packfile, may cease to exist for a short wile, which shold be avoided. Implement the workaround only in Windows, by making sure that the file we want to replace is writable.
Vicent Marti 90befde4 2014-06-03T22:10:34 Merge pull request #2399 from libgit2/cmn/path-to-path clone: re-use the local transport's path resolution
Russell Belfer dfcba09e 2014-06-03T13:05:20 Merge pull request #2395 from libgit2/cmn/ref-iter-concurrent Concurrent ref iterator access
Carlos Martín Nieto 18d7896c 2014-06-03T21:47:53 clone: re-use the local transport's path resolution 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.
Vicent Marti bccb36eb 2014-06-03T17:25:59 Merge pull request #2389 from arthurschreiber/arthur/set-error-when-no-remote-found Remote: Set an error when a remote cannot be found.
Vicent Marti eb27d296 2014-06-03T17:23:43 Merge pull request #2396 from libgit2/cmn/docstuff Documentation formatting fixes
Carlos Martín Nieto 69a1a691 2014-06-03T16:18:08 Plug a leak in the tests
Carlos Martín Nieto dedfc734 2014-06-02T19:21:24 index: split GIT_IDXENTRY into two flag enums 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.
Carlos Martín Nieto 11e2665e 2014-06-02T18:53:32 Formatting fixes for the docs These are some issues I found while playing around with the new parser for docurium.
Carlos Martín Nieto 2d945f82 2014-06-02T17:44:51 refs: copy the packed refs on iteration This lets us work without worrying about what's happening but work on a snapshot.
Carlos Martín Nieto 4ee2543c 2014-06-02T16:46:47 refs: failing test for concurrent ref access If we remove a reference while we're iterating through the packed refs, the position in the iterator will be off.
Vicent Marti 2f6f6ebc 2014-06-01T16:26:44 Merge pull request #2392 from libgit2/cmn/remote-delete remote: build up the list of refs to remove
Carlos Martín Nieto 8a9419aa 2014-06-01T02:16:07 remote: build up the list of refs to remove 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.
Vicent Marti 9bc2813b 2014-05-31T19:59:41 Merge pull request #2391 from libgit2/rb/clean-up-diff-binary-print Minor fixes to binary diff code
Russell Belfer bc81220d 2014-05-31T10:19:55 minor cleanups
Russell Belfer 947a58c1 2014-05-30T13:19:49 Clean up the handling of large binary diffs
Arthur Schreiber d723dbed 2014-05-30T19:26:49 Remote: Set an error when a remote cannot be found. 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.
Vicent Marti 4cf82685 2014-05-30T19:07:59 Merge pull request #2388 from ethomson/safecrlf_ignore_warn Ignore core.safecrlf=warn until we have a warn infrastructure
Edward Thomson 49837fd4 2014-05-30T11:30:53 Ignore core.safecrlf=warn until we have a warn infrastructure
Vicent Marti 58eea5eb 2014-05-30T15:28:05 Merge pull request #2358 from arthurschreiber/arthur/normalize-ref-names-on-creation Respect core.precomposeunicode = true in more cases.
Arthur Schreiber 9d6c3d28 2014-05-30T15:15:54 Refs: Extend unicode test for branch creation. 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.
Arthur Schreiber 1a90b1e3 2014-05-30T14:53:28 Refs: Add a unicode test for git_branch_move. This tests that decomposed branch names are correctly precomposed when passed to `git_branch_move` and `core.precomposeunicode` is enabled.
Arthur Schreiber 824f755f 2014-05-20T17:31:53 Refs: Introduce `git_refname_t`.
Arthur Schreiber 68f9d6b2 2014-05-15T22:44:50 Refs: Fix some issue when core.precomposeunicode = true. This fixes two issues I found when core.precomposeunicode is enabled: * When creating a reference with a NFD string, the returned git_reference would return this NFD string as the reference’s name. But when looking up the reference later, the name would then be returned as NFC string. * Renaming a reference would not honor the core.precomposeunicode and apply no normalization to the new reference name.
Carlos Martín Nieto 5f0527ae 2014-05-30T13:06:34 config: initialize the error The error would be uninitialized if we take a snapshot of a config with no backends.
Vicent Marti 19d77ce1 2014-05-29T14:51:25 Merge pull request #2381 from ecoffey/example_log_author_filter Add support for --author flag in example log implementation
Vicent Marti 31c55152 2014-05-29T14:50:57 Merge pull request #2011 from libgit2/cmn/clone-local Local clone
Carlos Martín Nieto bc9f67fa 2014-05-29T10:03:04 clone: more explicit local tests Assert the exact amount of links we expect. While there, check that a plain git_clone() automatically chooses to link.
Russell Belfer 065a00e2 2014-05-28T14:51:22 Merge pull request #2386 from Therzok/patch-2 [Blob] Update documentation for is_binary.
Ungureanu Marius fda73bc5 2014-05-28T22:57:21 [Blob] Update documentation for is_binary. filter.h tells me that we check the first 8000 bytes.
Eoin Coffey 33bf1b1a 2014-05-28T09:40:08 examples/log.c: invert filtering impl and conditional
Carlos Martín Nieto 2614819c 2014-05-28T11:28:57 clone: allow for linking in local clone If requested, git_clone_local_into() will try to link the object files instead of copying them. This only works on non-Windows (since it doesn't have this) when both are on the same filesystem (which are unix semantics).
Carlos Martín Nieto 94f742ba 2014-05-28T10:18:05 fileops: allow linking files when copying directory structures When passed the LINK_FILES flag, the recursive copy will hardlink files instead of copying them.
Carlos Martín Nieto c1dbfcbb 2014-05-28T10:07:23 clone: add flag not to link
Carlos Martín Nieto 121b2673 2013-12-23T11:12:31 clone: add flags to override whether to perform a local clone
Carlos Martín Nieto a0b5f785 2013-12-22T15:39:54 clone: store the realpath when given a relative one A call like git_clone("./foo", "./foo1") writes origin's url as './foo', which makes it unusable, as they're relative to different things. Go with git's behaviour and store the realpath as the url.
Carlos Martín Nieto 4386d80b 2013-12-21T17:18:21 clone: perform a "local clone" when given a local path When git is given such a path, it will perform a "local clone", bypassing the git-aware protocol and simply copying over all objects that exist in the source. Copy this behaviour when given a local path.
Vicent Marti 5d91bea2 2014-05-28T13:55:57 Merge pull request #2380 from libgit2/cmn/index-add-modes index: check for valid filemodes on add