| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
git hardocodes these as objects which exist regardless of whether they
are in the odb and uses them in the shell interface as a way of
expressing the lack of a blob or tree for one side of e.g. a diff.
In the library we use each language's natural way of declaring a lack of
value which makes a workaround like this unnecessary. Since git uses it,
it does however mean each shell application would need to perform this
check themselves.
This makes it common work across a range of applications and an issue
with compatibility with git, which fits right into what the library aims
to provide.
Thus we introduce the hard-coded empty blob and tree in the odb
frontend. These hard-coded objects are checked for before going to the
backends, but after the cache check, which means the second time they're
used, they will be treated as normal cached objects instead of creating
new ones.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot know from looking at .gitmodules whether a directory is a
submodule or not. We need the index or tree we are comparing against to
tell us. Otherwise we have to assume the entry in .gitmodules is stale
or otherwise invalid.
Thus we pass the index of the repository into the workdir iterator, even
if we do not want to compare against it. This follows what git does,
which even for `git diff <tree>`, it will consider staged submodules as
such.
|
| |
|
| |
|
|\
| |
| | |
ignore: don't leak rules into higher directores
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A rule "src" in src/.gitignore must only match subdirectories of
src/. The current code does not include this context in the match rule
and would thus consider this rule to match the top-level src/ directory
instead of the intended src/src/.
Keep track fo the context in which the rule was defined so we can
perform a prefix match.
|
|\ \
| | |
| | | |
Threading and crypto libraries
|
| | |
| | |
| | |
| | |
| | | |
Extract the lock-setting functions into their own, as we cannot assume
that it's ok for us to set this unconditionally.
|
| | |
| | |
| | |
| | |
| | | |
We're freeing the memory which holds the locks so we must make sure that
the locking function doesn't try to use it.
|
|\ \ \
| |_|/
|/| | |
remote: check for the validity of the refspec when updating FETCH_HEAD
|
| |/
| |
| |
| |
| |
| | |
Before trying to rtransform using the given refspec to figure out what
the name of the upstream branch is on the remote, we must make sure that
the target of the refspec applies to the current branch's upstream.
|
|\ \
| | |
| | | |
ignore: consider files with a CR in their names
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We currently consider CR to start the end of the line, but that means
that we miss cases with CR CR LF which can be used with git to match
files whose names have CR at the end of their names.
The fix from the patch comes from Russell's comment in the issue.
This fixes #2536.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Make config reading continue after hitting a missing include file.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Error-handling is cleaned up to only let a file-not-found error
through, not other sorts of errors. And when a file-not-found
error happens, we clean up the error.
* Test now checks that file-not-found introduces no error. And
other minor cleanups.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For example, if you have
[include]
path = foo
and foo didn't exist, git_config_open_ondisk() would just give up
on the rest of the file. Now it ignores the unresolved include
without error and continues reading the rest of the file.
|
|\ \ \
| |_|/
|/| | |
Changed context_lines and interhunk_lines to uint32_t to match struct s_xdemitconf
|
| | |
| | |
| | |
| | | |
s_xdemitconf
|
|\ \ \
| | | |
| | | | |
remote: unify the creation code
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
The create function with default refspec is the same as the one with a
custom refspec, but it has the default refspec, so we can create the one
on top of the other.
|
|\ \ \
| | | |
| | | | |
netops: return GIT_ECERTIFICATE when it fails the basic tests
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we first ask OpenSSL to verify the certfiicate itself (rather
than the HTTPS specifics), we should also return
GIT_ECERTIFICATE. Otherwise, the caller would consider this as a failed
operation rather than a failed validation and not call the user's own
validation.
|
|\ \ \
| | | |
| | | | |
Fix segmentation fault observed on OpenBSD/sparc64
|
| |/ /
| | |
| | |
| | |
| | | |
A non-readable mapping of a file causes an access violation in
the pack tests. Always use PROT_READ to work around this.
|
|/ / |
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Use size_t for page size, instead of long. Check result of sysconf.
Use size_t for page offset so no cast to size_t (second arg to p_mmap).
Use mod instead div/mult pair, so no cast to size_t is necessary.
|
| |
| |
| |
| | |
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
| | |
|
| |
| |
| |
| |
| | |
Rename git_merge_head to git_annotated_commit, as it becomes used
in more operations than just merge.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Already cherry-picked commits should not be re-included. If all changes
included in a commit exist in the upstream, then we should error with
GIT_EAPPLIED.
|
| |
| |
| |
| | |
Commit the current patch of a rebase process.
|
| | |
|
| |
| |
| |
| |
| |
| | |
`git_rebase_next` will apply the next patch (or cherry-pick)
operation, leaving the results checked out in the index / working
directory so that consumers can resolve any conflicts, as appropriate.
|
| |
| |
| |
| |
| | |
Abort an in-progress rebase and move the working directory and
repository back to the ORIG_HEAD state.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Introduce `git_rebase` to set up a rebase session that can
then be continued. Immediately, only merge-type rebase is
supported.
|