Age | Commit message (Collapse) | Author | Files | Lines |
|
"stash save" is about saving the local change to the working tree,
but also about restoring the state of the last commit to the working
tree. When a local change is to turn a non-directory to a directory,
in order to restore the non-directory, everything in the directory
needs to be removed.
Which is fine when running "git stash save --include-untracked",
but without that option, untracked, newly created files in the
directory will have to be discarded, if the state you are restoring
to has a non-directory at the same path as the directory.
Introduce a safety valve to fail the operation in such case, using
the "ls-files --killed" which was designed for this exact purpose.
The "stash save" is stopped when untracked files need to be
discarded because their leading path ceased to be a directory, and
the user is required to pass --force to really have the data
removed.
Signed-off-by: Petr Baudis <pasky@ucw.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
When the working tree walker encounters a directory, it asks the
function treat_directory() if it should descend into it, show it as
an untracked directory, or do something else. When the directory is
the top of the submodule working tree, we used to say "That is an
untracked directory", which was bogus.
It is an entity that is tracked in the index of the repository we
are looking at, and that is not to be descended into it. Return
path_none, not path_untracked, to report that.
The existing case that path_untracked is returned for a newly
discovered submodule that is not tracked in the index (this only
happens when DIR_NO_GITLINKS option is not used) is unchanged, but
that is exactly because the submodule is not tracked in the index.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
* maint:
Start preparing for 1.8.3.2
|
|
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
* ks/difftool-dir-diff-copy-fix:
difftool --dir-diff: allow changing any clean working tree file
|
|
* rr/push-head:
push: make push.default = current use resolved HEAD
push: fail early with detached HEAD and current
push: factor out the detached HEAD error message
|
|
* fc/show-branch-in-rebase-am:
prompt: fix for simple rebase
|
|
* tg/maint-zsh-svn-remote-prompt:
prompt: fix show upstream with svn and zsh
|
|
* nd/urls-doc-no-file-hyperlink-fix:
urls.txt: avoid auto converting to hyperlink
|
|
* tr/push-no-verify-doc:
Document push --no-verify
|
|
* rs/commit-m-no-edit:
commit: don't start editor if empty message is given with -m
|
|
* jc/strbuf-branchname-fix:
strbuf_branchname(): do not double-expand @{-1}~22
|
|
* mk/combine-diff-context-horizon-fix:
combine-diff.c: Fix output when changes are exactly 3 lines apart
|
|
* kb/ancestry-path-threedots:
revision.c: treat A...B merge bases as if manually specified
t6019: demonstrate --ancestry-path A...B breakage
|
|
* jk/subtree-do-not-push-if-split-fails:
contrib/subtree: don't delete remote branches if split fails
|
|
* mh/fetch-into-shallow:
t5500: add test for fetching with an unknown 'shallow'
upload-pack: ignore 'shallow' lines with unknown obj-ids
|
|
* jh/checkout-auto-tracking:
glossary: Update and rephrase the definition of a remote-tracking branch
branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
t9114.2: Don't use --track option against "svn-remote"-tracking branches
t7201.24: Add refspec to keep --track working
t3200.39: tracking setup should fail if there is no matching refspec.
checkout: Use remote refspecs when DWIMming tracking branches
t2024: Show failure to use refspec when DWIMming remote branch names
t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
|
|
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
* jk/add-i-custom-diff-algo:
add -i: add extra options at the right place in "diff" command line
add--interactive: respect diff.algorithm
|
|
The reflog message created when "git cherry-pick" fast-forwarded
did not say anything but "cherry-pick", but it now says
"cherry-pick: fast-forward".
* rr/cherry-pick-fast-forward-reflog-message:
sequencer: write useful reflog message for fast-forward
|
|
Logic used by git-send-email to suppress cc mishandled names that
need RFC2047 quoting.
* mt/send-email-cc-match-fix:
send-email: sanitize author when writing From line
send-email: add test for duplicate utf8 name
|
|
"git pull" into nothing trashed "local changes" that were in the
index, and this avoids it.
* jk/pull-into-dirty-unborn:
pull: merge into unborn by fast-forwarding from empty tree
pull: update unborn branch tip after index
|
|
Older cURL wanted piece of memory we call it with to be stable, but
we updated the auth material after handing it to a call.
* bc/http-keep-memory-given-to-curl:
http.c: don't rewrite the user:passwd string multiple times
|
|
Plug a small leak in checkout.
* bc/checkout-tracking-name-plug-leak:
t/t9802: explicitly name the upstream branch to use as a base
builtin/checkout.c: don't leak memory in check_tracking_name
|
|
Finishing touches for the "git rebase --autostash" feature
introduced earlier.
* rr/rebase-stash-store:
rebase: use 'git stash store' to simplify logic
stash: introduce 'git stash store'
stash: simplify option parser for create
stash doc: document short form -p in synopsis
stash doc: add a warning about using create
|
|
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
Fix for the codepath to parse patches that add new files, generated
by programs other than Git. THis is an old breakage in v1.7.11 and
will need to be merged down to the maintanance tracks.
* tr/maint-apply-non-git-patch-parsefix:
apply: carefully strdup a possibly-NULL name
|
|
On Cygwin, recognize "cygstart" as a possible way to start a web
browser (used in "help -w" and "instaweb" among others).
* ys/cygstart:
web--browse: support /usr/bin/cygstart on Cygwin
|
|
* wk/doc-git-has-grown:
user-manual: Update download size for Git and the kernel
|
|
* vl/typofix:
random typofixes (committed missing a 't', successful missing an 's')
|
|
* ph/builtin-srcs-are-in-subdir-these-days:
fix "builtin-*" references to be "builtin/*"
|
|
* mm/merge-in-dirty-worktree-doc:
Documentation/git-merge.txt: weaken warning about uncommited changes
|
|
* kb/diff-blob-blob-doc:
Documentation: Move "git diff <blob> <blob>"
|
|
* mm/push-force-is-dangerous:
Documentation/git-push.txt: explain better cases where --force is dangerous
|
|
Many "git submodule" operations do not work on a submodule at a
path whose name is not in ASCII.
* fg/submodule-non-ascii-path:
t7400: test of UTF-8 submodule names pass under Mac OS
handle multibyte characters in name
|
|
For now, comment out the description on two "git status" UI
configuration, until the reverted topic can be resurrected.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
Recent "rebase --autostash" update made it impossible to recover
with "git am --abort" from a repository where "git am" without mbox
was run by mistake and then was killed with "^C".
* rr/am-quit-empty-then-abort-fix:
t/am: use test_path_is_missing() where appropriate
am: handle stray $dotest directory
|
|
* rt/cherry-pick-continue-advice-in-status:
wt-status: give better advice when cherry-pick is in progress
|
|
* nk/config-local-doc:
config: Add description of --local option
|
|
Code cleanup.
* jk/mergetool-lib-refactor:
mergetool--lib: refactor {diff,merge}_cmd logic
|
|
Makefile cleanup.
* jk/doc-build-move-infordir-def:
Documentation/Makefile: move infodir to be with other '*dir's
Documentation/Makefile: fix spaces around assignments
|
|
Code cleanup.
* fg/submodule-fixup:
git-submodule.sh: remove duplicate call to set_rev_name
|
|
Allow packaging a tarball in a working tree with $GIT_DIR set elsewhere.
* dk/version-gen-gitdir:
GIT-VERSION-GEN: support non-standard $GIT_DIR path
|
|
Fix a test script.
* dk/maint-t5150-dirname:
tests: allow sha1's as part of the path
|
|
Code clean-up.
* rs/unpack-trees-tree-walk-conflict-field:
unpack-trees: don't shift conflicts left and right
|
|
Allow various commit objects to be given to "git rebase" by ':/look
for this string' syntax, e.g. "git rebase --onto ':/there'".
* rr/rebase-sha1-by-string-query:
rebase: use peel_committish() where appropriate
sh-setup: add new peel_committish() helper
t/rebase: add failing tests for a peculiar revision
|
|
Give a single message followed by list of paths from "git rm" to
report multiple paths that cannot be removed.
* mm/rm-coalesce-errors:
rm: introduce advice.rmHints to shorten messages
rm: better error message on failure for multiple files
|
|
Make it possible to call into copy-notes API from the sequencer code.
* jh/libify-note-handling:
Move create_notes_commit() from notes-merge.c into notes-utils.c
Move copy_note_for_rewrite + friends from builtin/notes.c to notes-utils.c
finish_copy_notes_for_rewrite(): Let caller provide commit message
|
|
Plug a small leak in an error codepath.
* fc/sequencer-plug-leak:
sequencer: avoid leaking message buffer when refusing to create an empty commit
sequencer: remove useless indentation
|
|
This reverts commit 1a22bd31f0a5130ce6c934951a5526ceb774c2be, reversing
changes made to 3e7a5b489e45ae8a3a0b222893d58b172d883136.
It makes it impossible to "git commit" when status.short is set, and
also "git status --porcelain" output is affected by status.branch.
|