|
68206c54
|
2012-10-13T21:00:45
|
|
test: fix some memory leaks
|
|
fa5d94a0
|
2012-10-13T20:51:57
|
|
reset: prevent hard reset in a bare repository
|
|
7ae5ab56
|
2012-10-15T16:35:10
|
|
Fix leak in the tests
Also introduce the slective ref trimming promised but also missed in
the previous commit.
|
|
47f44b6e
|
2012-10-15T13:51:25
|
|
refs: loosen the OID parsing
We used to require loose references to contain only an OID (possibly
after trimming the string). This is however not enough for letting us
lookup FETCH_HEAD, which can have a lot of content after the initial
OID.
Change the parsing rules so that a loose refernce must e at least 40
bytes long and the 41st (if it's there) must be accepted by
isspace(3). This makes the trim unnecessary, so only do it for
symrefs. This fixes #977.
|
|
9d9288f4
|
2012-10-14T12:29:05
|
|
Fix buffer overrun in git_buf_put_base64
|
|
62993b61
|
2012-10-11T14:08:32
|
|
branches: propagate EEXISTS upon creation
|
|
3548fcf5
|
2012-10-11T14:00:26
|
|
refs: propagate EEXISTS upon renaming
|
|
9206976f
|
2012-10-10T15:00:32
|
|
Merge pull request #971 from arrbee/base64-encoder
Add git_buf_put_base64 to buffer API
|
|
aeba5e17
|
2012-10-10T23:55:03
|
|
http: don't discard the HEAD ref
The fix for fetching from empty repositories (22935b06d protocol:
don't store flushes; 2012-10-07) forgot to take into account the
deletion of the flush pkt in the HTTP transport. As a result, the HEAD
ref advertisement where we detect the remote's capabilities was
deleted instead. Fix this.
|
|
2d3579be
|
2012-10-10T14:54:31
|
|
Add git_buf_put_base64 to buffer API
|
|
0cf49e10
|
2012-10-09T21:49:48
|
|
fixup! gsoc-pack-objects WIP
Use khash instead of git.git's hashing algorithm.
|
|
0a32dca5
|
2012-08-19T22:26:32
|
|
gsoc-pack-objects WIP
|
|
ec1d42b7
|
2012-08-19T22:22:07
|
|
Add diff-delta code from git.git
|
|
e3f8d58d
|
2012-08-14T23:07:54
|
|
indexer: do not require absolute path
|
|
fa16a6ec
|
2012-08-01T11:35:26
|
|
Enable pthread condition vars
|
|
2f05339e
|
2012-07-10T08:53:05
|
|
Add git_tag_foreach
|
|
edca6c8f
|
2012-07-01T19:44:22
|
|
git_odb_object_free: don't segfault w/ arg == NULL
|
|
4bc1a30f
|
2012-06-10T22:04:24
|
|
util: add git__compress()
|
|
21e0d297
|
2012-10-09T11:45:50
|
|
Merge pull request #967 from arrbee/diff-submodule-tests-and-fixes
Diff submodule tests and fixes
|
|
aa4437f6
|
2012-10-09T00:51:43
|
|
Fix compiler warnings
* tests-clar/status: remove an unused variable
* clone: fix -Wmaybe-uninitialized warning
|
|
9adfa7d1
|
2012-10-08T15:25:44
|
|
Merge pull request #949 from nulltoken/topic/deploy_repository_set_head
Deploy git_repository_set_head()
|
|
5d1308f2
|
2012-10-08T15:19:00
|
|
Add test for diffs with submodules and bug fixes
The adds a test for the submodule diff capabilities and then
fixes a few bugs with how the output is generated. It improves
the accuracy of OIDs in the diff delta object and makes the
submodule output more closely mirror the OIDs that will be used
by core git.
|
|
dfbff793
|
2012-10-08T15:14:12
|
|
Fix a few diff bugs with directory content
There are a few cases where diff should leave directories in
the diff list if we want to match core git, such as when the
directory contains a .git dir. That feature was lost when I
introduced some of the new submodule handling.
This restores that and then fixes a couple of related to diff
output that are triggered by having diffs with directories in
them.
Also, this adds a new flag that can be passed to diff if you
want diff output to actually include the file content of any
untracked files.
|
|
543864b6
|
2012-10-08T15:21:47
|
|
Merge pull request #940 from scunz/diff_sm
Diff: Show submodule diff
|
|
edb456c3
|
2012-10-08T16:32:43
|
|
Fix a bug where ignorecase wasn't applied to ignores
|
|
bf0e62a2
|
2012-10-07T12:50:18
|
|
clone: fix cloning of empty repository
|
|
d280c71b
|
2012-09-26T19:22:21
|
|
clone: leverage refspec transform
|
|
3e012fca
|
2012-09-26T19:15:11
|
|
refspec: introduce git_refspec_transform_l()
|
|
70edc1b0
|
2012-09-26T11:05:12
|
|
clone: align type casing with convention
|
|
4ba23be1
|
2012-10-06T12:20:13
|
|
branch: deploy git_branch_is_head()
|
|
0c78f685
|
2012-10-06T10:41:53
|
|
branch: introduce git_branch_is_head()
|
|
f3cc7834
|
2012-09-22T12:51:34
|
|
refs: deploy git_repository_set_head() usage
|
|
7eca3c56
|
2012-09-22T12:50:18
|
|
clone: deploy git_repository_set_head() usage
|
|
a147408f
|
2012-09-22T12:47:17
|
|
reset: make reset rely on git_repository_head()
|
|
096d9e94
|
2012-10-07T21:00:46
|
|
remote: use constants for well-known names
|
|
74a24005
|
2012-09-21T10:28:20
|
|
refs: use constants for well-known names
|
|
acd17006
|
2012-10-07T11:19:19
|
|
remote: only keep a weak pointer in update_tips
The reference is only needed inside the function. We mistakenly
increased the reference counter causing the ODB not to get freed and
leaking descriptors.
|
|
22935b06
|
2012-10-07T10:20:23
|
|
protocol: don't store flushes
Storing flushes in the refs vector doesn't let us recognize when the
remote is empty, as we'd always introduce at least one element into
it. These flushes aren't necessary, so we can simply ignore them.
|
|
1dca8510
|
2012-10-05T13:44:18
|
|
Diff: Do not try to calculate an oid for a GITLINK.
We don't have anything useful that we could do with that oid anyway (We
need to query the submodule for the HEAD commit instead).
Without this, the following code creates the error "Failed to read
descriptor: Is a directory" when run against the submod2 test-case:
const char* oidstr = "873585b94bdeabccea991ea5e3ec1a277895b698";
git_tree* tree = resolve_commit_oid_to_tree(g_repo, oidstr);
git_diff_list* diff = NULL;
cl_assert(tree);
cl_git_pass(git_diff_workdir_to_tree(g_repo, NULL, tree, &diff));
|
|
1686641f
|
2012-10-05T13:03:22
|
|
Extract submodule logic out of diff_output.c:get_workdir_content
|
|
7e57d250
|
2012-09-18T23:43:23
|
|
Diff: teach get_workdir_content to show a submodule as text
1. teach diff.c:maybe_modified to query git_submodule_status for the
modification state of a submodule. According to the
git_submodule_status docs, it will filter for to-ignore states
already.
2. teach diff_output.c:get_workdir_content to check the submodule status
again and create a line like:
Subproject commit <SHA-1>\n
or
Subproject comimt <SHA-1>-dirty\n
like git.git does.
|
|
9ce44f1a
|
2012-09-18T22:35:09
|
|
Diff: teach get_blob_content to show a submodule as text
diff_output.c:get_blob_content used to try to read the submodule commit
as a blob in the superproject's odb. Of course it cannot find it and
errors out with GIT_ENOTFOUND, implcitly terminating the whole diff
output.
This patch teaches it to create a text that describes the submodule
instead. The text looks like:
Subproject commit <SHA1>\n
which is what git.git does, too.
|
|
1a5cd26b
|
2012-10-05T13:02:35
|
|
Fix minor whitespace issue
|
|
d0b452db
|
2012-10-02T11:08:30
|
|
Merge pull request #932 from ben/clone_pack_race
ODB: re-load packfiles on failed lookup
|
|
eada0762
|
2012-10-02T10:45:40
|
|
Merge pull request #939 from pwkelley/ignorecase
Support for the core.ignorecase flag
|
|
8bc5cacc
|
2012-10-01T13:57:32
|
|
Merge pull request #961 from arrbee/win64-cleanups
Win64 cleanups
|
|
7c411fd9
|
2012-10-01T12:32:55
|
|
Fix up more Win64 compile warnings
|
|
93b5fabc
|
2012-10-01T17:59:04
|
|
threads: Assert that the global state is initialized
|
|
9063be1f
|
2012-10-01T17:33:05
|
|
remote: Fix mid-block declaration
|
|
3230a44f
|
2012-09-30T10:56:06
|
|
remote: support downloading all tags
Also honor remote.$name.tagopt = --tags.
|
|
eb0bd77a
|
2012-09-29T22:50:33
|
|
remote: use the refspec functions to parse, instead of rolling our own
The local function works for simple cases, but we shouldn't reinvent
the wheel just for us.
|
|
f70e466f
|
2012-09-27T11:58:35
|
|
remote: add accessors for the autotag setting
|
|
a37ddf7e
|
2012-09-16T03:36:03
|
|
remote: create tags if we have them
Together with include-tag, this make us behave more like git. After a
fetch, try to create any tags the remote told us about for which we
have objects locally.
|
|
24f2f94e
|
2012-09-15T08:07:24
|
|
fetch: use the include-tag capability
This tells the remote to send us any tags that point to objects that
we are downloading.
|
|
c1281493
|
2012-09-30T11:37:53
|
|
refs: propagate EEXISTS
Indicate whether the error comes from the ref already existing or
elsewhere. We always perform the check and this lets the user write
more concise code.
|
|
3665ba8e
|
2012-09-27T12:04:41
|
|
refspec: add git_refspec__free, remove git_refspec_parse
The latter shouldn't be exposed and isn't used, git_refspec__parse
supersedes it.
Fix a leak in the refspec tests while we're at it.
|
|
cc5bf359
|
2012-09-28T09:08:09
|
|
Clean up Win64 warnings
|
|
34402bcd
|
2012-09-28T11:57:02
|
|
Merge pull request #959 from jamill/empty_file_hash
Fix error hashing empty file.
|
|
3f849902
|
2012-09-28T11:48:43
|
|
Merge pull request #958 from schu/fix-merge-base
revwalk: fix off-by-one error
|
|
addc9be4
|
2012-09-26T17:21:32
|
|
Fix error hashing empty file.
|
|
8060cdc9
|
2012-09-27T14:59:43
|
|
revwalk: fix off-by-one error
Fixes #921.
|
|
bae957b9
|
2012-09-25T16:31:46
|
|
Add const to all shared pointers in diff API
There are a lot of places where the diff API gives the user access
to internal data structures and many of these were being exposed
through non-const pointers. This replaces them all with const
pointers for any object that the user can access but is still
owned internally to the git_diff_list or git_diff_patch objects.
This will probably break some bindings... Sorry!
|
|
64286308
|
2012-09-25T10:48:50
|
|
Fix bugs in new diff patch code
This fixes all the bugs in the new diff patch code. The only
really interesting one is that when we merge two diffs, we now
have to actually exclude diff delta records that are not supposed
to be tracked, as opposed to before where they could be included
because they would be skipped silently by `git_diff_foreach()`.
Other than that, there are just minor errors.
|
|
5f69a31f
|
2012-09-24T20:52:34
|
|
Initial implementation of new diff patch API
Replacing the `git_iterator` object, this creates a simple API
for accessing the "patch" for any file pair in a diff list and
then gives indexed access to the hunks in the patch and the lines
in the hunk. This is the initial implementation of this revised
API - it is still broken, but at least builds cleanly.
|
|
5942bd18
|
2012-09-25T14:53:13
|
|
Merge pull request #947 from arrbee/public-error-set
Make giterr_set_str() and giterr_set_oom() public APIs
|
|
31d22037
|
2012-09-25T14:52:24
|
|
Merge pull request #944 from scunz/list_tags
Tags: teach git_tag_list not to include the 'refs/tags/' prefix
|
|
0adfa20a
|
2012-09-11T11:42:13
|
|
refspec: introduce git_refspec__parse()
|
|
77e06d7e
|
2012-09-17T07:11:32
|
|
refs: introduce git_reference_is_valid_name()
|
|
c030ada7
|
2012-09-11T12:06:57
|
|
refs: make git_reference_normalize_name() accept refspec pattern
|
|
3af06254
|
2012-09-20T22:42:22
|
|
Tags: teach git_tag_list not to include the 'refs/tags/' prefix
Since quite a while now, git_branch_foreach has learnt to list branches
without the 'refs/heads/' or 'refs/remotes' prefixes.
This patch teaches git_tag_list to do the same for listing tags.
|
|
d75074f4
|
2012-09-22T12:29:16
|
|
Fix -Wmaybe-uninitialized warning
|
|
1a628100
|
2012-09-21T15:04:39
|
|
Make giterr_set_str public
There has been discussion for a while about making some set of
the `giterr_set` type functions part of the public API for code
that is implementing new backends to libgit2. This makes the
`giterr_set_str()` and `giterr_set_oom()` functions public.
|
|
0cb24616
|
2012-09-21T10:51:42
|
|
Merge pull request #942 from nulltoken/topic/checkout-notify-skipped
checkout: add notification callback for skipped files
|
|
9e592583
|
2012-09-19T12:23:47
|
|
checkout: add notification callback for skipped files
|
|
b1127a30
|
2012-09-20T22:32:19
|
|
git_repository_hashfile: Only close file handle if we have a valid one
Otherwise this throws an exception on MFC based systems.
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
9ac8b113
|
2012-09-20T14:06:49
|
|
Fix MSVC amd64 compilation warnings
|
|
28abf3db
|
2012-09-20T11:41:49
|
|
checkout: prefer mode_t type usage over int
|
|
63409451
|
2012-09-19T04:55:16
|
|
ODB pack: snapshot last_found to avoid race
Also removed unnecessary refresh call and fixed
some indentation.
|
|
78216495
|
2012-09-13T20:08:05
|
|
Remove mtime checks from ODB packfile backend
Now forcing refresh on a foreach, and on missed full-oid
or short-oid lookups.
|
|
5bb0dc93
|
2012-09-13T14:02:46
|
|
ODB: re-load packfiles on failed lookup
The old method was avoiding re-loading of packfiles by watching the mtime of the
pack directory. This causes the ODB to become stale if the directory and packfile
are written within the same clock millisecond, as when cloning a fairly small
repo.
This method tries to find the object in the cached packs, and forces a refresh when
that fails. This will cause extra stat'ing on a miss, but speeds up the success
case and avoids this race condition.
|
|
f08c60a5
|
2012-09-17T16:10:42
|
|
Minor fixes for ignorecase support
|
|
ec40b7f9
|
2012-09-17T15:42:41
|
|
Support for core.ignorecase
|
|
39783719
|
2012-09-17T20:27:28
|
|
checkout: Mimic git_diff_options storage of paths
|
|
5e4cb4f4
|
2012-09-17T10:38:57
|
|
checkout : reduce memory usage when not filtering
|
|
44af67a8
|
2012-09-15T22:07:45
|
|
repository: introduce git_repository_set_head()
|
|
4ebe38bd
|
2012-09-15T22:07:09
|
|
repository: introduce git_repository_set_head_detached()
|
|
3f4c3072
|
2012-09-15T22:03:31
|
|
repository: introduce git_repository_detach_head()
|
|
5af61863
|
2012-09-14T11:15:49
|
|
checkout: drop git_checkout_reference()
|
|
c214fa1c
|
2012-09-06T15:15:46
|
|
checkout: segregate checkout strategies
|
|
ee8bb8ba
|
2012-08-19T21:24:51
|
|
reset: add support for GIT_RESET_HARD mode
|
|
e93af304
|
2012-08-24T10:40:17
|
|
checkout: introduce git_checkout_index()
|
|
3aa443a9
|
2012-08-20T16:56:45
|
|
checkout: introduce git_checkout_tree()
|
|
e8776d30
|
2012-09-16T00:10:07
|
|
odb: don't overflow the link path buffer
Allocate a buffer large enough to store the path plus the terminator
instead of letting readlink write beyond the end.
|
|
1e90ae77
|
2012-09-14T13:45:29
|
|
Merge pull request #860 from schu/thread-safety
odb_pack: make sure to search all backends
|
|
3d7617e4
|
2012-09-14T21:33:50
|
|
odb_pack: fix race condition
last_found is the last packfile a wanted object was found in. Since
last_found is shared among all searching threads, it might changes while
we're searching. As suggested by @arrbee, put a copy on the stack to fix
the race condition.
|
|
70341b09
|
2012-09-14T13:33:49
|
|
Merge pull request #937 from nulltoken/fix/issue_936
refs: prevent locked refs from being enumerated
|
|
c2948c77
|
2012-09-14T21:36:49
|
|
refs: prevent locked refs from being enumerated
Fix #936
|
|
b200a813
|
2012-09-14T20:43:47
|
|
config: fix Unicode BOM detection
Defining the BOM as a string makes the array include the
NUL-terminator, which means that the memcpy is going to check for that
as well and thus never match for a nonempty file.
Define the array as three chars, which makes the size correct.
|
|
f4ea176f
|
2012-09-14T10:31:40
|
|
Remove unnecessary include
I don't think clone.c needs in #include dirent.h and it is not
portable, so let's just get rid of it.
|
|
75050223
|
2012-09-14T11:47:43
|
|
Fix MSVC compilation warnings
|