|
40342bd2
|
2013-01-10T15:15:37
|
|
Add GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH
This adds an option to checkout a la the diff option to turn off
fnmatch evaluation for pathspec entries. This can be useful to
make sure your "pattern" in really interpretted as an exact file
match only.
|
|
b97fabfa
|
2013-01-06T15:18:00
|
|
tests: Fix some memory leaks
|
|
2f089539
|
2013-01-04T17:17:37
|
|
Actually fix win32 checkout test
It turns out that using REMOVE_UNTRACKED with checkout for this
particular test was causing the .gitattributes file to be removed
and so we do have to allow for the CRs in the created file...
|
|
bebdbcd4
|
2013-01-04T16:56:21
|
|
Fix crlf issue with checkout tests
Move some checkout utility functions into a shared file and fix
some crlf filtering issues when verifying file contents.
|
|
817d6251
|
2013-01-03T16:56:27
|
|
Fix checkout of index-only dirs and prefixed paths
There are a couple of checkout bugs fixed here. One is with
untracked working directory entries that are prefixes of tree
entries but not in a meaningful way (i.e. "read" is a prefix of
"readme.txt" but doesn't interfere in any way). The second bug
is actually a redo of 07edfa0fc640f85f95507c3101e77accd7d2bf0d
where directory entries in the index that are not in the diff
were not being removed correctly. That fix remedied one case
but broke another.
|
|
d8889d2b
|
2013-01-03T14:08:53
|
|
Fix checkout bug rmv untracked trees from index
When checking out with the GIT_CHECKOUT_REMOVE_UNTRACKED option
and there was an entire tree in the working directory and in the
index that is not in the baseline nor target commit, the tree was
correctly(?) removed from the working directory but was not
successfully removed from the index. This fixes that and adds a
test of the functionality.
|
|
0d70f650
|
2013-01-03T10:51:18
|
|
Fixing checkout UPDATE_ONLY and adding tests
This adds a bunch of new checkout tests and in the process I found
a bug in the GIT_CHECKOUT_UPDATE_ONLY flag which I fixed.
|
|
c50c58de
|
2013-01-02T17:10:56
|
|
Extend tests for checkout with typechanges
Test a number of other cases, including intentionally forced
conflicts and deeper inspection that trees get created properly.
There is a still a bug in checkout because the first test here
(i.e. test_checkout_typechange__checkout_typechanges_safe) should
be able to pass with GIT_CHECKOUT_SAFE as a strategy, but it will
not because of some lingering submodule checkout issues.
|
|
5cf9875a
|
2012-12-18T15:19:24
|
|
Add index updating to checkout
Make checkout update entries in the index for all files that are
updated and/or removed, unless flag GIT_CHECKOUT_DONT_UPDATE_INDEX
is given. To do this, iterators were extended to allow a little
more introspection into the index being iterated over, etc.
|
|
7e5c8a5b
|
2012-12-10T15:31:43
|
|
More checkout improvements
This flips checkout back to be driven off the changes between
the baseline and the target trees. This reinstates the complex
code for tracking the contents of the working directory, but
overall, I think the resulting logic is easier to follow.
|
|
cf208031
|
2012-12-06T13:36:17
|
|
Rework checkout internals (again)
I've tried to map out the detailed behaviors of checkout and make
sure that we're handling the various cases correctly, along with
providing options to allow us to emulate "git checkout" and "git
checkout-index" with the various flags. I've thrown away flags
in the checkout API that seemed like clutter and added some new
ones. Also, I've converted the conflict callback to a general
notification callback so we can emulate "git checkout" output and
display "dirty" files.
As of this commit, the new behavior is not working 100% but some
of that is probably baked into tests that are not testing the
right thing. This is a decent snapshot point, I think, along the
way to getting the update done.
|
|
c5df10f4
|
2012-11-30T10:59:03
|
|
Failing test on git_checkout_tree when removing directories
|
|
d0951175
|
2012-12-06T16:12:21
|
|
Add failing test to demonstrate wrong checkout behaviour
|
|
0ab3a2ab
|
2012-11-30T20:34:50
|
|
Deploy GIT_INIT_STRUCTURE
|
|
b81aa2f1
|
2012-11-29T14:06:40
|
|
Deploy GIT_CHECKOUT_OPTS_INIT
|
|
2508cc66
|
2012-11-18T21:38:08
|
|
Rename ref and reflog apis for consistency
|
|
9094d30b
|
2012-11-23T11:41:56
|
|
Reset all static variables to NULL in clar's __cleanup
Without this change, any failed assertion in the second (or a later) test
inside a test suite has a chance of double deleting memory, resulting in
a heap corruption. See #1096 for details.
This leaves alone the test cases where we "just" use cl_git_sandbox_init()
and cl_git_sandbox_cleanup(). These methods already take good care to not
double delete a repository.
Fixes #1096
|
|
bbe6dbec
|
2012-11-14T23:29:48
|
|
Add explicit git_index ptr to diff and checkout
A number of diff APIs and the `git_checkout_index` API take a
`git_repository` object an operate on the index. This updates
them to take a `git_index` pointer explicitly and only fall back
on the `git_repository` index if the index input is NULL. This
makes it easier to operate on a temporary index.
|
|
ad9a921b
|
2012-11-08T17:05:07
|
|
Rework checkout with new strategy options
This is a major reworking of checkout strategy options. The
checkout code is now sensitive to the contents of the HEAD tree
and the new options allow you to update the working tree so that
it will match the index content only when it previously matched
the contents of the HEAD. This allows you to, for example, to
distinguish between removing files that are in the HEAD but not
in the index, vs just removing all untracked files.
Because of various corner cases that arise, etc., this required
some additional capabilities in rmdir and other utility functions.
This includes the beginnings of an implementation of code to read
a partial tree into the index based on a pathspec, but that is
not enabled because of the possibility of creating conflicting
index entries.
|
|
32def5af
|
2012-10-24T17:37:07
|
|
Fix checkout behavior when its hands are tied
So, @nulltoken created a failing test case for checkout that
proved to be particularly daunting. If checkout is given only
a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING)
then it is possible for typechange/rename modifications to leave it
unable to complete the request. That's okay, but the existing code
did not have enough information not to generate an error (at least
for tree/blob conflicts).
This led me to a significant reorganization of the code to handle
the failing case, but it has three benefits:
1. The test case is handled correctly (I think)
2. The new code should actually be much faster than the old code
since I decided to make checkout aware of diff list internals.
3. The progress value accuracy is hugely increased since I added
a fourth pass which calculates exactly what work needs to be
done before doing anything.
|
|
1fc375e6
|
2012-10-25T09:02:55
|
|
Fix Windows build
Pedantic ordering of GIT_UNUSED vs. variable declarations.
|
|
1eb8cd7f
|
2012-10-25T08:16:13
|
|
Merge pull request #990 from ben/clone-callbacks
Progress callbacks
|
|
cd1ef822
|
2012-10-20T12:07:53
|
|
test: extract make_head_orphaned() logic
|
|
9c05c17b
|
2012-10-19T20:05:18
|
|
Checkout progress now reports completed/total steps
|
|
cd001bbb
|
2012-10-19T19:37:47
|
|
Fix from rebase
|
|
25e8b201
|
2012-10-18T15:35:03
|
|
Fix broken tests
|
|
30a46ab1
|
2012-10-18T14:04:14
|
|
Adjust for rebase
|
|
0ae81fc4
|
2012-10-17T15:30:22
|
|
index: remove read_tree() progress indicator
git_index_read_tree() was exposing a parameter to provide the user with
a progress indicator. Unfortunately, due to the recursive nature of the
tree walk, the maximum number of items to process was unknown. Thus,
the indicator was only counting processed entries, without providing
any information how the number of remaining items.
|
|
80642656
|
2012-10-16T20:23:10
|
|
Convert checkout_* to use progress callback
|
|
2c8bbb27
|
2012-10-16T20:16:21
|
|
Convert checkout_index to use progress callback
|
|
8b05bea8
|
2012-10-19T17:07:39
|
|
errors: deploy GIT_EORPHANEDHEAD usage
|
|
0d64bef9
|
2012-10-05T15:56:57
|
|
Add complex checkout test and then fix checkout
This started as a complex new test for checkout going through the
"typechanges" test repository, but that revealed numerous issues
with checkout, including:
* complete failure with submodules
* failure to create blobs with exec bits
* problems when replacing a tree with a blob because the tree
"example/" sorts after the blob "example" so the delete was
being processed after the single file blob was created
This fixes most of those problems and includes a number of other
minor changes that made it easier to do that, including improving
the TYPECHANGE support in diff/status, etc.
|
|
9e592583
|
2012-09-19T12:23:47
|
|
checkout: add notification callback for skipped files
|
|
39783719
|
2012-09-17T20:27:28
|
|
checkout: Mimic git_diff_options storage of paths
|
|
10df95c3
|
2012-09-15T12:23:49
|
|
checkout: add test coverage of dirs and subtrees
|
|
c214fa1c
|
2012-09-06T15:15:46
|
|
checkout: segregate checkout strategies
|
|
020cda99
|
2012-09-14T16:45:24
|
|
checkout: separate tree from index related tests
|
|
3aa443a9
|
2012-08-20T16:56:45
|
|
checkout: introduce git_checkout_tree()
|
|
e9ca852e
|
2012-08-23T09:20:17
|
|
Fix warnings and merge issues on Win64
|
|
b2be351a
|
2012-08-21T10:10:32
|
|
Win32: test core.autocrlf
|
|
c3588142
|
2012-08-20T20:24:20
|
|
Tests: close file handles before asserting
Avoids getting ERROR_SHARING_VIOLATION on win32
and killing the entire clar run.
|
|
eb87800a
|
2012-08-06T09:34:17
|
|
Checkout: fix memory leak in tests.
|
|
5f4d2f9f
|
2012-07-31T19:49:19
|
|
Checkout: fix problem with detached HEAD.
|
|
78cd966a
|
2012-07-31T16:24:04
|
|
Checkout: fix crlf tests under win32.
|
|
e4bac3c4
|
2012-07-31T15:38:12
|
|
Checkout: crlf filter.
|
|
8e4aae1a
|
2012-07-31T10:44:42
|
|
Checkout: handle file modes properly.
Global file mode override now works properly with
the file mode stored in the tree node.
|
|
3f584b50
|
2012-07-31T09:01:11
|
|
Try to fix Travis.
|
|
e0681f6d
|
2012-07-27T20:39:43
|
|
Checkout: disable file-mode test on win32.
|
|
b31667fb
|
2012-07-27T20:29:06
|
|
Checkout: add head- and ref-centric checkouts.
Renamed git_checkout_index to what it really was,
and removed duplicate code from clone.c. Added
git_checkout_ref, which updates HEAD and hands off
to git_checkout_head.
Added tests for the options the caller can pass to
git_checkout_*.
|
|
b401bace
|
2012-07-26T13:12:21
|
|
Restructure for better checkout options
* Removed the #define for defaults
* Promoted progress structure to top-level API call
argument
|
|
ef9905c9
|
2012-07-26T12:58:44
|
|
checkout: introduce git_checkout_opts
Refactor checkout into several more-sensible
entry points, which consolidates common options
into a single structure that may be passed around.
|
|
09a03995
|
2012-07-17T20:20:34
|
|
Checkout: make core.symlinks test work on OSX.
|
|
8651c10f
|
2012-07-17T19:57:37
|
|
Checkout: obey core.symlinks.
|
|
1d68fcd0
|
2012-07-16T16:16:11
|
|
Checkout: handle symlinks.
Includes unfinished win32 implementation.
|
|
71bc89b9
|
2012-07-13T20:24:40
|
|
Disable test that aren't quite ready yet.
|
|
280c7bbf
|
2012-07-13T15:52:27
|
|
Add checkout test suite.
Removed 'bare' option from test repository to
allow checkout tests.
|