| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| | |
This reverts commit 40d791545abfb3cb71553a27dc64129e1a9bec28.
|
| |
| |
| |
| |
| |
| | |
Ensure that on a case insensitive filesystem that we can checkout
into some folder 'FOLDER' that exists on disk, even if the target
of the checkout is a different case (eg 'folder').
|
|/
|
|
|
|
|
|
| |
On Windows, you might sloppily rewrite a file (or have a sloppy
text editor that does it for you) and accidentally change its
case. (eg, "README" -> "readme"). Git ignores this accidental
case changing rename during checkout and will happily write the
new content to the file despite the name change. We should, too.
|
|\
| |
| | |
Performance Improvements to Status on Windows
|
| |
| |
| |
| |
| |
| |
| |
| | |
The _next method shouldn't take a path pointer (and a path_len
pointer) as 100% of current users use the full path and ignore
the filename.
Plus let's add some docs and a unit test.
|
| | |
|
| |
| |
| |
| | |
Minimizing the number directory and file opens, minimizes the amount of IO thus reducing the overall cost of performing ignore operations.
|
|\ \
| | |
| | | |
[WIP/RFC] 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.
|
| |/
|/| |
|
|\ \
| | |
| | | |
Validate configuration keys
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This is what it's meant all along, but now we actually have multiple
implementations, it's clearer to use the name of the library.
|
|/ /
| |
| |
| |
| | |
As an alternative to OpenSSL when we're on OS X. This one can actually
take advantage of stacking the streams.
|
|\ \
| | |
| | | |
config_write -- handle duplicate section headers when deleting entries
|
| | |
| | |
| | |
| | |
| | | |
Instead of using a config file in resources, include the config file content to
be tested directly in the test.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Add a unittest to validate bug #3043, where a duplicate empty config header
could cause deletion of a config entry to fail silently. The bug is currently
unresolved and this test will fail.
|
|\ \ \ |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix git_checkout_tree() to do index filemodes correctly on Windows.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The idea...sometimes, a filemode is user-specified via an
explicit git_index_entry. In this case, believe the user, always.
Sometimes, it is instead built up by statting the file system. In
those cases, go with the existing logic we have to determine
whether the file system supports all filemodes and symlinks, and
make the best guess.
On file systems which have full filemode and symlink support, this
commit should make no difference. On others (most notably Windows),
this will fix problems things like:
* git_index_add and git_index_add_frombuffer() should be believed.
* As a consequence, git_checkout_tree should make the filemodes in
the index match the ones in the tree.
* And diffs with GIT_DIFF_UPDATE_INDEX don't write the wrong filemodes.
* And merges, and probably other downstream stuff now fixed, too.
This makes my previous changes to checkout.c unnecessary,
so they are now reverted.
Also, added a test for index_entry permissions from git_index_add
and git_index_add_frombuffer, both of which failed before these changes.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
git_checkout_tree() has some fallback behaviors for file systems
which don't have full support of filemodes. Generally works fine,
but if a given file had a change of type from a 0644 to 0755 (i.e.,
you add executable permissions), the fallback behavior incorrectly
triggers when writing hte updated index.
This would cause a git_checkout_tree() command, even with the
GIT_CHECKOUT_FORCE option set, to leave a dirty index on Windows.
Also added checks to an existing test to catch this case.
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
Moved offending tests from network to online so they will get skipped
when there is a lack of network connectivity:
-test_online_remotes__single_branch
-test_online_remotes__restricted_refspecs
|
|\ \ \
| | | |
| | | | |
Rebase fixes
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`git_rebase_init` and `git_rebase_open` should take a
`git_rebase_options` and use it for future rebase operations on
that `rebase` object.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
git_rebase_commit should return `GIT_EUNMERGED` when unmerged items
exist in the index, per the documentation. Test that this is correct.
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Don't assume that comment chars are comment chars, they may be (an
attempt to be escaped). If so, \; is not a valid escape sequence,
complain.
|
|/ /
| |
| |
| |
| | |
Combine unquoting and multiline detection to avoid ambiguity when
parsing.
|
|\ \
| | |
| | | |
ignore: fix negative ignores without wildcards.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Implement git_submodule_set_branch.
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Handle hide-then-push in the revwalk
|
| | |_|/
| |/| |
| | | |
| | | |
| | | | |
When we hide a commit which we later push into the revwalk, we do not
handle this well and return commits which we should not.
|
|\ \ \ \
| | | | |
| | | | | |
Add memory leak detection/reporting using MSVC CRTDBG facility.
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
Make sure to pack referenced objects for non-branches
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When there is a tag, we must make sure that we get all referenced
objects from this tag as well. This failing test shows that e.g. when
there is a tagged tree, we insert the top tree but do not descend, thus
causing the clone to have broken links.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
If work_dir is not specified, use repo_dir to test if symlink is supported
|
| | |_|/ /
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The regcomp function returns a non-zero value if compilation of
a regular expression fails. In most places we only check for
negative values, but positive values indicate an error, as well.
Fix this tree-wide, fixing a segmentation fault when calling
git_config_iterator_glob_new with an invalid regexp.
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | | |
When no reference names could be found we did error out when trying to describe
a commit. This is wrong, though, when the option to fall back to a commit's
object ID is set.
|