| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\ |
|
| | |
| |
| |
| | |
We can simply ask the hasmap.
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| | | |
| | | | |
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.
|
| | | | | |
|
| |\ \ \ \
| |/ / /
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| |\ \ \ \
| | |/ /
| |/| | |
|
| | |\ \ \
| | | | |
| | | | | |
Don't use read-write accounts for the tests
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The assembla failure we were seeing referred to a private repository,
which is not what is there at the moment.
This reverts 1fd21b0342f
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | |\ \ \ \
| | |/ / /
| |/| | | |
netops: init OpenSSL once under lock
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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).
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
OpenSSL's tests init everything in the main thread, so let's do that.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We want to check whether the credentials callback is NULL, not whether
the payload is.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add docs for git_clone_local_t and move the docs for the
git_clone_options to each field.
|
| | |\ \ \ \
| | |_|_|/
| |/| | | |
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.
|
| | |\ \ \
| | | | |
| | | | | |
treebuilder: insert sorted
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
By inserting in the right position, we can keep the vector sorted,
making entry insertion almost twice as fast.
|
| | |/ / / |
|
| | | | | |
|
| | |\ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Bump library version to 0.21.0 and SONAME to 21
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | |\ \ \
| | | | |
| | | | | |
More remote rename fixes
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This was a bad idea. Don't free except in the free function.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | |\ \ \
| | | | |
| | | | | |
Win32: Fix object::cache::threadmania test on x64
|
| | | | | | |
|
| | |/ / / |
|
| | |\ \ \
| | |/ /
| |/| | |
Win32 test fixes
|
| | | | | |
|
| | |/ / |
|
| | |\ \
| | | |
| | | | |
Remote rename fixes
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|