|
64be170d
|
2015-05-29T16:42:40
|
|
Merge pull request #3163 from ethomson/emergeconflict
Rename GIT_EMERGECONFLICT to GIT_ECONFLICT
|
|
885b94aa
|
2015-05-28T15:26:13
|
|
Rename GIT_EMERGECONFLICT to GIT_ECONFLICT
We do not error on "merge conflicts"; on the contrary, merge conflicts
are a normal part of merging. We only error on "checkout conflicts",
where a change exists in the index or the working directory that would
otherwise be overwritten by performing the checkout.
This *may* happen during merge (after the production of the new index
that we're going to checkout) but it could happen during any checkout.
|
|
41a71c1a
|
2015-05-28T16:29:52
|
|
Merge pull request #3161 from fxfactorial/master
Changed README to use new OCaml bindings to git
|
|
69560cc0
|
2015-05-28T15:19:53
|
|
Changed README to use new OCaml bindings to git
|
|
ff8d635a
|
2015-05-28T18:45:57
|
|
Merge pull request #3139 from ethomson/diff_conflicts
Include conflicts when diffing
|
|
fb92b48d
|
2015-05-28T10:13:07
|
|
Merge pull request #3149 from libgit2/cmn/upstream-matching-push
Fill the pointers for matching refspecs
|
|
2b922832
|
2015-05-28T16:09:17
|
|
Merge pull request #3127 from libgit2/cmn/remote-fixups
Tackle remote API issues from bindings
|
|
9b3e41f7
|
2015-05-19T18:29:15
|
|
index_add_all: remove conflicts when no wd file
If there exists a conflict in the index, but no file in the working
directory, this implies that the user wants to accept the resolution
by removing the file. Thus, remove the conflict entry from the
index, instead of trying to add a (nonexistent) file.
|
|
10549a2d
|
2015-05-19T18:26:04
|
|
Introduce `GIT_DIFF_FLAG_EXISTS`
Mark the `old_file` and `new_file` sides of a delta with a new bit,
`GIT_DIFF_FLAG_EXISTS`, that introduces that a particular side of
the delta exists in the diff.
This is useful for indicating whether a working directory item exists
or not, in the presence of a conflict. Diff users may have previously
used DELETED to determine this information.
|
|
666ae188
|
2015-05-19T17:52:13
|
|
git_index_add_all: test that conflicts are handled
When confronted with a conflict in the index, `git_index_add_all`
should stage the working directory copy. If there is no file in the
working directory, the conflict should simply be removed.
|
|
1c4b5cee
|
2015-05-19T17:51:13
|
|
Introduce cl_git_sandbox_init_new()
cl_git_sandbox_init_new() will create a clar temp directory and
initialize a new repository at that location.
|
|
253a05f7
|
2015-05-19T11:31:15
|
|
diff: prettify `maybe_modified` a little
|
|
9f545b9d
|
2015-05-19T11:23:59
|
|
introduce `git_index_entry_is_conflict`
It's not always obvious the mapping between stage level and
conflict-ness. More importantly, this can lead otherwise sane
people to write constructs like `if (!git_index_entry_stage(entry))`,
which (while technically correct) is unreadable.
Provide a nice method to help avoid such messy thinking.
|
|
2f1080ea
|
2015-05-19T11:17:07
|
|
conflict tests: use GIT_IDXENTRY_STAGE_SET
|
|
191e97a0
|
2015-05-18T18:15:17
|
|
diff conflicts: don't include incorrect ID
Since a diff entry only concerns a single entry, zero the information
for the index side of a conflict. (The index entry would otherwise
erroneously include the lowest-stage index entry - generally the
ancestor of a conflict.)
Test that during status, the index side of the conflict is empty.
|
|
b22369ef
|
2015-05-18T17:01:37
|
|
diff conflicts: test index to workdir w/ conflicts
|
|
bb815157
|
2015-05-18T16:23:13
|
|
diff conflicts: add tests for tree to index
|
|
7877146f
|
2015-05-18T15:13:43
|
|
diff: for conflicts w/o workdir, blank nitem side
Make sure that we provide a blanked nitem side when the item does not
exist in the working directory.
|
|
7c948014
|
2015-05-14T14:00:29
|
|
diff/status: introduce conflicts
When diffing against an index, return a new `GIT_DELTA_CONFLICTED`
delta type for items that are conflicted. For a single file path,
only one delta will be produced (despite the fact that there are
multiple entries in the index).
Index iterators now have the (optional) ability to return conflicts
in the index. Prior to this change, they would be omitted, and callers
(like diff) would omit conflicted index entries entirely.
|
|
d67f270e
|
2015-05-14T13:30:29
|
|
index: validate mode of new conflicts
|
|
3ab5a659
|
2015-05-14T12:54:39
|
|
index: remove error message in non-error remove
If `git_index_remove_bypath` does no work, and returns an OK error
code, it should not set an error message.
|
|
ecd60a56
|
2015-05-14T11:52:48
|
|
conflicts: when adding conflicts, remove staged
When adding a conflict for some path, remove the staged entry.
Otherwise, an illegal index (with both stage 0 and high-stage
entries) would result.
|
|
1b6c26db
|
2015-05-13T17:47:26
|
|
diff: wrap the iterator functions
Wrap the iterator current / advance functions so that we can extend
them, but also handle GIT_ITEROVER cases in the iterator funcs
instead of the callers.
|
|
aa3af01d
|
2015-05-13T15:52:21
|
|
index iterator: optionally include conflicts
|
|
9566ce43
|
2015-05-18T14:42:35
|
|
remote: call the update_tips callback for opportunisitc updates
These are updates, same as the rest, we should call this callback. As we
are using the callback, let's make sure to skip unnecessary updates.
|
|
c6e942fb
|
2015-05-17T15:19:22
|
|
remote: validate refspecs before adding to config
When we moved from acting on the instance to acting on the
configuration, we dropped the validation of the passed refspec, which
can lead to writing an invalid refspec to the configuration. Bring that
validation back.
|
|
ae5b9362
|
2015-05-17T15:11:45
|
|
remote: remove fetch parameter from create_anonymous
An anonymous remote is not configured and cannot therefore have
configured refspecs. Remove the parameter which adds this from the
constructor.
|
|
c7f94123
|
2015-05-28T02:40:22
|
|
Merge pull request #3160 from b4n/ident-same-as-git
Fix ident replacement to match Git behavior
|
|
1ecbcd8e
|
2015-05-26T19:16:27
|
|
Fix ident replacement to match Git behavior
Git inserts a space after the SHA1 (as of 2.1.4 at least), so do the
same.
|
|
c11daac9
|
2015-05-22T22:12:40
|
|
Merge pull request #3151 from ethomson/thinpack
Thin packs: don't
|
|
e2dd3735
|
2015-05-22T11:20:47
|
|
indexer: avoid loading already existent bases
When thickening a pack, avoid loading already loaded bases and
trying to insert them all over again.
|
|
38c10ecd
|
2015-05-16T19:00:50
|
|
indexer: don't look for the index we're creating
When creating an index, know that we do not have an index for
our own packfile, preventing some unnecessary file opens and
error reporting.
|
|
2540487f
|
2015-05-22T12:53:52
|
|
Merge pull request #3108 from libgit2/cmn/ssl-no-want
openssl: don't try to handle WANT_READ or WANT_WRITE
|
|
ca183d27
|
2015-05-22T17:44:28
|
|
travis: build maint branches
|
|
5014fe95
|
2015-05-22T12:24:09
|
|
branch: error out if we cannot find the remote
When we look for which remote corresponds to a remote-tracking branch,
we look in the refspecs to see which ones matches. If none do, we should
abort. We currently ignore the error message from this operation, so
let's not do that anymore.
As part of the test we're writing, let's test for the expected behaviour
if we cannot find a refspec which tells us what the remote-tracking
branch for a remote would look like.
|
|
7cd4ba1b
|
2015-05-22T12:11:42
|
|
refspec: make sure matching refspecs have src, dst and input strings
When we find out that we're dealing with a matching refspec, we set the
flag and return immediately. This leaves the strings as NULL, which
breaks the contract.
Assign these pointers to a string with the correct values.
|
|
a6ea108b
|
2015-05-21T14:04:46
|
|
Merge branch 'sni'
|
|
987045c7
|
2015-05-20T18:03:54
|
|
Call the openssl API to be able to work with SNI servers.
|
|
5d74fb78
|
2015-05-21T06:32:29
|
|
Merge pull request #3145 from stinb/fix_cxx_build
Fix error when building as C++.
|
|
6675aaba
|
2015-05-21T04:58:16
|
|
Merge pull request #3146 from ethomson/add_untracked_files
index_add_all: include untracked files in new subdirs
|
|
cbfeecf3
|
2015-05-20T20:13:45
|
|
git_index_add_all: don't recurse ignored dirs
No need to get reports about individual ignored files, having a
single ignored directory delta is enough.
|
|
3e85be2b
|
2015-05-20T20:07:39
|
|
Merge pull request #3144 from libgit2/cmn/ignored-ignore
ignore: clear the error when matching a pattern negation
|
|
fa9a969d
|
2015-05-20T18:22:17
|
|
index_add_all: include untracked files in new subdirs
|
|
d30155f2
|
2015-05-20T14:26:05
|
|
Fix error when building as C++.
|
|
2c57114f
|
2015-05-20T21:18:25
|
|
ignore: clear the error when matching a pattern negation
When we discover that we want to keep a negative rule, make sure to
clear the error variable, as it we otherwise return whatever was left by
the previous loop iteration.
|
|
cd3f3c28
|
2015-05-20T21:06:01
|
|
Add a missing include for reset
Our doc parser really wants the types to be declared in the header it's
reading.
|
|
c06e180a
|
2015-05-20T17:13:49
|
|
Merge pull request #3137 from libgit2/cmn/server-errors
Improve server error reporting
|
|
1396c381
|
2015-05-18T16:04:55
|
|
errors: add GIT_EEOF to indicate early EOF
This can be used by tools to show mesages about failing to communicate
with the server. The error message in this case will often contain the
server's error message, as far as it managed to send anything.
|
|
e3435673
|
2015-05-18T15:51:55
|
|
ssh: read from stderr if stdout is empty
When we fail to read from stdout, it's typically because the URL was
wrong and the server process has sent some output over its stderr
output.
Read that output and set the error message to whatever we read from it.
|
|
acc573cb
|
2015-05-19T14:12:40
|
|
Merge pull request #3109 from libgit2/cmn/index-use-diff
Use a diff for iteration in index_update_all and index_add_all
|
|
0aa60336
|
2015-05-19T14:07:03
|
|
Merge pull request #3132 from libgit2/cmn/path-direach-cberror
Provide error messages for git_path_direach operations
|
|
edef91ee
|
2015-05-15T12:23:27
|
|
fileops: set an error on write error for file copy
We set an error if we get an error when reading, but we don't bother
setting an error message for write failing. This causes a cryptic error
to be shown to the user when the target filesystem is full.
|
|
70f7484d
|
2015-05-14T09:35:08
|
|
remote: get rid of the run-time refspec setters
These were left over from the culling as it's not clear which use-cases
might benefit from this. It is not clear that we want to support any
use-case which depends on changing the remote's idea of the base
refspecs rather than passing in different per-operation refspec list, so
remove these functions.
|
|
7b5ce2e5
|
2015-05-14T09:33:54
|
|
clone: don't rely on auto-saving for single-branch
The code used to rely on the clone code calling the remote's save, which
does not happen anymore, meaning that the configuration settings the
remote expected were not being written to disk.
The run-time configuration was still being affected, so the right branch
was being cloned. The tests continued to pass as we did not check for
the configuration entires. Fix this by creating the remote with the
single-branch refspec we want and checking for its existence in the
configuration.
|
|
9663d1bd
|
2015-05-14T08:29:50
|
|
Fix typos in the CHANGELOG
|
|
54738368
|
2015-05-15T12:18:05
|
|
fileops: set an error message if we fail to link a file
Now that `git_path_direach` lets us specify an error message to report,
set an appropriate error message while linking.
|
|
8a4d77f9
|
2015-05-15T12:15:45
|
|
path: don't let direach overwrite the callback's error message
This function deals with functions doing IO which means the amount of
errors that can happen is quit large. It does not help if it always
ovewrites the underlying error message with a less understandable
version of "something went wrong".
Instead, only use this generic message if there was no error set by the
callback.
|
|
9042693e
|
2015-05-15T10:10:24
|
|
Merge pull request #3130 from mortonfox/patch-1
Updated dlibgit link.
|
|
481ac3d1
|
2015-05-14T21:51:45
|
|
Merge pull request #3129 from Therzok/patch-2
Bring Early EOF message in line with the other two
|
|
e702dc2e
|
2015-05-14T15:49:51
|
|
Updated dlibgit link.
|
|
7e9a240e
|
2015-05-14T21:33:55
|
|
Make "Early EOF" message start with lowercase
|
|
542a7de0
|
2015-05-14T17:26:09
|
|
local: plug a leak in the progress reporting
|
|
874cc35a
|
2015-05-14T15:24:15
|
|
index: add a CHANGELOG entry for the diff usage
|
|
2b2dfe80
|
2015-05-12T12:07:33
|
|
index: include TYPECHANGE in the diff
Without this option, we would not be able to catch exec bit changes.
|
|
0a78a52e
|
2015-05-11T16:09:09
|
|
index: make add_all to act on a diff
Instead of going through each entry we have and re-adding, which may not
even be correct for certain crlf options and has bad performance, use
the function which performs a diff against the worktree and try to add
and remove files from that list.
|
|
197307f6
|
2015-05-11T15:19:15
|
|
index: refactor diff-based update_all to match other applies
Refactor so we look like the code we're replacing, which should also
allow us to more easily inplement add-all.
|
|
713e11e0
|
2015-05-11T13:24:53
|
|
index: use a diff to perform update_all
We currently iterate over all the entries and re-add them to the
index. While this provides correctness, it is wasteful as we try to
re-insert files which have not changed.
Instead, take a diff between the index and the worktree and only re-add
those which we already know have changed.
|
|
4a6a6746
|
2015-05-14T09:10:20
|
|
Merge pull request #3128 from libgit2/cmn/push-notify-deleted
Add tests for and fix push negotiation notification
|
|
254ff3e9
|
2015-05-14T10:34:42
|
|
push: fix the update constructor
There was a copypasta error and the source and destination IDs were
reversed.
|
|
041ad7db
|
2015-05-14T10:34:05
|
|
push: add tests for the push negotiation callback
The functionality was meged without including tests, so let's add them
now.
|
|
98270f56
|
2015-05-14T08:26:02
|
|
Add CHANGELOG entry for index entry changes
|
|
16d742eb
|
2015-05-13T21:43:58
|
|
Merge pull request #3119 from ethomson/ignore
Attributes: don't match files for folders
|
|
cd430bc7
|
2015-05-13T14:26:20
|
|
Merge pull request #3103 from libgit2/cmn/local-push-message
Use the packbuilder in local push
|
|
2ec73fa9
|
2015-05-13T14:26:06
|
|
Merge pull request #3102 from libgit2/cmn/pack-objects-report
Show progress during packing for the local transport
|
|
a6f2ceaf
|
2015-05-13T12:11:55
|
|
Merge pull request #3118 from libgit2/cmn/stream-size
odb: make the writestream's size a git_off_t
|
|
882cc37f
|
2015-05-13T10:56:55
|
|
attr tests: make explicit our dir/file match tests
|
|
3e529e9d
|
2015-05-13T16:12:45
|
|
Fix a few leaks
The interesting one is the notification macro, which was returning
directly on a soft-abort instead of going through the cleanup.
|
|
3c337a5d
|
2015-05-06T13:09:00
|
|
packbuilder: report progress during deltification
This is useful to send to the client while we're performing the work.
The reporting function has a force parameter which makes sure that we
do send out the message of 100% completed, even if this comes before the
next udpate window.
|
|
8cec2b8a
|
2015-05-06T12:28:01
|
|
local: send the packbuilder progress via the sideband
Set a callback for the packbuilder so we can send the sideband messages
to the caller, formatting them as git would.
|
|
cf66c474
|
2015-05-06T12:26:05
|
|
examples: show the sideband progress on clone
This lets us see what the server (or libgit2 locally) is doing, rather
than having to stare at a non-moving screen.
|
|
d01737b4
|
2015-05-13T09:11:38
|
|
Merge pull request #3117 from libgit2/cmn/index-more-accurate
index: make the entries have more accurate sizes
|
|
b0c4b642
|
2015-05-13T09:11:18
|
|
Merge pull request #3116 from libgit2/cmn/remove-ssh-embed
Get rid of libssh2 embedding
|
|
6cd92193
|
2015-05-13T09:07:15
|
|
Merge pull request #3115 from libgit2/cmn/clone-submodule
submodule: add test initialising and cloning a repo
|
|
a3ff28e9
|
2015-05-13T09:02:00
|
|
Merge pull request #3120 from libgit2/cmn/backends-prio
odb: reverse the default backend priorities
|
|
0bc3d56d
|
2015-05-07T16:12:36
|
|
tests: don't push to our resources
A couple of tests use the wrong remote to push to. We did not notice up
to now because the local push would copy individual objects, and those
already existed, so it became a no-op.
Once we made local push create the packfile, it became noticeable that
there was a new packfile where it didn't belong.
|
|
4a5b781a
|
2015-05-07T13:44:28
|
|
local: use the packbuilder to push
Instead of copying each object individually, as we'd been doing, use the
packbuilder which should be faster and give us some feedback.
While performing this change, we can hook up the packbuilder's writing
to the push progress so the caller knows how far along we are.
|
|
81c0fb08
|
2015-05-07T13:28:51
|
|
local: add clarification for non-bare push restriction
|
|
c5c5cdb1
|
2015-05-13T10:47:13
|
|
Merge pull request #3066 from libgit2/cmn/remote-less-state
Remove the configuration state we keep in the remote
|
|
b0d7f329
|
2015-05-13T10:23:19
|
|
odb: reverse the default backend priorities
We currently first look in the loose object dir and then in the packs
for objects. When performing operations on recent history this has a
higher likelihood of hitting, but when we deal with operations which
look further back into the past, we start spending a large amount of
time getting ENOTENT from `access`.
Reversing the priorities means that long-running operations can get to
their objects faster, as we can look at the index data we have in memory
(or rather mapped) to figure out whether we have an object, which is
faster than going out to the filesystem.
The packed backend already implements an optimistic read algorithm by
first looking at the packs we know about and only going out to disk to
referesh if the object is not found which means that in the case where
we do have the object (which will be in the majority for anything that
traverses the graph) we can avoid going to to disk entirely to determine
whether an object exists.
Operations which look at recent history may take a slight impact, but
these would be operations which look a lot less at object and thus take
less time regardless.
|
|
3251972e
|
2015-05-04T09:39:55
|
|
push: free the update list
|
|
b1ae3e53
|
2015-04-26T02:20:22
|
|
Update CHANGELOG with the changes to the remotes
|
|
3e20154a
|
2015-04-25T00:38:22
|
|
remote: simplify anonymous creation
We're down to simply having it be a call to create_internal() so let's
simply do that. The rest of the code is just a distraction.
|
|
a4b6452a
|
2015-04-23T06:55:29
|
|
remote: remove git_remote_save()
It has now become a no-op, so remove the function and all references to
it.
|
|
77254990
|
2015-04-23T06:51:34
|
|
remote: remove live changing of refspecs
The base refspecs changing can be a cause of confusion as to what is the
current base refspec set and complicate saving the remote's
configuration.
Change `git_remote_add_{fetch,push}()` to update the configuration
instead of an instance.
This finally makes `git_remote_save()` a no-op, it will be removed in a
later commit.
|
|
3fec548a
|
2015-04-23T06:01:13
|
|
examples: adjust to the new remote API
|
|
35a8a8c5
|
2015-04-22T17:29:20
|
|
remote: move the tagopt setting to the fetch options
This is another option which we should not be keeping in the remote, but
is specific to each particular operation.
|
|
3eff2a57
|
2015-04-22T16:11:10
|
|
remote: move the update_fetchhead setting to the options
While this will rarely be different from the default, having it in the
remote adds yet another setting it has to keep around and can affect its
behaviour. Move it to the options.
|
|
058b753c
|
2015-04-22T15:45:21
|
|
remote: move the transport ctor to the callbacks
Instead of having it set in a different place from every other callback,
put it the main structure. This removes some state from the remote and
makes it behave more like clone, where the constructors are passed via
the options.
|
|
6fb373a0
|
2015-04-22T04:54:00
|
|
remote: add prune option to fetch
Add a prune setting in the fetch options to allow to fall back to the
configuration (the default) or to set it on or off.
|
|
22261344
|
2015-04-22T04:38:08
|
|
remote: remove url and pushurl from the save logic
As a first step in removing the repository-saving logic, don't allow
chaning the url or push url from a remote object, but change the
configuration on the configuration immediately.
|