summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add CHANGELOG entry for treebuilder mapCarlos Martín Nieto2014-06-241-0/+2
|
* Merge remote-tracking branch 'upstream/cmn/treebuilder-perf'Carlos Martín Nieto2014-06-244-62/+72
|\
| * 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.
* | Add CHANGELOG entry for shared packsCarlos Martín Nieto2014-06-241-0/+2
| |
* | Merge branch 'cmn/global-mwf'Carlos Martín Nieto2014-06-247-14/+202
|\ \
| * | Share packs across repository instancescmn/global-mwfCarlos Martín Nieto2014-06-237-14/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #2434 from libgit2/rb/contributing-updatesVicent Marti2014-06-242-33/+75
|\ \ \ | | | | | | | | Update CONTRIBUTING and PROJECTS
| * | | missing parenrb/contributing-updatesRussell Belfer2014-06-201-1/+1
| | | |
| * | | Update CONTRIBUTING and PROJECTSRussell Belfer2014-06-202-33/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Add a CHANGELOG entry for the filebuf changeCarlos Martín Nieto2014-06-231-0/+5
| | | |
* | | | Merge remote-tracking branch 'upstream/cmn/filebuf-atomic-unlock'Carlos Martín Nieto2014-06-232-4/+28
|\ \ \ \ | |/ / / |/| | |
| * | | filebuf: make unlocking atomiccmn/filebuf-atomic-unlockCarlos Martín Nieto2014-06-042-4/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | libgit2 v0.21.0v0.21.0Vicent Marti2014-06-20784-10716/+31834
|\ \ \ \ | | |/ / | |/| |
| * | | Merge pull request #2425 from libgit2/cmn/clone-auth-changev0.21.0-rc2Vicent Marti2014-06-161-9/+3
| |\ \ \ | | | | | | | | | | Don't use read-write accounts for the tests
| | * | | test: remove assembla clone testcmn/clone-auth-changeCarlos Martín Nieto2014-06-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The assembla failure we were seeing referred to a private repository, which is not what is there at the moment. This reverts 1fd21b0342f
| | * | | test: use read-only accountCarlos Martín Nieto2014-06-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Merge pull request #2421 from libgit2/cmn/init-ssl-onceVicent Marti2014-06-144-16/+81
| |\ \ \ \ | | |/ / / | |/| | | netops: init OpenSSL once under lock
| | * | | ssl: init everything all the timecmn/init-ssl-onceCarlos Martín Nieto2014-06-123-87/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| | * | | ssl: init also without threadsCarlos Martín Nieto2014-06-121-9/+10
| | | | |
| | * | | ssl: cargo-cult thread safetyCarlos Martín Nieto2014-06-124-23/+46
| | | | | | | | | | | | | | | | | | | | OpenSSL's tests init everything in the main thread, so let's do that.
| | * | | ssl: use lockingCarlos Martín Nieto2014-06-111-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | netops: init OpenSSL once under lockCarlos Martín Nieto2014-06-113-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | http: fix typo in credentials logicCarlos Martín Nieto2014-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | We want to check whether the credentials callback is NULL, not whether the payload is.
| * | | | remote: update documentationCarlos Martín Nieto2014-06-111-18/+60
| | | | | | | | | | | | | | | | | | | | | | | | | Add docs for git_clone_local_t and move the docs for the git_clone_options to each field.
| * | | | Merge pull request #2417 from libgit2/cmn/revwalk-array-fixVicent Marti2014-06-111-2/+2
| |\ \ \ \ | | |_|_|/ | |/| | | revwalk: more sensible array handling
| | * | | revwalk: more sensible array handlingcmn/revwalk-array-fixCarlos Martín Nieto2014-06-111-2/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | 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.