|
2cbca8b0
|
2011-11-18T01:43:27
|
|
include: Unify internal include strategies
Do not add the `git2` path to internal includes, or that will cause
an extra path dependency.
|
|
9432af36
|
2011-11-17T01:23:19
|
|
Rename `git_tree_frompath` to `git_tree_get_subtree`
That makes more sense to me.
|
|
2ba14f23
|
2011-11-17T02:13:46
|
|
tree: Add payload to `git_tree_walk`
|
|
a15c550d
|
2011-11-16T14:09:44
|
|
threads: Fix the shared global state with TLS
See `global.c` for a description of what we're doing.
When libgit2 is built with GIT_THREADS support, the threading system
must be explicitly initialized with `git_threads_init()`.
|
|
d4a0b124
|
2011-10-30T21:58:33
|
|
refs: Partial rewrite for read-only refs
This new version of the references code is significantly faster and
hopefully easier to read.
External API stays the same. A new method `git_reference_reload()` has
been added to force updating a memory reference from disk. In-memory
references are no longer updated automagically -- this was killing us.
If a reference is deleted externally and the user doesn't reload the
memory object, nothing critical happens: any functions using that
reference should fail gracefully (e.g. deletion, renaming, and so on).
All generated references from the API are read only and must be free'd
by the user. There is no reference counting and no traces of generated
references are kept in the library.
There is no longer an internal representation for references. There is
only one reference struct `git_reference`, and symbolic/oid targets are
stored inside an union.
Packfile references are stored using an optimized struct with flex array
for reference names. This should significantly reduce the memory cost of
loading the packfile from disk.
|
|
a46ec457
|
2011-08-10T16:19:42
|
|
refs: split internal and external references
Currently libgit2 shares pointers to its internal reference cache with
the user. This leads to several problems like invalidation of reference
pointers when reordering the cache or manipulation of the cache from
user side.
Give each user its own git_reference instead of leaking the internal
representation (struct reference).
Add the following new API functions:
* git_reference_free
* git_reference_is_packed
Signed-off-by: schu <schu-github@schulog.org>
|
|
3286c408
|
2011-10-28T14:51:13
|
|
global: Properly use `git__` memory wrappers
Ensure that all memory related functions (malloc, calloc, strdup, free,
etc) are using their respective `git__` wrappers.
|
|
da37654d
|
2011-10-27T22:33:31
|
|
tree: Add traversal in post-order
|
|
11d51ca6
|
2011-10-26T16:43:55
|
|
windows: Add support for non-UTF codepages
Our previous assumption that all paths in Windows are encoded in UTF-8
is rather weak, specially when considering that Git is
encoding-agnostic.
These set of functions allow the user to change the library's active
codepage globally, so it is possible to access paths and files on all
international versions of Windows.
Note that the default encoding here is UTF-8 because we assume that 99%
of all Git repositories will be in UTF-8.
Also, if you use non-ascii characters in paths, anywhere, please burn on
a fire.
|
|
28c1451a
|
2011-10-20T02:35:19
|
|
tree: Fix name lookups once and for all
Double-pass binary search. Jeez.
|
|
8cf2de07
|
2011-10-19T01:34:42
|
|
tree: Fix lookups by entry name
|
|
3fa735ca
|
2011-10-13T23:17:19
|
|
tree: Add git_tree_frompath() which, given a relative path to a tree entry, retrieves the tree object containing this tree entry
|
|
34aff010
|
2011-10-12T14:06:23
|
|
oid: Add git_oid_streq() which checks if an oid and an hex formatted string are equal
|
|
92e2081f
|
2011-10-12T11:03:58
|
|
Merge pull request #449 from csware/include-win-version-information
Include windows version information in git2.dll
|
|
96fab093
|
2011-10-09T18:37:41
|
|
put version information in separate file
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
314f54eb
|
2011-10-09T05:29:57
|
|
fix build for x64
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
dd3fd682
|
2011-10-05T13:44:27
|
|
msvc: Remove superfluous includes
|
|
c060854e
|
2011-10-04T21:11:51
|
|
msvc: Properly handle inttypes.h/stdint.h
|
|
dc8e3096
|
2011-10-01T02:09:35
|
|
Include stdint.h in git2/config.h
Otherwise MSVC doesn't know what we're talking about when we say
int32_t or int64_t.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
fafd4710
|
2011-09-30T16:08:06
|
|
config: Proper type declarations for 64 bit ints
|
|
c36280a0
|
2011-09-30T06:26:29
|
|
repository: export git_repository_config_autoload
Take the opportunity to finish the comment about this function.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
8af4d074
|
2011-09-29T15:34:17
|
|
odb: Let users decide compression level for the loose ODB
|
|
40fe5fbe
|
2011-09-22T22:50:36
|
|
Make repo config loading automatic or completely explicit
git_repository_config wants to take the global and system paths again
so that one can be explicit if needed.
The git_repository_config_autoload function is provided for the cases
when it's good enough for the library to guess where those files are
located.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
4c562347
|
2011-09-22T21:34:46
|
|
Add git_config_find_system
This allows the library to guess where the system configuration file
should be located.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
ad196c6a
|
2011-09-21T23:17:39
|
|
config: make git_config_[get|set]_long() able to properly deal with 8 bytes wide values
Should fix issue #419.
Signed-off-by: nulltoken <emeric.fermas@gmail.com>
|
|
6640266e
|
2011-09-18T19:58:22
|
|
Merge pull request #398 from carlosmn/config-autohome
git_repository_config: open global config file automatically
|
|
e311519d
|
2011-09-18T19:38:14
|
|
Merge pull request #411 from boyski/gcc4
Don't use '__attribute__ visibility' with gcc unless it's at version 4 or better
|
|
d2a1861e
|
2011-09-18T21:27:25
|
|
Don't use '__attribute__ visibility' with gcc unless it's at
version 4 or better.
|
|
87d9869f
|
2011-09-19T03:34:49
|
|
Tabify everything
There were quite a few places were spaces were being used instead of
tabs. Try to catch them all. This should hopefully not break anything.
Except for `git blame`. Oh well.
|
|
bb742ede
|
2011-09-19T01:54:32
|
|
Cleanup legal data
1. The license header is technically not valid if it doesn't have a
copyright signature.
2. The COPYING file has been updated with the different licenses used in
the project.
3. The full GPLv2 header in each file annoys me.
|
|
784b3b49
|
2011-09-12T23:44:39
|
|
Fixed typo in example Makefile code and slimmed it down more.
Reverted signature of git_signature_new.
Removed error check wrappers (voted down). Made Makefile
work out of the box on Linux and Solaris when standard
cmake build instructions for the library are followed.
|
|
56453d34
|
2011-09-02T13:44:42
|
|
status: enhance determination of status for a single file
- fix retrieval of a file status when working against a newly initialized repository
- reduce memory pressure
- prevents a directory from being tested
|
|
3601c4bf
|
2011-08-08T13:40:17
|
|
repository: Add git_repository_head()
|
|
d9111722
|
2011-09-13T12:30:25
|
|
Standardized doxygen @return lines for int functions to say "GIT_SUCCESS or an error code".
|
|
0251733e
|
2011-09-12T23:39:47
|
|
Changes to allow examples/*.c to compile and link. This required on
change to the signature of an API function (git_signature_new).
Also, the examples/general.c had a lot of unchecked return values
which were addresed with a couple of macros. The resulting example
still does not work correctly but at least now it fails with an
error message rather than not compiling or dumping core. Example
runtime issues may be addressed in a later commit.
|
|
f9d4b0c3
|
2011-09-12T17:25:46
|
|
git_repository_config: open global config file automatically
If the global configuration file is missing, it is ignored.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
26e74c6a
|
2011-09-08T14:21:17
|
|
Fix some random size_t vs. int conversion warnings
|
|
778e1c73
|
2011-08-22T15:43:57
|
|
Add git_remote_new
As we no longer expose the transport functions, this is now the only
way to connect to a remote when given an URL instead of a remote name
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
b5a8aa94
|
2011-08-22T15:18:19
|
|
Don't hide the transport details
Transports shouldn't get used outside of the library, so don't expose
accessor functions.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
a1be77cd
|
2011-08-07T14:27:47
|
|
Be smarter about selecting wants
There is no need to inspect what the local repository is like. Only
check whether the objects exist locally.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
1564db11
|
2011-08-07T14:02:04
|
|
Remove enum git_whn
Instead, use flags inside the git_remote_head structure.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
441f57c2
|
2011-08-06T13:48:52
|
|
Add git_remote_update_tips
This function updates the references in the local reference storage to
match the ones in the remote.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
48a65a07
|
2011-08-04T22:42:58
|
|
Only wait for pack if we need it
Provide the git_remote_download function to instruct the library to
downlad the packfile and let the user know the temporary location.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
e1d88030
|
2011-08-04T13:07:55
|
|
Don't expose the fetch code to the user
Move the generation of the want-list to be done from the negotiate
function, and keep the filtered references inside the remote
structure.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
65fbc48a
|
2011-06-24T16:23:19
|
|
negotiation
|
|
e1f4a761
|
2011-06-22T14:53:01
|
|
Add git_fetch_list_want which creates the "want" list
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
e7be57a9
|
2011-08-15T18:56:27
|
|
reflog: assimilate reflog API to return git_oid's
Rather than returning the OIDs out of the reflog as string return them
as git_oid.
Signed-off-by: schu <schu-github@schulog.org>
|
|
a6bbb8ca
|
2011-08-13T10:56:33
|
|
Add missing GIT_BEGIN_DECL and GIT_END_DECL to indexer header
|
|
5ae2f0c0
|
2011-08-12T16:24:19
|
|
commit: Add support for Encoding header
|
|
b2e60e4e
|
2011-08-10T15:25:17
|
|
Add common.h to types.h
|
|
31bf5f38
|
2011-08-03T18:59:30
|
|
Merge pull request #345 from carlosmn/gsoc2011/indexer
Implement a pack indexer
|
|
63396a39
|
2011-08-03T15:57:33
|
|
signature: adjust API to return error codes
git_signature_new() and git_signature_now() currently don't return error
codes. Change the API to return error codes and not pointers to let the
user handle errors properly.
Signed-off-by: schu <schu-github@schulog.org>
|
|
65cb1586
|
2011-08-01T16:46:36
|
|
Document the indexer calls
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
48b3ad4f
|
2011-08-01T14:02:09
|
|
Move pack index writing to a public function
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
b7c44096
|
2011-07-28T23:35:39
|
|
Implement the indexer
Only v2 index files are supported.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
ab525a74
|
2011-07-07T19:20:13
|
|
Rename stuff to git_indexer_
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
f23c4a66
|
2011-07-07T19:08:45
|
|
Start the runner
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
3412391d
|
2011-07-07T11:47:31
|
|
Intial indexer code
|
|
ede21113
|
2011-07-29T19:31:39
|
|
Fix compilation in C++: remove double GIT_BEGIN_DECL
|
|
1e76676f
|
2011-07-27T01:22:50
|
|
Fixup network headers
The network headers were still missing some formalities.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
136e7129
|
2011-07-16T01:28:13
|
|
On some header files, GIT_END_DECL was absent while GIT_BEGIN_DECL wasn't.
|
|
7d9cc9f8
|
2011-07-15T17:46:55
|
|
index: fix cast warnings
/home/kas/git/public/libgit2/src/index.c: In function ‘git_index_clear’:
/home/kas/git/public/libgit2/src/index.c:228:8: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
/home/kas/git/public/libgit2/src/index.c:235:8: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
/home/kas/git/public/libgit2/src/index.c: In function ‘index_insert’:
/home/kas/git/public/libgit2/src/index.c:392:7: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
/home/kas/git/public/libgit2/src/index.c:399:7: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
/home/kas/git/public/libgit2/src/index.c: In function ‘read_unmerged’:
/home/kas/git/public/libgit2/src/index.c:681:35: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
/home/kas/git/public/libgit2/src/index.c: In function ‘read_entry’:
/home/kas/git/public/libgit2/src/index.c:716:33: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
|
|
ac2351fd
|
2011-07-25T20:23:23
|
|
Modify struct definition to enable forward declare with C++ compiler,
thus avoid including C library's header in C++ header.
|
|
e5f36505
|
2011-07-14T15:11:31
|
|
tag: Make git_tag_create_lightweight() accessible to bindings
|
|
91d8a4c0
|
2011-07-09T17:29:42
|
|
typo: one git_remote_fetchspec should be pushspec
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
b08683ff
|
2011-07-12T02:38:20
|
|
config: Rename `del` to `delete
|
|
bfbb5562
|
2011-07-11T16:30:46
|
|
tag: Add creation of lightweight tag
|
|
f6e4a98a
|
2011-07-11T13:04:36
|
|
Finish to hide git_pkt from external API.
|
|
5f35d0ce
|
2011-07-09T14:53:00
|
|
Remove the last reference of git_net_direction enum
|
|
bdd18829
|
2011-07-11T02:58:00
|
|
Cleanup external API
Some of the WIP API calls have been hidden in preparation for the next
minor release.
|
|
f27f29b1
|
2011-07-09T15:13:32
|
|
include: Fix unmatched params in documentation
|
|
c52736fa
|
2011-07-09T15:05:14
|
|
status: Cleanup
The `hashfile` function has been moved to ODB, next to `git_odb_hash`.
Global state has been removed from the dirent call in `status.c`,
because global state is killing the rainforest and causing global
warming.
|
|
20361b2f
|
2011-06-23T18:51:22
|
|
status: get status for single file
Add git_status_file to be able to retrieve status of single file by
supplying a path.
|
|
3af6b34a
|
2011-06-22T18:31:20
|
|
status: get file statuses and run callback
Add git_status_foreach() to run a callback on each file passing the path
and a status value.
|
|
205166d2
|
2011-06-22T18:19:46
|
|
status: get blob object id of file on disk
Add git_status_hashfile() to get blob's object id for a file without adding
it to the object database or needing a repository at all.
This functionality is similar to `git hash-object` without '-w'.
|
|
27df4275
|
2011-06-28T14:13:12
|
|
reflog: add API to read or write a reference log
So far libgit2 didn't support reference logs (reflog). Add a new
git_reflog_* API for basic reading and writing of reflogs:
* git_reflog_read
* git_reflog_write
* git_reflog_free
Signed-off-by: schu <schu-github@schulog.org>
|
|
2b5af615
|
2011-07-07T13:47:45
|
|
tag: add pattern based retrieval of list of tag names
|
|
245adf4f
|
2011-07-02T01:08:42
|
|
index: introduce git_index_uniq() function
It removes all entries with equal path except last added.
On large indexes git_index_append() + git_index_uniq() before writing is
*much* faster, than git_index_add().
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
|
|
f12aa9dc
|
2011-07-05T04:31:37
|
|
Merge pull request #300 from carlosmn/gsoc2011/master
A bit of networking
|
|
2601fcfc
|
2011-06-28T15:21:44
|
|
Add tests for deleting a config var
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
|
|
932d1baf
|
2011-06-30T19:52:34
|
|
cleanup: remove trailing spaces
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
|
|
e0fc39da
|
2011-06-29T15:11:34
|
|
config: Fix unmatched parameters in docs
|
|
408d733b
|
2011-06-30T06:56:58
|
|
repository: Make head_detached() and head_orphan() convenience methods accessible to bindings
|
|
cfef5fb7
|
2011-06-29T15:09:21
|
|
config: `foreach` now returns variable values too
|
|
7376ad99
|
2011-06-29T11:01:35
|
|
refs: Remove duplicate rename method
`git_reference_rename` now takes a `force` flag
|
|
ab7941b5
|
2011-06-28T21:04:59
|
|
test: Properly show error messages
|
|
c682886e
|
2011-06-28T21:09:22
|
|
repo: Rename HEAD-related methods
|
|
ccd59372
|
2011-06-28T10:44:19
|
|
Merge pull request #279 from carlosmn/detached-orphan
Add detached and orphan convenience functions
|
|
d5afc039
|
2011-06-28T19:15:48
|
|
Remove redundant methods from the API
A bunch of redundant methods have been removed from the external API.
- All the reference/tag creation methods with `_f` are gone. The force
flag is now passed as an argument to the normal create methods.
- All the different commit creation methods are gone; commit creation
now always requires a `git_commit` pointer for parents and a `git_tree`
pointer for tree, to ensure that corrupted commits cannot be generated.
- All the different tag creation methods are gone; tag creation now
always requires a `git_object` pointer to ensure that tags are not
created to inexisting objects.
|
|
35502d2e
|
2011-06-28T13:55:00
|
|
Add git_repository_is_detached, git_repository_is_orphan
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
|
|
0ac2726f
|
2011-06-27T20:23:47
|
|
Slim down git_transport
Remove the unused repo and private pointers and make the direction a
flag, as it can only have two states. Change the connect signature to
use an int instead of git_net_direction and remove that enum.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
9ba49bb5
|
2011-06-23T03:04:23
|
|
Add git_remote_connect and git_remote_ls
These allow you to implement git-ls-remote when given a reference name
and a repository.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
ce90a407
|
2011-06-22T15:34:37
|
|
Remove the repo param from git_transport_new
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
4e913309
|
2011-06-17T16:38:21
|
|
Move transports to an inheritance model
Rather than an 'private' pointer, make the private structures inherit
from the generic git_transport struct. This way, we only have to worry
about one memory allocation instead of two. The structures are so
simple that this may even make the code use less memory overall.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
fd679021
|
2011-06-16T02:17:49
|
|
Move git_pkt_{gen_proto,send_request} to transport_git.c
This is where they really belong. Remvoe the prefix and make them
static.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
cbf742ac
|
2011-06-26T19:40:02
|
|
Use (s)size_t
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
c4d0fa85
|
2011-06-16T01:54:19
|
|
Implement and use git_pkt_send_request
This makes it easier to send a requqest for an URL. It assumes there
is a socket where the string should go out to.
Make git_pkt_gen_proto accept a command parameter, which defaults to
git-upload-pack
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
7632e249
|
2011-06-13T23:01:12
|
|
Correctly handle network input
Add a parameter to git_pkt_parse_line to tell it how much data you
have in your buffer. If the buffer is too short, it returns an error
saying so. Adapt the git transport to use this and fix the offset
calculation.
Add the GIT_ESHORTBUFFER error code.
|
|
be9fe679
|
2011-06-08T23:38:22
|
|
Implement and use git_pkt_free
A git_pkt object can be one of several structs. Add this function for
convenience and clarity.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
ecb6ca0e
|
2011-06-08T13:09:47
|
|
Implement the git TCP transport up to ls-remote
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|