| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
When there is a reference in the target namespace, we should overwrite
it. Instead it gets a different name under the current code.
|
|\
| |
| | |
Concurrent ref iterator access
|
| |
| |
| |
| |
| | |
If we remove a reference while we're iterating through the packed refs,
the position in the iterator will be off.
|
|\ \
| | |
| | |
| | |
| | | |
arthurschreiber/arthur/set-error-when-no-remote-found
Remote: Set an error when a remote cannot be found.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Inside `git_remote_load`, the calls to `get_optional_config` use
`giterr_clear` to unset any errors that are set due to missing config
keys. If neither a fetch nor a push url config was found for a remote,
we should set an error again.
|
| |/
|/| |
|
|/ |
|
|
|
|
|
|
| |
This adds another assertion to ensure that the reference name inside
the git_reference struct returned by `git_branch_create` is returned as
precomposed if `core.precomposeunicode` is enabled.
|
|
|
|
|
| |
This tests that decomposed branch names are correctly precomposed when
passed to `git_branch_move` and `core.precomposeunicode` is enabled.
|
|\
| |
| | |
Local clone
|
| |
| |
| |
| |
| | |
Assert the exact amount of links we expect. While there, check that a
plain git_clone() automatically chooses to link.
|
| |
| |
| |
| |
| |
| |
| |
| | |
If requested, git_clone_local_into() will try to link the object files
instead of copying them.
This only works on non-Windows (since it doesn't have this) when both
are on the same filesystem (which are unix semantics).
|
| |
| |
| |
| |
| | |
When passed the LINK_FILES flag, the recursive copy will hardlink files
instead of copying them.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
index: check for valid filemodes on add
|
| |/ |
|
|\ \
| | |
| | | |
Fix compile error on Visual Studio
|
| |/ |
|
| | |
|
| | |
|
|/
|
|
|
|
| |
git_merge_analysis will now return GIT_MERGE_CONFIG_NO_FASTFORWARD
when merge.ff=false and GIT_MERGE_CONFIG_FASTFORWARD_ONLY when
merge.ff=true
|
|\
| |
| | |
Add support for the symref extension
|
| |
| |
| |
| |
| | |
If the remote supports the symref protocol extension, then we return
that, otherwise we guess with git's rules.
|
| |
| |
| |
| |
| | |
Add a symref_target field to git_remote_head to expose the symref
mappings to the user.
|
|\ \
| |/
|/| |
Make core.safecrlf not generate an error on LF-ending platforms
|
| |
| |
| |
| |
| |
| | |
If you enabled core.safecrlf on an LF-ending platform, we would
error even for files with all LFs. We should only be warning on
irreversible mappings, I think.
|
|/ |
|
|\
| |
| | |
Allow mirror-clone via `git_clone_into()`
|
| |
| |
| |
| |
| | |
Show a failure to perform a mirror-clone from a repository, both local
and remote.
|
| |
| |
| |
| |
| | |
The comment char is configurable and we need to provide a way for the
user to specify which comment char they chose for their message.
|
| | |
|
|\ \
| | |
| | | |
Test and fix Git diff binary detection compatibility
|
| | |
| | |
| | |
| | |
| | | |
A variety of data patterns for diffs verified to match the
behavior of binary detection with Git on the command line.
|
|\ \ \
| |/ /
|/| | |
Remote deletion
|
| | |
| | |
| | |
| | |
| | | |
When we delete a remote, we also need to go through its fetch refspecs
and remove the references they create locally.
|
| | | |
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| | |
There are a number of tests that modify the global or system
search paths during the tests. This adds a helper function to
make it easier to restore those paths and makes sure that they
are getting restored in a manner that preserves test isolation.
|
|\ \
| | |
| | | |
Improve checks for ignore containment
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The diff code was using an "ignored_prefix" directory to track if
a parent directory was ignored that contained untracked files
alongside tracked files. Unfortunately, when negative ignore rules
were used for directories inside ignored parents, the wrong rules
were applied to untracked files inside the negatively ignored
child directories.
This commit moves the logic for ignore containment into the workdir
iterator (which is a better place for it), so the ignored-ness of
a directory is contained in the frame stack during traversal. This
allows a child directory to override with a negative ignore and yet
still restore the ignored state of the parent when we traverse out
of the child.
Along with this, there are some problems with "directory only"
ignore rules on container directories. Given "a/*" and "!a/b/c/"
(where the second rule is a directory rule but the first rule is
just a generic prefix rule), then the directory only constraint
was having "a/b/c/d/file" match the first rule and not the second.
This was fixed by having ignore directory-only rules test a rule
against the prefix of a file with LEADINGDIR enabled.
Lastly, spot checks for ignores using `git_ignore_path_is_ignored`
were tested from the top directory down to the bottom to deal with
the containment problem, but this is wrong. We have to test bottom
to top so that negative subdirectory rules will be checked before
parent ignore rules.
This does change the behavior of some existing tests, but it seems
only to bring us more in line with core Git, so I think those
changes are acceptable.
|
|\ \ \
| | | |
| | | | |
Pass unconverted Unicode path data when iconv doesn't like it
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Only on a filesystem that is composed/decomposed insensitive,
should be testing that a branch can be looked up by the opposite
form and still work correctly.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
One of the test helpers provides a quick way for looking up a
boolean key. But if the key way missing completely, the check
would actually raise an error. Given the way we use this helper,
if the key is missing, this should just return false, I think.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When using Iconv to convert unicode data and iconv doesn't like
the source data (because it thinks that it's not actual UTF-8),
instead of stopping the operation, just use the unconverted data.
This will generally do the right thing on the filesystem, since
that is the source of the non-UTF-8 path data anyhow.
This adds some tests for creating and looking up branches with
messy Unicode names. Also, this takes the helper function that
was previously internal to `git_repository_init` and makes it
into `git_path_does_fs_decompose_unicode` which is a useful in
tests to understand what the expected results should be.
|
|\ \ \ \
| | | | |
| | | | | |
Be more careful with user-supplied buffers
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This adds in missing calls to `git_buf_sanitize` and fixes a
number of places where `git_buf` APIs could inadvertently write
NUL terminator bytes into invalid buffers. This also changes the
behavior of `git_buf_sanitize` to NUL terminate a buffer if it can
and of `git_buf_shorten` to do nothing if it can.
Adds tests of filtering code with zeroed (i.e. unsanitized) buffer
which was previously triggering a segfault.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Some improvements to the cert checking
|
| | |_|/
| |/| |
| | | |
| | | |
| | | | |
This kind of stuff should have unit tests, even if it's just to show
what we expect to match successfully.
|