|
5d2d21e5
|
2013-04-16T15:00:43
|
|
Consolidate packfile allocation further
Rename git_packfile_check to git_packfile_alloc since it is now
being used more in that capacity. Fix the various places that use
it. Consolidate some repeated code in odb_pack.c related to the
allocation of a new pack_backend.
|
|
38eef611
|
2013-04-16T14:19:27
|
|
Make indexer use shared packfile open code
The indexer was creating a packfile object separately from the
code in pack.c which was a problem since I put a call to
git_mutex_init into just pack.c. This commit updates the pack
function for creating a new pack object (i.e. git_packfile_check())
so that it can be used in both places and then makes indexer.c
use the shared initialization routine.
There are also a few minor formatting and warning message fixes.
|
|
e976b56d
|
2013-04-15T14:27:53
|
|
Add git__compare_and_swap and use it
This removes the lock from the repository object and changes the
internals to use the new atomic git__compare_and_swap to update
the _odb, _config, _index, and _refdb variables in a threadsafe
manner.
|
|
53607868
|
2013-04-15T00:09:03
|
|
Further threading fixes
This builds on the earlier thread safety work to make it so that
setting the odb, index, refdb, or config for a repository is done
in a threadsafe manner with minimized locking time. This is done
by adding a lock to the repository object and using it to guard
the assignment of the above listed pointers. The lock is only
held to assign the pointer value.
This also contains some minor fixes to the other work with pack
files to reduce the time that locks are being held to and fix an
apparently memory leak.
|
|
c6289186
|
2013-04-15T16:31:04
|
|
Fixes for Windows cas/threading stuff
|
|
116bbdf0
|
2013-04-16T12:08:21
|
|
clean up tree pointer casting
|
|
3f27127d
|
2013-04-16T11:51:02
|
|
Simplify object table parse functions
This unifies the object parse functions into one signature that
takes an odb_object.
|
|
78606263
|
2013-04-15T00:05:44
|
|
Add callback to git_objects_table
This adds create and free callback to the git_objects_table so
that more of the creation and destruction of objects can be table
driven instead of using switch statements. This also makes the
semantics of certain object creation functions consistent so that
we can make better use of function pointers. This also fixes a
theoretical error case where an object allocation fails and we
end up storing NULL into the cache.
|
|
d9d423e4
|
2013-04-03T23:53:32
|
|
Some stats
|
|
064236ca
|
2013-04-03T23:39:42
|
|
Per-object max size
|
|
24c70804
|
2013-04-12T12:59:38
|
|
Add mutex around mapping and unmapping pack files
When I was writing threading tests for the new cache, the main
error I kept running into was a pack file having it's content
unmapped underneath the running thread. This adds a lock around
the routines that map and unmap the pack data so that threads can
effectively reload the data when they need it.
This also required reworking the error handling paths in a couple
places in the code which I tried to make consistent.
|
|
b12b72ea
|
2013-04-12T12:44:51
|
|
Add range checking around cache opts
Add a git_cache_set_max_object_size method that does more checking
around setting the max object size. Also add a git_cache_size to
read the number of objects currently in the cache. This makes it
easier to write tests.
|
|
badd85a6
|
2013-04-10T17:10:17
|
|
Use git_odb_object_data/_size whereever possible
This uses the odb object accessors so we can change the internals
more easily...
|
|
ee12272d
|
2013-04-05T22:48:39
|
|
Global option setters
|
|
e183e375
|
2013-04-05T22:38:14
|
|
Clear the cache when there are too many items to expire
|
|
cf7850a4
|
2013-04-03T23:09:54
|
|
Duplicated type object
|
|
8842c75f
|
2013-04-03T22:30:07
|
|
What has science done.
|
|
c4e91d45
|
2013-04-03T20:57:30
|
|
Random eviction
|
|
6b90e244
|
2013-04-01T19:53:49
|
|
Per-object filtering
|
|
5df18424
|
2013-04-01T19:38:23
|
|
lol this worked first try wtf
|
|
a92dd316
|
2013-04-22T07:44:52
|
|
Merge pull request #1489 from libgit2/vmg/dupe-odb-backends
Do not allow duplicate ODB backends
|
|
a472f887
|
2013-04-22T07:44:32
|
|
Merge pull request #1493 from carlosmn/remotes
Revamp the refspec handling
|
|
0edad3cc
|
2013-04-22T16:41:56
|
|
Merge branch 'development' into vmg/dupe-odb-backends
Conflicts:
src/odb.c
|
|
4ef2c79c
|
2013-04-22T16:37:40
|
|
odb: Disable inode checks for Win32
|
|
f063a758
|
2013-04-22T04:06:11
|
|
Merge pull request #1485 from libgit2/include-git2-sys
Create include/git2/sys and move backend APIs there
|
|
0d4a5b13
|
2013-04-22T00:13:35
|
|
Add missing prototype for p_realpath().
|
|
21ca0451
|
2013-04-21T12:52:17
|
|
Move git_reference__alloc to include/git2/sys
Create a new include/git2/sys/refs.h and move the reference alloc
functions there. Also fix some documentation issues and some
minor code cleanups.
|
|
4dcd8780
|
2013-04-19T17:17:44
|
|
Move refdb_backend to include/git2/sys
This moves most of the refdb stuff over to the include/git2/sys
directory, with some minor shifts in function organization.
While I was making the necessary updates, I also removed the
trailing whitespace in a few files that I modified just because I
was there and it was bugging me.
|
|
9233b3de
|
2013-04-19T13:17:29
|
|
Move git_commit_create_from_oids into sys/commit.h
Actually this renames git_commit_create_oid to
git_commit_create_from_oids and moves the API declaration to
include/git2/sys/commit.h since it is a dangerous API for general
use (because it doesn't check that the OID list items actually
refer to real objects).
|
|
92550398
|
2013-01-29T09:53:23
|
|
Added git_commit_create_oid
|
|
1384b688
|
2013-04-19T13:00:12
|
|
Move some low-level repo fns to include/git2/sys
|
|
7cc3c920
|
2013-01-29T07:48:36
|
|
Added git_repository_new function
|
|
83cc70d9
|
2013-04-19T12:48:33
|
|
Move odb_backend implementors stuff into git2/sys
This moves some of the odb_backend stuff that is related to the
internals of an odb_backend implementation into include/git2/sys.
Some of the stuff related to streaming I left in include/git2
because it seemed like it would be reasonably needed by a normal
user who wanted to stream objects into and out of the ODB.
Also, I added APIs for traversing the list of backends so that
some of the tests would not need to access ODB internals.
|
|
83041c71
|
2013-04-19T11:52:04
|
|
Move git_config_backend to include/git2/sys
Moving backend implementor objects into include/git2/sys so the
APIs can be isolated from the ones that normal libgit2 users
would be likely to use.
|
|
1be680c4
|
2013-04-20T19:13:47
|
|
refspec: unify the string and parsed data
It used to be separate as an attempt to make the querying easier, but
it didn't work out that way, so put all the data together.
Add git_refspec_string() as well to get the original string, which is
now stored alongside the independent parts.
|
|
bc6374ea
|
2013-04-20T18:49:11
|
|
remote: allow querying for refspecs
Introduce git_remote_{fetch,push}_refspecs() to get a list of refspecs
from the remote and rename the refspec-adding functions to a less
silly name.
Use this instead of the vector index hacks in the tests.
|
|
4330ab26
|
2013-04-20T04:43:28
|
|
remote: handle multiple refspecs
A remote can have a multitude of refspecs. Up to now our git_remote's
have supported a single one for each fetch and push out of simplicity
to get something working.
Let the remotes and internal code know about multiple remotes and get
the tests passing with them.
Instead of setting a refspec, the external users can clear all and add
refspecs. This should be enough for most uses, though we're still
missing a querying function.
|
|
e5a27f03
|
2013-04-20T15:25:39
|
|
config: allow setting multivars when none exist yet
Adding a multivar when there are no variables with that name set
should set the variable instead of failing.
|
|
4e4eab52
|
2013-04-19T18:19:53
|
|
alloc doesn't take a refdb; git_refdb_free nicely in the tests
|
|
a29c6b5f
|
2013-04-19T23:51:18
|
|
odb: Do not allow duplicate on-disk backends
|
|
1af80a67
|
2013-04-18T16:13:52
|
|
Fix workdir iterator leak
When attempting to create a workdir iterator for a bare repo,
don't leak the iterator structure.
|
|
38fd8121
|
2013-04-18T14:48:20
|
|
Fix win64 warnings
|
|
2aee1aa4
|
2013-04-18T14:35:13
|
|
Fix uninitialized var warnings
|
|
fc57471a
|
2013-04-18T14:13:53
|
|
More filesystem iterator cleanup
Renamed the callback functions and made some minor rearrangements
to clean up the flow of some code.
|
|
71f85226
|
2013-04-18T11:11:38
|
|
Make workdir iterator use filesystem iterator
This adds some hooks into the filesystem iterator so that the
workdir iterator can just become a wrapper around it. Then we
remove most of the workdir iterator code and just have it augment
the filesystem iterator with skipping .git entries, updating the
ignore stack, and checking for submodules.
|
|
ff0ddfa4
|
2013-04-17T15:56:31
|
|
Add filesystem iterator variant
This adds a new variant iterator that is a raw filesystem iterator
for scanning directories from a root. There is still more work to
do to blend this with the working directory iterator.
|
|
2b63dbfb
|
2013-04-18T06:01:41
|
|
Merge pull request #1482 from nviennot/error-name-email
Return error for empty name/email
|
|
f90391ea
|
2013-04-18T14:47:54
|
|
treebuilder: don't overwrite the error message
|
|
9e46f676
|
2013-04-18T00:55:20
|
|
Return error for empty name/email
|
|
0d9bf890
|
2013-04-17T14:59:28
|
|
Merge pull request #1475 from libgit2/vmg/refs-peel
Allow access to the cached peel data in packed-refs
|
|
fedd0f9e
|
2013-04-17T23:29:34
|
|
refs: Do not union the peel
|
|
13421eee
|
2013-04-17T22:32:39
|
|
refs: Check alloc is cleaner
|
|
526882a3
|
2013-04-17T12:20:09
|
|
Merge pull request #1477 from ethomson/checkout_modified_use_cache
checkout: use cache when possible to determine if workdir item is dirty
|
|
0da62c5c
|
2013-04-17T10:52:49
|
|
checkout: use cache when possible to determine if workdir item is dirty
If the on-disk file has been staged (it's stat data matches the stat data
in the cache) then we need not hash the file to determine whether it
differs from the checkout target; instead we can simply use the oid in
the index.
This prevents recomputing a file's hash unnecessarily, prevents loading
the file (when filtering) and prevents edge cases where filters suggest
that a file is dirty immediately after git writes the file.
|
|
3be933b1
|
2013-04-17T17:33:51
|
|
refs: Add `git_referene_target_peel`
|
|
a442ed68
|
2013-04-17T04:46:37
|
|
repository: Add `git_repository_open_bare`
|
|
24f61bc5
|
2013-04-15T15:47:38
|
|
Merge pull request #1469 from libgit2/vmg/unified-revision
Unified rev-parse, with a revision object
|
|
404eadb0
|
2013-04-16T00:11:59
|
|
remote: don't try to update FETCH_HEAD if no extra heads exist
Don't try to update anything if there are no heads to update. This
saves us from trying to look into a fetch refspec when there is none.
A better fix for compatibility with git when using remotes without
refspecs is still needed, but this stops us from segfaulting.
|
|
cbda09d0
|
2013-04-15T23:40:46
|
|
git_revision -> git_revspec
|
|
36c2dfed
|
2013-04-15T23:32:40
|
|
Is this crazy?
|
|
67ba7d20
|
2013-04-15T22:53:57
|
|
Allow git_remote_ls after disconnecting from the remote
Keep the data around until free, as expected by our own fetch example
|
|
d064c747
|
2013-04-15T23:18:24
|
|
Merge remote-tracking branch 'ben/unified-revparse' into development
|
|
299a224b
|
2013-04-15T12:00:04
|
|
Change git_revparse to output git_object pointers
This will probably prevent many lookup/free
operations in calling code.
|
|
2ebc3c66
|
2013-04-15T11:57:24
|
|
Redeploy git_revparse_single.
|
|
4291ad07
|
2013-04-15T11:42:34
|
|
Reintroduce git_revparse_single.
|
|
872ca1d3
|
2013-04-15T20:00:42
|
|
Fix compilation on OpenBSD
|
|
0efae3b2
|
2013-04-15T12:24:08
|
|
commit: correctly detect the start of the commit message
The end of the header is signaled by to consecutive LFs and the commit
message starts immediately after. Jumping over LFs at the start of the
message is a bug and leads to creating different commits if
when rebuilding history.
This also fixes an empty commit message being returned as "\n".
|
|
7ebc249c
|
2013-04-04T11:38:17
|
|
dec refcount on refdb instead of always freeing
|
|
ea8bac37
|
2013-04-11T06:34:59
|
|
Merge pull request #1450 from carlosmn/branch-upstream
Branch upstream configuration
|
|
d59942c2
|
2013-03-30T04:27:42
|
|
branch: add more upstream configuration management
Add functions to set and unset the upstream configuration to
complement the getter we already have.
|
|
0d32f39e
|
2013-03-04T11:31:50
|
|
Notify '*' pathspec correctly when diffing
I also moved all tests related to notifying in their own file.
|
|
90431f1b
|
2013-04-10T08:33:33
|
|
Merge pull request #1424 from phkelley/efficient_push
Reduce the number of unnecessary objects in pushed packs
|
|
575a54db
|
2013-04-10T16:55:29
|
|
object: Export git_object_dup
|
|
ad26434b
|
2013-04-09T14:52:32
|
|
Tests and more fixes for submodule diffs
This adds tests for diffs with submodules in them and (perhaps
unsurprisingly) requires further fixes to be made. Specifically,
this fixes:
- when considering if a submodule is dirty in the workdir, it was
being treated as dirty even if only the index was dirty.
- git_diff_patch_to_str (and git_diff_patch_print) were "printing"
the headers for files (and submodules) that were unmodified or
had no meaningful content.
- added comment to previous fix and removed unneeded parens.
|
|
9da187e8
|
2013-04-09T11:40:00
|
|
Fix clang warnings and improve checks
|
|
94750e8a
|
2013-03-29T11:52:18
|
|
Fix submodule dirty states not showing if submodules comes before files, or there are only dirty submodules but no changed files
GIT_DIFF_PATCH_DIFFABLE was not set, so the diff content was not shown
When submodule is dirty, the hash may be the same, but the length is different because -dirty is appended
We can therefore compare the length or hash
|
|
1aa21fe3
|
2013-04-09T05:03:51
|
|
Deprecate git_revparse_single and _rangelike
|
|
8480eef7
|
2013-03-11T20:27:16
|
|
Implement unified git_revparse
|
|
d9ecaf8c
|
2013-04-07T07:22:38
|
|
Merge remote-tracking branch 'gnprice/revwalk' into development
|
|
af079d8b
|
2013-03-03T20:54:23
|
|
revwalk: Parse revision ranges
All the hard work is already in revparse.
Signed-off-by: Greg Price <price@mit.edu>
|
|
b208d900
|
2013-03-20T10:01:58
|
|
revparse: Parse range-like syntax
Signed-off-by: Greg Price <price@mit.edu>
|
|
08283cbd
|
2013-04-01T07:12:49
|
|
Merge pull request #1448 from phkelley/development
Avoid pre-Win7 WinHTTP self-redirect quirk
|
|
b39f9697
|
2013-03-31T23:04:14
|
|
Fix whitespace in src/win32/version.h
|
|
5c5eeba6
|
2013-03-31T22:22:33
|
|
Add git_has_win32_version helper
|
|
8cc2f2d8
|
2013-03-31T12:10:27
|
|
Win32 error reporting: Support WinHTTP errors
|
|
24cb87e2
|
2013-03-31T13:27:43
|
|
tag: Fix parsing when no tagger nor message
|
|
97016f29
|
2013-03-30T09:30:29
|
|
branch: refactor git_branch_remote_name
Return the size we'd need to write to instead of simply an
error. Split the function into two to be used later by the upstream
configuration functions.
|
|
0227fa2a
|
2013-03-30T21:36:04
|
|
Avoid pre-Win7 WinHTTP self-redirect quirk
|
|
a258d8e3
|
2013-03-30T03:39:19
|
|
branch: rename 'tracking' to 'upstream'
The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
|
|
54a1a042
|
2013-03-29T11:26:12
|
|
remove unmerged files during reset hard
|
|
8cfd54f0
|
2013-03-26T12:27:15
|
|
Fix Windows/Win32 warning
|
|
0b061b5b
|
2013-03-26T11:05:57
|
|
Merge pull request #1436 from schu/opts-cache-size
opts: allow configuration of odb cache size
|
|
86d24ce4
|
2013-03-26T10:42:30
|
|
Merge pull request #1439 from arrbee/recurse-ignored-dirs
Several diff and status fixes
|
|
ccfa6805
|
2013-03-25T23:58:40
|
|
Fix some diff ignores and submodule dirty workdir
This started out trying to look at the problems from issue #1425
and gradually grew to a broader set of fixes. There are two core
things fixed here:
1. When you had an ignore like "/bin" which is rooted at the top
of your tree, instead of immediately adding the "bin/" entry
as an ignored item in the diff, we were returning all of the
direct descendants of the directory as ignored items. This
changes things to immediately ignore the directory. Note that
this effects the behavior in test_status_ignore__subdirectories
so that we no longer exactly match core gits ignore behavior,
but the new behavior probably makes more sense (i.e. we now
will include an ignored directory inside an untracked directory
that we previously would have left off).
2. When a submodule only contained working directory changes, the
diff code was always considering it unmodified which was just
an outright bug. The HEAD SHA of the submodule matches the SHA
in the parent repo index, and since the SHAs matches, the diff
code was overwriting the actual status with UNMODIFIED.
These fixes broke existing tests test_diff_workdir__submodules and
test_status_ignore__subdirectories but looking it over, I actually
think the new results are correct and the old results were wrong.
@nulltoken had actually commented on the subdirectory ignore issue
previously.
I also included in the tests some debugging versions of the
shared iteration callback routines that print status or diff
information. These aren't used actively in the tests, but can be
quickly swapped in to test code to give a better picture of what
is being scanned in some of the complex test scenarios.
|
|
37ee70fa
|
2013-03-25T22:19:39
|
|
Implement GIT_STATUS_OPT_EXCLUDE_SUBMODULES
This option has been sitting unimplemented for a while, so I
finally went through and implemented it along with some tests.
As part of this, I improved the implementation of
GIT_DIFF_IGNORE_SUBMODULES so it be more diligent about avoiding
extra work and about leaving off delta records for submodules to
the greatest extent possible (though it may include them still
if you are request TYPECHANGE records).
|
|
d2a4a54b
|
2013-03-25T21:46:51
|
|
Merge pull request #1438 from ethomson/checkout_stat
don't stat until the file is written
|
|
d828f118
|
2013-03-25T18:16:02
|
|
don't stat until the file is written
|
|
0c289dd7
|
2013-03-25T16:40:16
|
|
Recursing into ignored dirs for diff and status
This implements working versions of GIT_DIFF_RECURSE_IGNORED_DIRS
and GIT_STATUS_OPT_RECURSE_IGNORED_DIRS along with some tests for
the newly available behaviors. This is not turned on by default
for status, but can be accessed via the options to the extended
version of the command.
|
|
f2850f33
|
2013-03-25T15:30:37
|
|
Merge pull request #1437 from phkelley/redirect
http: Support 302 Found (arrbee did most of the work)
|
|
35e0f3c6
|
2013-03-25T17:59:30
|
|
Refine the redirect check condition
|