mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
Merge branch 'mg/maint-doc-sparse-checkout'
* mg/maint-doc-sparse-checkout: git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr
This commit is contained in:
commit
5fbef463a1
|
@ -47,7 +47,7 @@ OPTIONS
|
|||
|
||||
-i::
|
||||
Usually a merge requires the index file as well as the
|
||||
files in the working tree are up to date with the
|
||||
files in the working tree to be up to date with the
|
||||
current head commit, in order not to lose local
|
||||
changes. This flag disables the check with the working
|
||||
tree and is meant to be used when creating a merge of
|
||||
|
@ -71,21 +71,21 @@ OPTIONS
|
|||
--aggressive::
|
||||
Usually a three-way merge by 'git read-tree' resolves
|
||||
the merge for really trivial cases and leaves other
|
||||
cases unresolved in the index, so that Porcelains can
|
||||
cases unresolved in the index, so that porcelains can
|
||||
implement different merge policies. This flag makes the
|
||||
command to resolve a few more cases internally:
|
||||
command resolve a few more cases internally:
|
||||
+
|
||||
* when one side removes a path and the other side leaves the path
|
||||
unmodified. The resolution is to remove that path.
|
||||
* when both sides remove a path. The resolution is to remove that path.
|
||||
* when both sides adds a path identically. The resolution
|
||||
* when both sides add a path identically. The resolution
|
||||
is to add that path.
|
||||
|
||||
--prefix=<prefix>/::
|
||||
Keep the current index contents, and read the contents
|
||||
of named tree-ish under directory at `<prefix>`. The
|
||||
of the named tree-ish under the directory at `<prefix>`. The
|
||||
original index file cannot have anything at the path
|
||||
`<prefix>` itself, and have nothing in `<prefix>/`
|
||||
`<prefix>` itself, nor anything in the `<prefix>/`
|
||||
directory. Note that the `<prefix>/` value must end
|
||||
with a slash.
|
||||
|
||||
|
@ -379,36 +379,36 @@ have finished your work-in-progress), attempt the merge again.
|
|||
Sparse checkout
|
||||
---------------
|
||||
|
||||
"Sparse checkout" allows to sparsely populate working directory.
|
||||
It uses skip-worktree bit (see linkgit:git-update-index[1]) to tell
|
||||
Git whether a file on working directory is worth looking at.
|
||||
"Sparse checkout" allows populating the working directory sparsely.
|
||||
It uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell
|
||||
Git whether a file in the working directory is worth looking at.
|
||||
|
||||
"git read-tree" and other merge-based commands ("git merge", "git
|
||||
checkout"...) can help maintaining skip-worktree bitmap and working
|
||||
'git read-tree' and other merge-based commands ('git merge', 'git
|
||||
checkout'...) can help maintaining the skip-worktree bitmap and working
|
||||
directory update. `$GIT_DIR/info/sparse-checkout` is used to
|
||||
define the skip-worktree reference bitmap. When "git read-tree" needs
|
||||
to update working directory, it will reset skip-worktree bit in index
|
||||
define the skip-worktree reference bitmap. When 'git read-tree' needs
|
||||
to update the working directory, it resets the skip-worktree bit in the index
|
||||
based on this file, which uses the same syntax as .gitignore files.
|
||||
If an entry matches a pattern in this file, skip-worktree will be
|
||||
set on that entry. Otherwise, skip-worktree will be unset.
|
||||
If an entry matches a pattern in this file, skip-worktree will not be
|
||||
set on that entry. Otherwise, skip-worktree will be set.
|
||||
|
||||
Then it compares the new skip-worktree value with the previous one. If
|
||||
skip-worktree turns from unset to set, it will add the corresponding
|
||||
file back. If it turns from set to unset, that file will be removed.
|
||||
skip-worktree turns from set to unset, it will add the corresponding
|
||||
file back. If it turns from unset to set, that file will be removed.
|
||||
|
||||
While `$GIT_DIR/info/sparse-checkout` is usually used to specify what
|
||||
files are in. You can also specify what files are _not_ in, using
|
||||
negate patterns. For example, to remove file "unwanted":
|
||||
files are in, you can also specify what files are _not_ in, using
|
||||
negate patterns. For example, to remove the file `unwanted`:
|
||||
|
||||
----------------
|
||||
*
|
||||
!unwanted
|
||||
----------------
|
||||
|
||||
Another tricky thing is fully repopulating working directory when you
|
||||
Another tricky thing is fully repopulating the working directory when you
|
||||
no longer want sparse checkout. You cannot just disable "sparse
|
||||
checkout" because skip-worktree are still in the index and you working
|
||||
directory is still sparsely populated. You should re-populate working
|
||||
checkout" because skip-worktree bits are still in the index and your working
|
||||
directory is still sparsely populated. You should re-populate the working
|
||||
directory with the `$GIT_DIR/info/sparse-checkout` file content as
|
||||
follows:
|
||||
|
||||
|
@ -416,8 +416,8 @@ follows:
|
|||
*
|
||||
----------------
|
||||
|
||||
Then you can disable sparse checkout. Sparse checkout support in "git
|
||||
read-tree" and similar commands is disabled by default. You need to
|
||||
Then you can disable sparse checkout. Sparse checkout support in 'git
|
||||
read-tree' and similar commands is disabled by default. You need to
|
||||
turn `core.sparseCheckout` on in order to have sparse checkout
|
||||
support.
|
||||
|
||||
|
|
|
@ -107,6 +107,7 @@ error: The following untracked working tree files would be overwritten by merge:
|
|||
sub
|
||||
sub2
|
||||
Please move or remove them before you can merge.
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'will not overwrite untracked file in leading path' '
|
||||
|
|
|
@ -32,6 +32,7 @@ error: The following untracked working tree files would be overwritten by merge:
|
|||
three
|
||||
two
|
||||
Please move or remove them before you can merge.
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'untracked files overwritten by merge (fast and non-fast forward)' '
|
||||
|
@ -56,6 +57,7 @@ Please, commit your changes or stash them before you can merge.
|
|||
error: The following untracked working tree files would be overwritten by merge:
|
||||
five
|
||||
Please move or remove them before you can merge.
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'untracked files or local changes ovewritten by merge' '
|
||||
|
@ -71,6 +73,7 @@ error: Your local changes to the following files would be overwritten by checkou
|
|||
rep/one
|
||||
rep/two
|
||||
Please, commit your changes or stash them before you can switch branches.
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'cannot switch branches because of local changes' '
|
||||
|
@ -92,6 +95,7 @@ error: Your local changes to the following files would be overwritten by checkou
|
|||
rep/one
|
||||
rep/two
|
||||
Please, commit your changes or stash them before you can switch branches.
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'not uptodate file porcelain checkout error' '
|
||||
|
@ -105,6 +109,7 @@ error: Updating the following directories would lose untracked files in it:
|
|||
rep
|
||||
rep2
|
||||
|
||||
Aborting
|
||||
EOF
|
||||
|
||||
test_expect_success 'not_uptodate_dir porcelain checkout error' '
|
||||
|
|
|
@ -159,7 +159,7 @@ static void display_error_msgs(struct unpack_trees_options *o)
|
|||
string_list_clear(rejects, 0);
|
||||
}
|
||||
if (something_displayed)
|
||||
printf("Aborting\n");
|
||||
fprintf(stderr, "Aborting\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue