path: root/
AgeCommit message (Collapse)Author
2008-02-23git-stash: add new 'pop' subcommandBrandon Casey
This combines the existing stash subcommands 'apply' and 'drop' to allow a single stash entry to be applied and then dropped, in other words 'popped', from the stash list. Signed-off-by: Brandon Casey <> Signed-off-by: Junio C Hamano <>
2008-02-23git-stash: add new 'drop' subcommandBrandon Casey
This allows a single stash entry to be deleted. It takes an optional argument which is a stash reflog entry. If no arguments are supplied, it drops the most recent stash entry. Signed-off-by: Brandon Casey <> Signed-off-by: Junio C Hamano <>
2008-01-07git-stash clear: refuse to work with extra parameter for nowJunio C Hamano
Because it is so tempting to expect "git stash clear stash@{4}" to remove the fourth element in the stash while leaving other elements intact, we should not blindly throw away everything upon seeing such a command. This may change when we start using "git reflog delete" to selectively nuke a single (or multiple, for that matter) stash entries with such a command line. Signed-off-by: Junio C Hamano <>
2008-01-05git-stash: use stdout instead of stderr for non error messagesMarco Costalba
Some scripts and libraries check stderr to detect a failing command, instead of checking the exit code. Because the output from git-status is not primarily for machine consumption, it would not hurt to send these messages to stdout instead and it will make it easier to drive the command for such callers. Signed-off-by: Marco Costalba <> Signed-off-by: Junio C Hamano <>
2007-12-22Emit helpful status for accidental "git stash" saveWincent Colaiuta
If the user types "git stash" mistakenly thinking that this will list their stashes he/she may be surprised to see that it actually saved a new stash and reset their working tree and index. In the worst case they might not know how to recover the state. So help them by telling them exactly what was saved and also how to restore it immediately. Signed-off-by: Wincent Colaiuta <> Signed-off-by: Junio C Hamano <>
2007-12-03git-stash: Display help message if git-stash is run with wrong sub-commandsKevin Leung
The current git-stash behaviour is very error prone to typos. For example, if you typed "git-stash llist", git-stash would think that you wanted to save to a stash named "llist", but in fact, you meant "git-stash list". Signed-off-by: Kevin Leung <> Signed-off-by: Junio C Hamano <>
2007-11-29Merge branch 'maint'Junio C Hamano
* maint: scripts: do not get confused with HEAD in work tree Improve description of git-branch -d and -D in man page.
2007-11-29scripts: do not get confused with HEAD in work treeJunio C Hamano
When you have a file called HEAD in your work tree, many commands that our scripts feed "HEAD" to would complain about the rev vs path ambiguity. A solution is to form command line more carefully by appending -- to them, which makes it clear that we mean HEAD rev not HEAD file. This patch would apply to maint. Signed-off-by: Junio C Hamano <>
2007-11-28git-stash: do not get fooled with "color.diff = true"Pascal Obry
When colors are set to "true" on the repository, the git log output will contain control characters to set/reset the colors, even when the output is to a pipe. This makes list_stash() fail as the downstream sed does not see what it is expecting. Signed-off-by: Junio C Hamano <>
2007-11-18Merge branch 'ph/parseopt-sh'Junio C Hamano
* ph/parseopt-sh: fix --patches handling git-am: -i does not take a string parameter. sh-setup: don't let eval output to be shell-expanded. git-sh-setup: fix parseopt `eval` string underquoting Give git-am back the ability to add Signed-off-by lines. git-rev-parse --parseopt scripts: Add placeholders for OPTIONS_SPEC Migrate to use git-rev-parse --parseopt Migrate to use git-rev-parse --parseopt Migrate to use git-rev-parse --parseopt --keep-dashdash Migrate to use git-rev-parse --parseopt Migrate to use git-rev-parse --parseopt Migrate to use git-rev-parse --parseopt Migrate git-clone to use git-rev-parse --parseopt Migrate to use git-rev-parse --parseopt. Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.
2007-11-14Merge branch 'jc/stash-create'Junio C Hamano
* jc/stash-create: git-stash: Fix listing stashes git-merge: no reason to use cpio anymore Revert "rebase: allow starting from a dirty tree." rebase: allow starting from a dirty tree. stash: implement "stash create"
2007-11-07git-stash: Fix listing stashesEmil Medve
Commit bc9e7399af3790918140c30a5b2c85bf9a8f1ad3 "reverted" commit f12e925ac23ad6169e046cfe05b8438a1611ad58 Signed-off-by: Emil Medve <> Signed-off-by: Junio C Hamano <>
2007-11-06scripts: Add placeholders for OPTIONS_SPECJunio C Hamano
--text follows this line-- These commands currently lack OPTIONS_SPEC; allow people to easily list with "git grep 'OPTIONS_SPEC=$'" what they can help improving. Signed-off-by: Junio C Hamano <>
2007-10-19Paper bag fix diff invocation in 'git stash show'Shawn O. Pearce
In 89d750bf6fa025edeb31ad258cdd09a27a5c02fa I got a little too aggressive with changing "git diff" to "git diff-tree". This is shown to the user, who expects to see a full diff on their console, and will want to see the output of their custom diff drivers (if any) as the whole point of this call site is to show the diff to the end-user. Noticed by Johannes Sixt <>. Signed-off-by: Shawn O. Pearce <>
2007-10-19Avoid invoking diff drivers during git-stashShawn O. Pearce
git-stash needs to restrict itself to plumbing when running automated diffs as part of its operation as the user may have configured a custom diff driver that opens an interactive UI for certain/all files. Doing that during scripted actions is very unfriendly to the end-user and may cause git-stash to fail to work. Reported by Johannes Sixt Acked-by: Johannes Schindelin <> Signed-off-by: Shawn O. Pearce <>
2007-09-15stash: implement "stash create"Junio C Hamano
This subcommand creates a stash from the current state and writes out the resulting commit object ID to the standard output, without updating the stash ref nor resetting the tree. It is intended to be used by scripts to temporarily rewind the working tree to a clean state. Signed-off-by: Junio C Hamano <>
2007-09-12stash: end index commit log with a newlineJean-Luc Herren
There was no newline at the end of the index commit message, putting the shell prompt at its end after a 'git cat-file commit $id'. This is similar to what was fixed in 843103d69388a5c74ed99753e1c162a66835b04d. Signed-off-by: Jean-Luc Herren <> Signed-off-by: Junio C Hamano <>
2007-07-28git-stash apply --index: optimize postprocessingJunio C Hamano
Originally, "apply --index" codepath was bolted on to the "update working tree files and index, but then revert the changes we make to the index except for added files so that we do not forget about them" codepath, almost as an afterthought. Because "apply --index" first prepares the final index state upfront, "revert except the added paths" postprocessing does not have to be done. Signed-off-by: Junio C Hamano <>
2007-07-28Fix git-stash apply --indexJunio C Hamano
Two bugs that made the command practically unusable were fixed with this. - A stash created with a clean index does not have any difference between the base tree and the index tree. Trying to apply the diff between them to the index would error out with "No changes". Even when the user asked to unstash with --index, do not bother with --index action if the base tree and the index tree match. - After successfully performing the working tree merge, the index was reloaded from an earlier state of unstashed index with "read-tree"; this left all the paths cache dirty. By moving the call to git-status after this read-tree, match the cached stat information in the index. Signed-off-by: Junio C Hamano <>
2007-07-28git-stash: Make sure reflog is created for refs/stashしらいしななこ
Earlier commit 7ab3cc70 fixed "stash clear" but broke save_stash, because it forgot to make sure the reflog file exists before saving. Signed-off-by: Nanako Shiraishi <> Signed-off-by: Junio C Hamano <>
2007-07-27git-stash: do not remove a ref by hand.Junio C Hamano
Somebody on #git noticed that "git stash clear" left a packed ref behind for ref/stash. Signed-off-by: Junio C Hamano <>
2007-07-25Make sure git-stash works from subdirectory.Junio C Hamano
We say "SUBDIRECTORY_OK" but we did not chdir to toplevel; this is fine as long as everything we use can be started from a subdirectory, but unfortunately "merge-recursive" is not one of the programs you can safely use from a subdirectory. Signed-off-by: Junio C Hamano <>
2007-07-09git-stash: try reusing cached stat info as much as possibleJunio C Hamano
Earlier when we read a tree into a temporary index, we read it from scratch. Start from the current index and use read-tree -m to preserve cached stat information as much as possible, in order to speed up "git add -u". This makes "git stash" usable in a source tree of nontrivial size. Signed-off-by: Junio C Hamano <>
2007-07-07Merge branch 'js/stash'Junio C Hamano
* js/stash: Teach git-stash to "apply --index"
2007-07-07stash: allow running from a subdirectoryJames Bowes
Signed-off-by: James Bowes <> Signed-off-by: Junio C Hamano <>
2007-07-06Teach git-stash to "apply --index"Johannes Schindelin
When given this subcommand, git-stash will try to merge the stashed index into the current one. Only trivial merges are possible, since we have no index for the index ;-) If a trivial merge is not possible, git-stash will bail out with a hint to skip the --index option. For good measure, finally include a test case. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2007-07-06git-stash: allow more descriptive reminder message when savingJunio C Hamano
This allows you to say: $ git stash starting to implement X while creating a stash, and the resulting "stash list entry would read as: $ git stash list stash@{0}: On master: starting to implement X instead of the default message which talks about the commit the stash happens to be based on (hence does not have much to do with what the stashed change is trying to do). Signed-off-by: Junio C Hamano <>
2007-07-04Update reflog message created for stashesJunio C Hamano
A stash is about a change on top of an existing commit, and not about that commit that happened to be on which the change was created. Match the message we see in "git stash list" with the commit log message to make this clear. Signed-off-by: Junio C Hamano <> Acked-by: Uwe Kleine-König <>
2007-07-04stash: end commit log with a newlineUwe Kleine-König
If I do git cat-file commit $commitid for a commit created by stash, the next prompt starts directly after the shortlog of HEAD. Signed-off-by: Uwe Kleine-König <> Signed-off-by: Junio C Hamano <>
2007-07-03git-stash: make "save" the default action again.Junio C Hamano
Signed-off-by: Junio C Hamano <>
2007-07-03Rewrite "git-frotz" to "git frotz"Junio C Hamano
This uses the remove-dashes target to replace "git-frotz" to "git frotz". Signed-off-by: Junio C Hamano <>
2007-07-02git-stash: don't complain when listing in a repo with no stashJeff King
Previously, the git-log invocation would complain if a repo had not had any stashes created in it yet: $ git-init $ git-stash fatal: ambiguous argument 'refs/stash': unknown revision or path not in the working tree. Use '--' to separate paths from revisions Instead, we only call git-log if we actually have a refs/stash. We could alternatively create the ref when any stash command is called, but it's better for the 'list' command to not require write access to the repo. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
2007-07-02git-stash: fix "can't shift that many" with no argumentsJeff King
Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
2007-07-01git-stash: require "save" to be explicit and update documentationJunio C Hamano
Signed-off-by: Junio C Hamano <>
2007-07-01Add git-stash scriptしらいしななこ
When my boss has something to show me and I have to update, for some reason I am always in the middle of doing something else, and git pull command refuses to work in such a case. I wrote this little script to save the changes I made, perform the update, and then come back to where I was, but on top of the updated commit. This is how you would use the script: $ git stash $ git pull $ git stash apply [jc: with a few fixlets from the list] Signed-off-by: Nanako Shiraishi <> Signed-off-by: Junio C Hamano <>