|
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.
|
|
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.
|
|
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.
|
|
d30155f2
|
2015-05-20T14:26:05
|
|
Fix error when building as C++.
|
|
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.
|
|
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.
|
|
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
|
|
d01737b4
|
2015-05-13T09:11:38
|
|
Merge pull request #3117 from libgit2/cmn/index-more-accurate
index: make the entries have more accurate sizes
|
|
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.
|
|
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.
|
|
8f0104ec
|
2015-04-21T22:10:36
|
|
Remove the callbacks struct from the remote
Having the setting be different from calling its actions was not a great
idea and made for the sake of the wrong convenience.
Instead of that, accept either fetch options, push options or the
callbacks when dealing with the remote. The fetch options are currently
only the callbacks, but more options will be moved from setters and
getters on the remote to the options.
This does mean passing the same struct along the different functions but
the typical use-case will only call git_remote_fetch() or
git_remote_push() and so won't notice much difference.
|
|
77b339f7
|
2015-05-12T13:06:33
|
|
odb: make the writestream's size a git_off_t
Restricting files to size_t is a silly limitation. The loose backend
writes to a file directly, so there is no issue in using 63 bits for the
size.
We still assume that the header is going to fit in 64 bytes, which does
mean quite a bit smaller files due to the run-length encoding, but it's
still a much larger size than you would want Git to handle.
|
|
ca294279
|
2015-05-12T11:43:27
|
|
index: make the entries have more accurate sizes
While we are confident about the size of an int in architectures we're
likely to care about, the index format is defined by the exact size of
the fields. Use the definitions which show the exact width of the entry
fields.
As part of that, bring back 32-bit time and size fields, which currently
are 64 bits wide and can bring a false sense of security in how much
data they really store. Document that these fields are not to be taken
as authoritative.
|
|
1f1f5c63
|
2015-05-11T14:10:24
|
|
checkout: better document the `baseline_index` opt
|
|
4ea3eebf
|
2015-05-01T18:34:38
|
|
stash_apply: provide progress callbacks
|
|
19c80a6f
|
2015-05-01T18:07:10
|
|
stash_apply: provide its own options structure
|
|
12149a20
|
2015-04-20T20:05:23
|
|
stash apply: default to at least GIT_CHECKOUT_SAFE
|
|
958950b6
|
2015-05-01T13:53:46
|
|
stash: document merge conflicts
|
|
f0957589
|
2015-03-04T23:55:42
|
|
stash: refactor to use merge_iterators
|
|
73dce1f6
|
2015-03-16T18:57:57
|
|
checkout: allow baseline to be specified as index
Allow the baseline to be specified as an index, so that users
need not write their index to a tree just to checkout with that
as the baseline.
|
|
bf8dd3f5
|
2014-11-14T12:32:47
|
|
Added git_stash_apply() and git_stash_pop() APIs
|
|
4beab1f8
|
2015-03-31T16:29:35
|
|
checkout: break case-changes into delete/add
When checking out with a case-insensitive working directory, we
want to change the case of items in the working directory to
reflect changes that occured in the checkout target. Diff now
has an option to break case-changing renames into delete/add.
|
|
cbe8a61d
|
2015-05-01T11:28:54
|
|
Merge pull request #3059 from libgit2/cmn/negotiation-notify
[WIP/RFC] push: report the update plan to the caller
|
|
bf2ba529
|
2015-04-30T10:57:13
|
|
Update documentation for API changes
|
|
aa9bb425
|
2015-04-20T17:22:39
|
|
rebase: correct documentation, CHANGELOG
|
|
94c988f6
|
2015-04-20T17:19:08
|
|
rebase: include checkout opts within rebase opts
|
|
f3a199dd
|
2015-03-17T15:53:04
|
|
rebase: init and open take a rebase_options
`git_rebase_init` and `git_rebase_open` should take a
`git_rebase_options` and use it for future rebase operations on
that `rebase` object.
|
|
5ae38538
|
2015-03-17T11:47:16
|
|
rebase: take `checkout_options` where appropriate
|
|
649834fd
|
2015-03-17T11:46:55
|
|
reset: `git_checkout_options` is `const`
|
|
30640aa9
|
2015-03-17T10:04:08
|
|
rebase: identify a rebase that has not started
In `git_rebase_operation_current()`, indicate when a rebase has not
started (with `GIT_REBASE_NO_OPERATION`) rather than conflating that
with the first operation being in-progress.
|
|
efc2fec5
|
2015-04-19T00:55:00
|
|
push: report the update plan to the caller
It can be useful for the caller to know which update commands will be
sent to the server before the packfile is pushed up. git does this via
the pre-push hook.
We don't have hooks, but as it adds introspection into what is
happening, we can add a callback which performs the same function.
|
|
a0e652d2
|
2015-04-17T12:35:41
|
|
Merge pull request #2999 from pks-t/submodule-set-url
Implement git_submodule_set_branch.
|
|
6f80bf4a
|
2015-04-16T19:12:28
|
|
Merge pull request #3037 from libgit2/cmn/hide-then-push
Handle hide-then-push in the revwalk
|
|
05d92026
|
2015-04-13T18:03:03
|
|
revwalk: reword the push text
As it seems it's not quite clear what it means to push a commit, try to
be more explicit about adding a new root and that we may not see this
commit if it is hidden.
|
|
129788a6
|
2015-03-18T11:45:18
|
|
Implement git_submodule_set_branch.
|
|
623fbd93
|
2015-04-10T11:38:07
|
|
Merge pull request #2974 from libgit2/cmn/clone-everything
Make sure to pack referenced objects for non-branches
|
|
807566d5
|
2015-04-03T18:59:11
|
|
Entry argument passed to git_index_add_frombuffer() should be const
|
|
c5e07187
|
2015-03-24T14:03:51
|
|
Merge pull request #2990 from leoyanggit/custom_param
Add a custom param to git_smart_subtransport_definition
|
|
95d1624b
|
2015-03-24T08:34:12
|
|
Merge pull request #2947 from libgit2/cmn/notes-buf
note: use a git_buf to return the default namespace
|
|
89ba9f1a
|
2015-03-18T13:17:04
|
|
Merge pull request #2967 from jacquesg/merge-whitespace
Allow merges of files (and trees) with whitespace problems/fixes
|
|
142e5379
|
2015-03-17T12:49:33
|
|
Add a custom param to git_smart_subtransport_definition
The smart transport has already take the payload param. For the
sub transport a payload param is useful for the implementer.
|
|
a61fa4c0
|
2015-03-12T01:26:09
|
|
packbuilder: introduce git_packbuilder_insert_recur()
This function recursively inserts the given object and any referenced
ones. It can be thought of as a more general version of the functions to
insert a commit or tree.
|
|
385449b1
|
2015-03-04T01:23:20
|
|
note: use a git_buf to return the default namespace
The caller has otherwise no way to know how long the string will be
allocated or ability to free it.
This fixes #2944.
|
|
9bbc8f35
|
2015-03-17T10:21:28
|
|
Merge pull request #2962 from libgit2/cmn/reflog-annotated
Add annotated versions of ref-modying functions
|
|
7800048a
|
2015-03-17T10:06:50
|
|
Merge pull request #2972 from libgit2/cmn/pack-objects-walk
[WIP] Smarter pack-building
|
|
62dd4d71
|
2015-03-07T00:06:02
|
|
annotated_commit: provide a constructor from a revspec
This extra constructor will be useful for the annotated versions of
ref-modifying functions, as it allows us to create a commit with the
extended sha syntax which was used to retrieve it.
|
|
62d38a1d
|
2015-03-06T23:51:40
|
|
Add annotated commit versions of reflog-modifying functions
We do not always want to put the id directly into the reflog, but we
want to speicfy what a user typed. For this use-case we provide
annotated version of a few functions which let the caller specify what
user-friendly name was used when asking for the operation.
|
|
74c37c2a
|
2015-03-12T13:16:09
|
|
Added options to enable patience and minimal diff drivers
|
|
13de9363
|
2015-03-12T12:36:09
|
|
Collapse whitespace flags into git_merge_file_flags_t
|
|
f29dde68
|
2015-03-12T12:29:47
|
|
Renamed git_merge_options 'flags' to 'tree_flags'
|
|
45a86bbf
|
2015-03-09T17:02:52
|
|
Allow for merges with whitespace discrepancies
|
|
15f58174
|
2015-03-11T17:55:39
|
|
Merge commit 'refs/pull/2879/head' of ssh://github.com/libgit2/libgit2
|
|
04a36fef
|
2014-10-11T15:48:29
|
|
pack-objects: fill a packbuilder from a walk
Most use-cases for the object packer communicate in terms of commits
which each side has. We already have an object to specify this
relationship between commits, namely git_revwalk.
By knowing which commits we want to pack and which the other side
already has, we can perform similar optimisations to git, by marking
each tree as interesting or uninteresting only once, and not sending
those trees which we know the other side has.
|
|
9a97f49e
|
2014-12-21T15:31:03
|
|
config: borrow refcounted references
This changes the get_entry() method to return a refcounted version of
the config entry, which you have to free when you're done.
This allows us to avoid freeing the memory in which the entry is stored
on a refresh, which may happen at any time for a live config.
For this reason, get_string() has been forbidden on live configs and a
new function get_string_buf() has been added, which stores the string in
a git_buf which the user then owns.
The functions which parse the string value takea advantage of the
borrowing to parse safely and then release the entry.
|
|
4e498646
|
2015-01-15T16:50:31
|
|
repository: remove log message override for switching the active branch
We want to use the "checkout: moving from ..." message in order to let
git know when a change of branch has happened. Make the convenience
functions for this goal write this message.
|
|
412a3808
|
2015-01-15T15:31:23
|
|
push: remove reflog message override
We always use "update by push".
|
|
6bfb990d
|
2015-01-07T14:47:02
|
|
branch: don't accept a reflog message override
This namespace is about behaving like git's branch command, so let's do
exactly that instead of taking a reflog message.
This override is still available via the reference namespace.
|
|
23a17803
|
2015-01-07T14:16:50
|
|
reset: remove reflog message override
This function is meant to simulate what git does in the reset command,
so we should include the reflog message in that.
|
|
659cf202
|
2015-01-07T12:23:05
|
|
Remove the signature from ref-modifying functions
The signature for the reflog is not something which changes
dynamically. Almost all uses will be NULL, since we want for the
repository's default identity to be used, making it noise.
In order to allow for changing the identity, we instead provide
git_repository_set_ident() and git_repository_ident() which allow a user
to override the choice of signature.
|
|
99b68a2a
|
2015-03-03T13:47:13
|
|
Merge pull request #2908 from ethomson/safe_create
Allow checkout to handle newly cloned repositories, remove `GIT_CHECKOUT_SAFE_CREATE`
|
|
bf1476f1
|
2015-03-02T10:35:26
|
|
win32: add the patch level to the .dll fileversion
Win32 DLLs have four fields for the version number (major, minor,
teeny, patch). If a consumer wants to build a custom DLL, it may
be useful to set the patchlevel version number in the DLL.
This value only affects the DLL version number, it does not affect
the resultant "version number", which remains major.minor.teeny.
|
|
96b82b11
|
2015-02-14T11:44:05
|
|
checkout: remove `GIT_CHECKOUT_SAFE_CREATE` as a strategy
|
|
a275fbc0
|
2015-02-05T11:40:16
|
|
Add API to add a memory buffer to an index
git_index_add_frombuffer enables now to store a memory buffer in the odb
and to store an entry in the index directly if the index is attached to a
repository.
|
|
795eaccd
|
2015-02-19T11:09:54
|
|
git_filter_opt_t -> git_filter_flag_t
For consistency with the rest of the library, where an opt is an
options *structure*.
|
|
b75f15aa
|
2015-02-18T09:25:32
|
|
git_writestream: from git_filter_stream
|
|
fbdc9db3
|
2015-01-22T16:10:06
|
|
filters: introduce streaming filters
Add structures and preliminary functions to take a buffer, file or
blob and write the contents in chunks through an arbitrary number
of chained filters, finally writing into a user-provided function
accept the contents.
|
|
a291790a
|
2015-02-15T05:18:01
|
|
Merge pull request #2831 from ethomson/merge_lock
merge: lock index during the merge (not just checkout)
|
|
8639ea5f
|
2015-01-17T22:47:03
|
|
checkout: introduce GIT_CHECKOUT_DONT_WRITE_INDEX
|
|
49b8293c
|
2015-02-13T11:20:32
|
|
rebase: allow `NULL` branch to indicate `HEAD`
Don't require the branch to rebase, if given `NULL`, simply look up
`HEAD`.
|
|
dc63c049
|
2015-02-11T23:44:05
|
|
Merge pull request #2893 from phatblat/ben/pr/doc-comments
Fix doc comment formatting
|
|
a36486ef
|
2015-02-11T10:31:54
|
|
Fixed error when including git2/include/sys/stream.h
|
|
c03e8c22
|
2015-02-10T12:44:05
|
|
Use correct Doxygen trailing comment syntax
|
|
ec7e1c93
|
2015-02-10T08:31:48
|
|
Fix doc comment formatting
|
|
3538f8f1
|
2015-02-03T13:41:35
|
|
diff docs: update `git_diff_delta` description
|
|
9a294fd8
|
2015-01-27T08:17:23
|
|
Clarified git_repository_is_empty() documentation
|
|
1ac5acdc
|
2015-01-26T11:28:59
|
|
Merge pull request #2819 from libgit2/cmn/config-get-path
config: add parsing and getter for paths
|
|
f483720c
|
2015-01-26T11:25:16
|
|
Merge pull request #2839 from swisspol/typo
Fixed typo in git_repository_reinit_filesystem() documentation
|
|
86815dca
|
2015-01-23T16:04:23
|
|
Make sure sys/repository.h includes the required headers
It was missing "common.h" and "types.h" like other system headers.
This generated compilation errors if including it directly.
|
|
22b6a923
|
2015-01-23T15:59:54
|
|
Fixed typo in git_repository_reinit_filesystem() documentation
|
|
e74340b0
|
2015-01-14T18:47:00
|
|
checkout: remove files before writing new ones
On case insensitive filesystems, we may have files in the working
directory that case fold to a name we want to write. Remove those
files (by default) so that we will not end up with a filename that
has the unexpected case.
|
|
fe598f09
|
2015-01-13T11:18:02
|
|
mkdir: walk up tree to mkdir
Walk up the tree to mkdir, which is less immediately efficient,
but allows us to look at intermediate directories that may need
attention.
|
|
1d50b364
|
2015-01-12T16:16:27
|
|
checkout: introduce git_checkout_perfdata
Checkout can now provide performance data about the number of (some)
syscalls performed using an optional callback.
|
|
eac773d9
|
2015-01-14T15:05:43
|
|
config: add parsing and getter for paths
|
|
85880693
|
2015-01-14T10:19:28
|
|
Merge branch 'pr/2740'
|
|
36fc5497
|
2014-12-02T05:11:12
|
|
Added GIT_HASHSIG_ALLOW_SMALL_FILES to allow computing signatures for small files
The implementation of the hashsig API disallows computing a signature on
small files containing only a few lines. This new flag disables this
behavior.
git_diff_find_similar() sets this flag by default which means that rename
/ copy detection of small files will now work. This in turn affects the
behavior of the git_status and git_blame APIs which will now detect rename
of small files assuming the right options are passed.
|
|
c868981f
|
2015-01-06T13:49:39
|
|
Add extern function to initialize submodule update options.
|
|
239bdc57
|
2015-01-05T21:28:30
|
|
Merge pull request #2799 from ethomson/merge_doc
Better document `git_merge_commits`
|
|
9b2efc15
|
2015-01-05T20:16:48
|
|
Bump version to 0.22
Bump the version number to 0.22.0 and the SOVERSION to 22.
|
|
0c601229
|
2015-01-05T20:10:43
|
|
Merge commit 'refs/pull/2632/head' of github.com:libgit2/libgit2
|
|
5e44d9bc
|
2015-01-05T11:34:17
|
|
Better document `git_merge_commits`
`git_merge_commits` (and thus `git_merge`) do not use the same
strategy as `git-merge-recursive` wherein they can produce an
artificial common ancestor that is the merge of all common
ancestors. Document this accordingly.
|
|
d76e9df9
|
2015-01-02T15:56:03
|
|
Include git2/common.h in sys/openssl.h.
|
|
f8263472
|
2014-12-30T15:54:30
|
|
Fixed git_revert() documentation
|
|
a3ef70bb
|
2014-12-30T11:53:55
|
|
Merge pull request #2761 from libgit2/cmn/fetch-prune
Remote-tracking branch prunning
|
|
c4c47fc2
|
2014-12-30T11:53:45
|
|
Merge pull request #2762 from libgit2/cmn/hide-push
remote: remove git_push from the public API
|
|
fe794b2e
|
2014-12-16T08:57:05
|
|
remote: remove git_push from the public API
Instead we provide git_remote_upload() and git_remote_update_tips() in
order to have a parallel API for fetching and pushing.
|