{"thread":{"id":"26602","subject":"[PATCH/RFC 0/3] add/commit -u/-a/-A","startedAt":"2011-02-25T14:45:51Z","lastAt":"2011-02-28T18:21:47Z","messageCount":30,"participants":["Michael J Gruber","Junio C Hamano","Nguyen Thai Ngoc Duy","Miles Bader","Matthieu Moy","Tor Arntsen"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"162238","messageId":"cover.1298644872.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":null,"subject":"[PATCH/RFC 0/3] add/commit -u/-a/-A","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-25T14:45:51Z","receivedAt":"2011-02-25T14:45:51Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"This is the first part of the grand add/commit unification.\nIt makes the use of -u,-a,-A and the long names uniform across\nadd and commit, breaking only \"commit --all\" (by renaming it).\n\nIt comes before Jeff's series from p^3u which refactors add/commit and\nimplements \"commit -A\".\n\nMichael J Gruber (3):\n  git-add: make -A description clearer vs. -u\n  git-commit: rename --all to --track\n  git-add: rename -u to -a\n\n Documentation/git-add.txt         |    8 ++++----\n Documentation/git-commit.txt      |    2 +-\n Documentation/git-rm.txt          |    2 +-\n Documentation/gitattributes.txt   |    4 ++--\n builtin/add.c                     |    7 ++++---\n builtin/commit.c                  |   12 ++++++------\n t/t1511-rev-parse-caret.sh        |    2 +-\n t/t2200-add-update.sh             |   26 +++++++++++++-------------\n t/t2201-add-update-typechange.sh  |    6 +++---\n t/t2203-add-intent.sh             |    2 +-\n t/t3030-merge-recursive.sh        |    2 +-\n t/t3415-rebase-autosquash.sh      |   16 ++++++++--------\n t/t4037-diff-r-t-dirs.sh          |    2 +-\n t/t6022-merge-rename.sh           |    2 +-\n t/t6036-recursive-corner-cases.sh |    2 +-\n 15 files changed, 48 insertions(+), 47 deletions(-)\n\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162239","messageId":"059f131e50675ac53d5d304a51530984e1b7b8a8.1298644872.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"cover.1298644872.git.git@drmicha.warpmail.net","subject":"[PATCH/RFC 1/3] git-add: make -A description clearer vs. -u","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-25T14:45:52Z","receivedAt":"2011-02-25T14:45:52Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Currently, it sounds as if \"notice removal of files\" distinguishes \"-A\"\nfrom \"-u\", and there is no mention of the worktree.\n\nBut both notice the removal, and only \"-A\" adds changes from untracked\nfiles. Say so.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n builtin/add.c |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin/add.c b/builtin/add.c\nindex f8e51f9..f7a17e4 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -322,7 +322,7 @@ static struct option builtin_add_options[] = {\n \tOPT__FORCE(&ignored_too, \"allow adding otherwise ignored files\"),\n \tOPT_BOOLEAN('u', \"update\", &take_worktree_changes, \"update tracked files\"),\n \tOPT_BOOLEAN('N', \"intent-to-add\", &intent_to_add, \"record only the fact that the path will be added later\"),\n-\tOPT_BOOLEAN('A', \"all\", &addremove, \"add all, noticing removal of tracked files\"),\n+\tOPT_BOOLEAN('A', \"all\", &addremove, \"add changes from all tracked and untracked files\"),\n \tOPT_BOOLEAN( 0 , \"refresh\", &refresh_only, \"don't add, only refresh the index\"),\n \tOPT_BOOLEAN( 0 , \"ignore-errors\", &ignore_add_errors, \"just skip files which cannot be added because of errors\"),\n \tOPT_BOOLEAN( 0 , \"ignore-missing\", &ignore_missing, \"check if - even missing - files are ignored in dry run\"),\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162240","messageId":"3873657a89ba3464b68d7b0388d151ab68e44c27.1298644872.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"cover.1298644872.git.git@drmicha.warpmail.net","subject":"[PATCH/RFC 2/3] git-commit: rename --all to --track","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-25T14:45:53Z","receivedAt":"2011-02-25T14:45:53Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Currently, the long option \"--all\" does different things for \"add\" (it\nis \"-A\") and \"commit\" (it is \"-a\").\n\nRename the \"commit\" long option to \"--tracked\" which conveys the fact\nthat it is about all tracked files only.\n\nAlso, rename the corresponding static int in code from \"all\" to\n\"alltracked\" to help future coders.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n Documentation/git-commit.txt |    2 +-\n builtin/commit.c             |   12 ++++++------\n 2 files changed, 7 insertions(+), 7 deletions(-)\n\ndiff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt\nindex 411fa68..0163d6d 100644\n--- a/Documentation/git-commit.txt\n+++ b/Documentation/git-commit.txt\n@@ -54,7 +54,7 @@ that, you can recover from it with 'git reset'.\n OPTIONS\n -------\n -a::\n---all::\n+--tracked::\n \tTell the command to automatically stage files that have\n \tbeen modified and deleted, but new files you have not\n \ttold git about are not affected.\ndiff --git a/builtin/commit.c b/builtin/commit.c\nindex d279a84..002cf03 100644\n--- a/builtin/commit.c\n+++ b/builtin/commit.c\n@@ -83,7 +83,7 @@ static const char *template_file;\n static const char *author_message, *author_message_buffer;\n static char *edit_message, *use_message;\n static char *fixup_message, *squash_message;\n-static int all, edit_flag, also, interactive, only, amend, signoff;\n+static int alltracked, edit_flag, also, interactive, only, amend, signoff;\n static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;\n static int no_post_rewrite, allow_empty_message;\n static char *untracked_files_arg, *force_date, *ignore_submodule_arg;\n@@ -149,7 +149,7 @@ static struct option builtin_commit_options[] = {\n \t/* end commit message options */\n \n \tOPT_GROUP(\"Commit contents options\"),\n-\tOPT_BOOLEAN('a', \"all\", &all, \"commit all changed files\"),\n+\tOPT_BOOLEAN('a', \"tracked\", &alltracked, \"commit all changed tracked files\"),\n \tOPT_BOOLEAN('i', \"include\", &also, \"add specified files to index for commit\"),\n \tOPT_BOOLEAN(0, \"interactive\", &interactive, \"interactively add files\"),\n \tOPT_BOOLEAN('o', \"only\", &only, \"commit only specified files\"),\n@@ -367,7 +367,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int\n \t * (A) if all goes well, commit the real index;\n \t * (B) on failure, rollback the real index.\n \t */\n-\tif (all || (also && pathspec && *pathspec)) {\n+\tif (alltracked || (also && pathspec && *pathspec)) {\n \t\tfd = hold_locked_index(&index_lock, 1);\n \t\tadd_files_to_cache(also ? prefix : NULL, pathspec, 0);\n \t\trefresh_cache_or_die(refresh_flags);\n@@ -1040,8 +1040,8 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \t\tauthor_message_buffer = read_commit_message(author_message);\n \t}\n \n-\tif (!!also + !!only + !!all + !!interactive > 1)\n-\t\tdie(\"Only one of --include/--only/--all/--interactive can be used.\");\n+\tif (!!also + !!only + !!alltracked + !!interactive > 1)\n+\t\tdie(\"Only one of --include/--only/--tracked/--interactive can be used.\");\n \tif (argc == 0 && (also || (only && !amend)))\n \t\tdie(\"No paths with --include/--only does not make sense.\");\n \tif (argc == 0 && only && amend)\n@@ -1061,7 +1061,7 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \n \thandle_untracked_files_arg(s);\n \n-\tif (all && argc > 0)\n+\tif (alltracked && argc > 0)\n \t\tdie(\"Paths with -a does not make sense.\");\n \telse if (interactive && argc > 0)\n \t\tdie(\"Paths with --interactive does not make sense.\");\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162241","messageId":"a917b13f6944704d5f923d5790e2a43f99ae63ed.1298644872.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"cover.1298644872.git.git@drmicha.warpmail.net","subject":"[PATCH/RFC 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-25T14:45:54Z","receivedAt":"2011-02-25T14:45:54Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"since it does what \"commit -a\" does (minus the committing). The long\nform \"--tracked\" is also more descriptive because \"add\" always updates the\nindex (independent of \"-u\"), but not always for all tracked files.\n\nKeep \"-u,--update\" as a hidden option because scripts may use it.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n Documentation/git-add.txt         |    8 ++++----\n Documentation/git-rm.txt          |    2 +-\n Documentation/gitattributes.txt   |    4 ++--\n builtin/add.c                     |    5 +++--\n t/t1511-rev-parse-caret.sh        |    2 +-\n t/t2200-add-update.sh             |   26 +++++++++++++-------------\n t/t2201-add-update-typechange.sh  |    6 +++---\n t/t2203-add-intent.sh             |    2 +-\n t/t3030-merge-recursive.sh        |    2 +-\n t/t3415-rebase-autosquash.sh      |   16 ++++++++--------\n t/t4037-diff-r-t-dirs.sh          |    2 +-\n t/t6022-merge-rename.sh           |    2 +-\n t/t6036-recursive-corner-cases.sh |    2 +-\n 13 files changed, 40 insertions(+), 39 deletions(-)\n\ndiff --git a/Documentation/git-add.txt b/Documentation/git-add.txt\nindex a03448f..8b54e77 100644\n--- a/Documentation/git-add.txt\n+++ b/Documentation/git-add.txt\n@@ -9,7 +9,7 @@ SYNOPSIS\n --------\n [verse]\n 'git add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]\n-\t  [--edit | -e] [--all | [--update | -u]] [--intent-to-add | -N]\n+\t  [--edit | -e] [[--all | -A ] | [--tracked | -a]] [--intent-to-add | -N]\n \t  [--refresh] [--ignore-errors] [--ignore-missing] [--]\n \t  [<filepattern>...]\n \n@@ -98,8 +98,8 @@ quicker and more flexible than using the interactive hunk selector.\n However, it is easy to confuse oneself and create a patch that does not\n apply to the index. See EDITING PATCHES below.\n \n--u::\n---update::\n+-a::\n+--tracked::\n \tOnly match <filepattern> against already tracked files in\n \tthe index rather than the working tree. That means that it\n \twill never stage new files, but that it will stage modified\n@@ -113,7 +113,7 @@ subdirectories.\n \n -A::\n --all::\n-\tLike `-u`, but match <filepattern> against files in the\n+\tLike `-a`, but match <filepattern> against files in the\n \tworking tree in addition to the index. That means that it\n \twill find new files as well as staging modified content and\n \tremoving files that are no longer in the working tree.\ndiff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt\nindex 0adbe8b..1bb1b82 100644\n--- a/Documentation/git-rm.txt\n+++ b/Documentation/git-rm.txt\n@@ -96,7 +96,7 @@ of tracked files in the working tree and record all removals of\n files that have been removed from the working tree with `rm`\n (as opposed to `git rm`), use `git commit -a`, as it will\n automatically notice and record all removals.  You can also have a\n-similar effect without committing by using `git add -u`.\n+similar effect without committing by using `git add -a`.\n \n Using ``git add -A''\n ~~~~~~~~~~~~~~~~~~~~\ndiff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt\nindex 7e7e121..de89763 100644\n--- a/Documentation/gitattributes.txt\n+++ b/Documentation/gitattributes.txt\n@@ -229,13 +229,13 @@ $ echo \"* text=auto\" >>.gitattributes\n $ rm .git/index     # Remove the index to force git to\n $ git reset         # re-scan the working directory\n $ git status        # Show files that will be normalized\n-$ git add -u\n+$ git add -a\n $ git add .gitattributes\n $ git commit -m \"Introduce end-of-line normalization\"\n -------------------------------------------------\n \n If any files that should not be normalized show up in 'git status',\n-unset their `text` attribute before running 'git add -u'.\n+unset their `text` attribute before running 'git add -a'.\n \n ------------------------\n manual.pdf\t-text\ndiff --git a/builtin/add.c b/builtin/add.c\nindex f7a17e4..71ee4bb 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -42,7 +42,7 @@ static void update_callback(struct diff_queue_struct *q,\n \t\tcase DIFF_STATUS_UNMERGED:\n \t\t\t/*\n \t\t\t * ADD_CACHE_IGNORE_REMOVAL is unset if \"git\n-\t\t\t * add -u\" is calling us, In such a case, a\n+\t\t\t * add -a\" is calling us, In such a case, a\n \t\t\t * missing work tree file needs to be removed\n \t\t\t * if there is an unmerged entry at stage #2,\n \t\t\t * but such a diff record is followed by\n@@ -320,8 +320,9 @@ static struct option builtin_add_options[] = {\n \tOPT_BOOLEAN('p', \"patch\", &patch_interactive, \"select hunks interactively\"),\n \tOPT_BOOLEAN('e', \"edit\", &edit_interactive, \"edit current diff and apply\"),\n \tOPT__FORCE(&ignored_too, \"allow adding otherwise ignored files\"),\n-\tOPT_BOOLEAN('u', \"update\", &take_worktree_changes, \"update tracked files\"),\n+\t{ OPTION_BOOLEAN, 'u', \"update\", &take_worktree_changes, NULL, \"update tracked files\", PARSE_OPT_HIDDEN | PARSE_OPT_NOARG },\n \tOPT_BOOLEAN('N', \"intent-to-add\", &intent_to_add, \"record only the fact that the path will be added later\"),\n+\tOPT_BOOLEAN('a', \"tracked\", &take_worktree_changes, \"add changes from all tracked files\"),\n \tOPT_BOOLEAN('A', \"all\", &addremove, \"add changes from all tracked and untracked files\"),\n \tOPT_BOOLEAN( 0 , \"refresh\", &refresh_only, \"don't add, only refresh the index\"),\n \tOPT_BOOLEAN( 0 , \"ignore-errors\", &ignore_add_errors, \"just skip files which cannot be added because of errors\"),\ndiff --git a/t/t1511-rev-parse-caret.sh b/t/t1511-rev-parse-caret.sh\nindex e043cb7..414f4f8 100755\n--- a/t/t1511-rev-parse-caret.sh\n+++ b/t/t1511-rev-parse-caret.sh\n@@ -17,7 +17,7 @@ test_expect_success 'setup' '\n \tgit branch ref &&\n \tgit checkout master &&\n \techo modified >>a-blob &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit commit -m Modified\n '\n \ndiff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh\nindex 0692427..aabe8f5 100755\n--- a/t/t2200-add-update.sh\n+++ b/t/t2200-add-update.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git add -u\n+test_description='git add -a\n \n This test creates a working tree state with three files:\n \n@@ -8,10 +8,10 @@ This test creates a working tree state with three files:\n   dir/sub (previously committed, modified)\n   dir/other (untracked)\n \n-and issues a git add -u with path limiting on \"dir\" to add\n+and issues a git add -a with path limiting on \"dir\" to add\n only the updates to dir/sub.\n \n-Also tested are \"git add -u\" without limiting, and \"git add -u\"\n+Also tested are \"git add -a\" without limiting, and \"git add -a\"\n without contents changes, and other conditions'\n \n . ./test-lib.sh\n@@ -36,7 +36,7 @@ test_expect_success setup '\n '\n \n test_expect_success update '\n-\tgit add -u dir1 dir2\n+\tgit add -a dir1 dir2\n '\n \n test_expect_success 'update noticed a removal' '\n@@ -70,7 +70,7 @@ test_expect_success 'update from a subdirectory' '\n \t(\n \t\tcd dir1 &&\n \t\techo more >sub2 &&\n-\t\tgit add -u sub2\n+\t\tgit add -a sub2\n \t)\n '\n \n@@ -84,21 +84,21 @@ test_expect_success SYMLINKS 'replace a file with a symlink' '\n \n \trm foo &&\n \tln -s top foo &&\n-\tgit add -u -- foo\n+\tgit add -a -- foo\n \n '\n \n test_expect_success 'add everything changed' '\n \n-\tgit add -u &&\n+\tgit add -a &&\n \ttest -z \"$(git diff-files)\"\n \n '\n \n-test_expect_success 'touch and then add -u' '\n+test_expect_success 'touch and then add -a' '\n \n \ttouch check &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest -z \"$(git diff-files)\"\n \n '\n@@ -128,7 +128,7 @@ test_expect_success 'add -n -u should not add but just report' '\n \n '\n \n-test_expect_success 'add -u resolves unmerged paths' '\n+test_expect_success 'add -a resolves unmerged paths' '\n \tgit reset --hard &&\n \tone=$(echo 1 | git hash-object -w --stdin) &&\n \ttwo=$(echo 2 | git hash-object -w --stdin) &&\n@@ -149,7 +149,7 @@ test_expect_success 'add -u resolves unmerged paths' '\n \techo 3 >path1 &&\n \techo 2 >path3 &&\n \techo 2 >path5 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s path1 path2 path3 path4 path5 path6 >actual &&\n \t{\n \t\techo \"100644 $three 0\tpath1\"\n@@ -176,8 +176,8 @@ test_expect_success 'add -u resolves unmerged paths' '\n \n '\n \n-test_expect_success '\"add -u non-existent\" should fail' '\n-\ttest_must_fail git add -u non-existent &&\n+test_expect_success '\"add -a non-existent\" should fail' '\n+\ttest_must_fail git add -a non-existent &&\n \t! (git ls-files | grep \"non-existent\")\n '\n \ndiff --git a/t/t2201-add-update-typechange.sh b/t/t2201-add-update-typechange.sh\nindex 2e8f702..8981ccb 100755\n--- a/t/t2201-add-update-typechange.sh\n+++ b/t/t2201-add-update-typechange.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='more git add -u'\n+test_description='more git add -a'\n \n . ./test-lib.sh\n \n@@ -124,10 +124,10 @@ test_expect_success diff-index '\n \ttest_cmp expect-index actual\n '\n \n-test_expect_success 'add -u' '\n+test_expect_success 'add -a' '\n \trm -f \".git/saved-index\" &&\n \tcp -p \".git/index\" \".git/saved-index\" &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s >actual &&\n \ttest_cmp expect-final actual\n '\ndiff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh\nindex 58a3299..880bcb6 100755\n--- a/t/t2203-add-intent.sh\n+++ b/t/t2203-add-intent.sh\n@@ -19,7 +19,7 @@ test_expect_success 'check result of \"add -N\"' '\n '\n \n test_expect_success 'intent to add is just an ordinary empty blob' '\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s file >actual &&\n \tgit ls-files -s elif | sed -e \"s/elif/file/\" >expect &&\n \ttest_cmp expect actual\ndiff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh\nindex 34794f8..9255360 100755\n--- a/t/t3030-merge-recursive.sh\n+++ b/t/t3030-merge-recursive.sh\n@@ -320,7 +320,7 @@ test_expect_success 'fail if the index has unresolved entries' '\n \ttest_must_fail git merge \"$c5\" &&\n \ttest_must_fail git merge \"$c5\" 2> out &&\n \tgrep \"not possible because you have unmerged files\" out &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_must_fail git merge \"$c5\" 2> out &&\n \tgrep \"You have not concluded your merge\" out &&\n \trm -f .git/MERGE_HEAD &&\ndiff --git a/t/t3415-rebase-autosquash.sh b/t/t3415-rebase-autosquash.sh\nindex b38be8e..c41c9e3 100755\n--- a/t/t3415-rebase-autosquash.sh\n+++ b/t/t3415-rebase-autosquash.sh\n@@ -25,7 +25,7 @@ test_expect_success setup '\n test_auto_fixup () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"fixup! first\" &&\n \n@@ -54,7 +54,7 @@ test_expect_success 'auto fixup (config)' '\n test_auto_squash () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! first\" &&\n \n@@ -83,7 +83,7 @@ test_expect_success 'auto squash (config)' '\n test_expect_success 'misspelled auto squash' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! forst\" &&\n \tgit tag final-missquash &&\n@@ -102,7 +102,7 @@ test_expect_success 'auto squash that matches 2 commits' '\n \ttest_tick &&\n \tgit commit -m \"first new commit\" &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! first\" &&\n \tgit tag final-multisquash &&\n@@ -119,7 +119,7 @@ test_expect_success 'auto squash that matches 2 commits' '\n test_expect_success 'auto squash that matches a commit after the squash' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! third\" &&\n \techo 4 >file4 &&\n@@ -140,7 +140,7 @@ test_expect_success 'auto squash that matches a commit after the squash' '\n test_expect_success 'auto squash that matches a sha1' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! $(git rev-parse --short HEAD^)\" &&\n \tgit tag final-shasquash &&\n@@ -156,7 +156,7 @@ test_expect_success 'auto squash that matches a sha1' '\n test_expect_success 'auto squash that matches longer sha1' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! $(git rev-parse --short=11 HEAD^)\" &&\n \tgit tag final-longshasquash &&\n@@ -172,7 +172,7 @@ test_expect_success 'auto squash that matches longer sha1' '\n test_auto_commit_flags () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit --$1 first-commit &&\n \tgit tag final-commit-$1 &&\ndiff --git a/t/t4037-diff-r-t-dirs.sh b/t/t4037-diff-r-t-dirs.sh\nindex f5ce3b2..77534aa 100755\n--- a/t/t4037-diff-r-t-dirs.sh\n+++ b/t/t4037-diff-r-t-dirs.sh\n@@ -22,7 +22,7 @@ test_expect_success setup '\n \tdo\n \t\techo hello >$p || exit\n \tdone &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit add . &&\n \ttest_tick &&\n \tgit commit -m second\ndiff --git a/t/t6022-merge-rename.sh b/t/t6022-merge-rename.sh\nindex 1ed259d..f021939 100755\n--- a/t/t6022-merge-rename.sh\n+++ b/t/t6022-merge-rename.sh\n@@ -262,7 +262,7 @@ test_expect_success 'setup for rename + d/f conflicts' '\n \n \techo 11 >>sub/file &&\n \techo more >>dir/file-in-the-way &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit commit -m \"Commit to merge, with dir in the way\" &&\n \n \tgit checkout -b dir-not-in-way &&\ndiff --git a/t/t6036-recursive-corner-cases.sh b/t/t6036-recursive-corner-cases.sh\nindex 871577d..8359ccc 100755\n--- a/t/t6036-recursive-corner-cases.sh\n+++ b/t/t6036-recursive-corner-cases.sh\n@@ -197,7 +197,7 @@ test_expect_success 'setup differently handled merges of rename/add conflict' '\n \ttest_must_fail git merge B &&\n \trm new_a~HEAD new_a &&\n \tprintf \"Incorrectly merged content\" >>new_a &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick && git commit -m E &&\n \tgit tag E\n '\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162251","messageId":"7vzkpk9bqq.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"059f131e50675ac53d5d304a51530984e1b7b8a8.1298644872.git.git@drmicha.warpmail.net","subject":"Re: [PATCH/RFC 1/3] git-add: make -A description clearer vs. -u","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-25T19:04:45Z","receivedAt":"2011-02-25T19:04:45Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> Currently, it sounds as if \"notice removal of files\" distinguishes \"-A\"\n> from \"-u\", and there is no mention of the worktree.\n>\n> But both notice the removal, and only \"-A\" adds changes from untracked\n> files. Say so.\n\nI think talking about \"add new files\" is a good change.\n\nThe \"noticing of removal\" was the reason that \"-u\" says \"update\" not\n\"add\".  Your new wording for \"-A\" does not even hint that removal is\nnoticed; wouldn't it cause confusion to the end user?\n"},{"id":"162252","messageId":"7vvd089bjt.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"3873657a89ba3464b68d7b0388d151ab68e44c27.1298644872.git.git@drmicha.warpmail.net","subject":"Re: [PATCH/RFC 2/3] git-commit: rename --all to --track","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-25T19:08:54Z","receivedAt":"2011-02-25T19:08:54Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> Rename the \"commit\" long option to \"--tracked\" which conveys the fact\n> that it is about all tracked files only.\n\nPlease don't.  The fact that \"-a\" derived from \"all\" will never change,\nand your patch will only confuse future newbies wondering why \"tracked\"\nabbreviates to \"a\".\n\nRenaming it to \"--all-tracked\" might be worth considering, but renaming it\nto just \"--tracked\" is not, IMHO.\n"},{"id":"162255","messageId":"7vipw7aoo4.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"a917b13f6944704d5f923d5790e2a43f99ae63ed.1298644872.git.git@drmicha.warpmail.net","subject":"Re: [PATCH/RFC 3/3] git-add: rename -u to -a","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-25T19:40:11Z","receivedAt":"2011-02-25T19:40:11Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> since it does what \"commit -a\" does (minus the committing). The long\n\nI somehow find this quite the other way around.\n\nThe original \"add -u\" makes perfect sense as it is a request to say: \"to\nthe index, add _updated_ contents\".  Perhaps \"commit -a\" is the one that\nshould gain a synonym \"commit -u\" to ask \"please commit updated contents\"\n(implying \"not new ones\").\n"},{"id":"162301","messageId":"4D68D630.9000608@drmicha.warpmail.net","threadId":"26602","inReplyTo":"7vr5aw9b7m.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH/RFC 0/3] add/commit -u/-a/-A","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-26T10:30:08Z","receivedAt":"2011-02-26T10:30:08Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano venit, vidit, dixit 25.02.2011 20:16:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n> \n>> It comes before Jeff's series from p^3u which refactors add/commit and\n>> implements \"commit -A\".\n> \n> What's that topic, and what's p^3u?\n\np^3u = ppp = proposed potential pu (or something)\n\nSorry for the TeX notation.\n\nIn \"Re: Why doesn't git commit -a track new files\" (which I failed to\nreference from this series), Jeff and I have been discussing how to make\nthe add-related options of add and commit homogeneous and less\nsurprising (see the OP). Nobody objected there, so I assumed everyone to\nagree... The two problems addressed here are:\n\n- \"add -u\" and \"commit -a\" are \"the same\" (as far as additions go, and\nwhen used without pathspec) but are named differently\n\n- \"add --all\" and \"commit --all\" are named the same but do different\nthings (-A resp. -a).\n\nI care about consistency, not so much about actual names.\n\nI don't think we use upper case long options, or I would have suggested\n\"--All\" as long form of \"-A\".\n\nYou see, \"commit --all\" seems to promise more than it does - one really\nhas to know what \"all\" is qualified by.\n\nAnd, similarly, \"add\" always updates the index, it always is about the\nupdates in the files which are selected, so \"-u/--update\" doesn't make\nmuch sense to distinguish it from other uses of \"add\". That's the\nreasoning that lead us to having \"-a = -u\" for add, and that lead me to\nrenaming \"-a = --all\" to \"-a = --tracked\". I wouldn't mind\n\"--all-tracked\" here. and I would have left it and renamed \"-A = --all\"\nto \"-A = --foo\" if I had had a good \"--foo\".\n\nMichael\n"},{"id":"162369","messageId":"cover.1298821535.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"4D68D630.9000608@drmicha.warpmail.net","subject":"[PATCHv2 0/3] add/commit -u/-a/-A","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-27T15:50:09Z","receivedAt":"2011-02-27T15:50:09Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"v2 takes \"all-tracked\" as the long form of \"-a\" for add and commit.\n\nI would think that \"changes from all tracked files\" would include the special\nchange \"deletion\", but I'm open to making the description more verbous.\nBut as a general rule, \"git cmd -h\" output should serve as a reminder,\ndistinguishing the options from each other, not as complete description.\n\nMichael J Gruber (3):\n  git-add: make -A description clearer vs. -u\n  git-commit: rename --all to --all-tracked\n  git-add: rename -u to -a\n\n Documentation/git-add.txt         |    8 ++++----\n Documentation/git-commit.txt      |    2 +-\n Documentation/git-rm.txt          |    2 +-\n Documentation/gitattributes.txt   |    4 ++--\n builtin/add.c                     |    7 ++++---\n builtin/commit.c                  |   12 ++++++------\n t/t1511-rev-parse-caret.sh        |    2 +-\n t/t2200-add-update.sh             |   26 +++++++++++++-------------\n t/t2201-add-update-typechange.sh  |    6 +++---\n t/t2203-add-intent.sh             |    2 +-\n t/t3030-merge-recursive.sh        |    2 +-\n t/t3415-rebase-autosquash.sh      |   16 ++++++++--------\n t/t4037-diff-r-t-dirs.sh          |    2 +-\n t/t6022-merge-rename.sh           |    2 +-\n t/t6036-recursive-corner-cases.sh |    2 +-\n 15 files changed, 48 insertions(+), 47 deletions(-)\n\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162368","messageId":"059f131e50675ac53d5d304a51530984e1b7b8a8.1298821535.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"4D68D630.9000608@drmicha.warpmail.net","subject":"[PATCHv2 1/3] git-add: make -A description clearer vs. -u","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-27T15:50:10Z","receivedAt":"2011-02-27T15:50:10Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Currently, it sounds as if \"notice removal of files\" distinguishes \"-A\"\nfrom \"-u\", and there is no mention of the worktree.\n\nBut both notice the removal, and only \"-A\" adds changes from untracked\nfiles. Say so.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n builtin/add.c |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin/add.c b/builtin/add.c\nindex f8e51f9..f7a17e4 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -322,7 +322,7 @@ static struct option builtin_add_options[] = {\n \tOPT__FORCE(&ignored_too, \"allow adding otherwise ignored files\"),\n \tOPT_BOOLEAN('u', \"update\", &take_worktree_changes, \"update tracked files\"),\n \tOPT_BOOLEAN('N', \"intent-to-add\", &intent_to_add, \"record only the fact that the path will be added later\"),\n-\tOPT_BOOLEAN('A', \"all\", &addremove, \"add all, noticing removal of tracked files\"),\n+\tOPT_BOOLEAN('A', \"all\", &addremove, \"add changes from all tracked and untracked files\"),\n \tOPT_BOOLEAN( 0 , \"refresh\", &refresh_only, \"don't add, only refresh the index\"),\n \tOPT_BOOLEAN( 0 , \"ignore-errors\", &ignore_add_errors, \"just skip files which cannot be added because of errors\"),\n \tOPT_BOOLEAN( 0 , \"ignore-missing\", &ignore_missing, \"check if - even missing - files are ignored in dry run\"),\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162371","messageId":"5c610a7231ec0344bf02f4631d3a8a51b2cdf824.1298821535.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"4D68D630.9000608@drmicha.warpmail.net","subject":"[PATCHv2 2/3] git-commit: rename --all to --all-tracked","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-27T15:50:11Z","receivedAt":"2011-02-27T15:50:11Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Currently, the long option \"--all\" does different things for \"add\" (it\nis \"-A\") and \"commit\" (it is \"-a\").\n\nRename the \"commit\" long option to \"--all-tracked\" which conveys the fact\nthat it is about all tracked files only.\n\nAlso, rename the corresponding static int in code from \"all\" to\n\"alltracked\" to help future coders.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n Documentation/git-commit.txt |    2 +-\n builtin/commit.c             |   12 ++++++------\n 2 files changed, 7 insertions(+), 7 deletions(-)\n\ndiff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt\nindex 411fa68..70ddb81 100644\n--- a/Documentation/git-commit.txt\n+++ b/Documentation/git-commit.txt\n@@ -54,7 +54,7 @@ that, you can recover from it with 'git reset'.\n OPTIONS\n -------\n -a::\n---all::\n+--all-tracked::\n \tTell the command to automatically stage files that have\n \tbeen modified and deleted, but new files you have not\n \ttold git about are not affected.\ndiff --git a/builtin/commit.c b/builtin/commit.c\nindex d279a84..be0f075 100644\n--- a/builtin/commit.c\n+++ b/builtin/commit.c\n@@ -83,7 +83,7 @@ static const char *template_file;\n static const char *author_message, *author_message_buffer;\n static char *edit_message, *use_message;\n static char *fixup_message, *squash_message;\n-static int all, edit_flag, also, interactive, only, amend, signoff;\n+static int alltracked, edit_flag, also, interactive, only, amend, signoff;\n static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;\n static int no_post_rewrite, allow_empty_message;\n static char *untracked_files_arg, *force_date, *ignore_submodule_arg;\n@@ -149,7 +149,7 @@ static struct option builtin_commit_options[] = {\n \t/* end commit message options */\n \n \tOPT_GROUP(\"Commit contents options\"),\n-\tOPT_BOOLEAN('a', \"all\", &all, \"commit all changed files\"),\n+\tOPT_BOOLEAN('a', \"all-tracked\", &alltracked, \"commit all changed tracked files\"),\n \tOPT_BOOLEAN('i', \"include\", &also, \"add specified files to index for commit\"),\n \tOPT_BOOLEAN(0, \"interactive\", &interactive, \"interactively add files\"),\n \tOPT_BOOLEAN('o', \"only\", &only, \"commit only specified files\"),\n@@ -367,7 +367,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int\n \t * (A) if all goes well, commit the real index;\n \t * (B) on failure, rollback the real index.\n \t */\n-\tif (all || (also && pathspec && *pathspec)) {\n+\tif (alltracked || (also && pathspec && *pathspec)) {\n \t\tfd = hold_locked_index(&index_lock, 1);\n \t\tadd_files_to_cache(also ? prefix : NULL, pathspec, 0);\n \t\trefresh_cache_or_die(refresh_flags);\n@@ -1040,8 +1040,8 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \t\tauthor_message_buffer = read_commit_message(author_message);\n \t}\n \n-\tif (!!also + !!only + !!all + !!interactive > 1)\n-\t\tdie(\"Only one of --include/--only/--all/--interactive can be used.\");\n+\tif (!!also + !!only + !!alltracked + !!interactive > 1)\n+\t\tdie(\"Only one of --include/--only/--all-tracked/--interactive can be used.\");\n \tif (argc == 0 && (also || (only && !amend)))\n \t\tdie(\"No paths with --include/--only does not make sense.\");\n \tif (argc == 0 && only && amend)\n@@ -1061,7 +1061,7 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \n \thandle_untracked_files_arg(s);\n \n-\tif (all && argc > 0)\n+\tif (alltracked && argc > 0)\n \t\tdie(\"Paths with -a does not make sense.\");\n \telse if (interactive && argc > 0)\n \t\tdie(\"Paths with --interactive does not make sense.\");\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162370","messageId":"711e34a5f4761ccd1056a992df21e3389db7add7.1298821535.git.git@drmicha.warpmail.net","threadId":"26602","inReplyTo":"4D68D630.9000608@drmicha.warpmail.net","subject":"[PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-27T15:50:12Z","receivedAt":"2011-02-27T15:50:12Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"since it does what \"commit -a\" does (minus the committing). The long\nform \"--all-tracked\" is also more descriptive because \"add\" always updates the\nindex (independent of \"-u\"), but not always for all tracked files.\n\nKeep \"-u,--update\" as a hidden option because scripts may use it.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n Documentation/git-add.txt         |    8 ++++----\n Documentation/git-rm.txt          |    2 +-\n Documentation/gitattributes.txt   |    4 ++--\n builtin/add.c                     |    5 +++--\n t/t1511-rev-parse-caret.sh        |    2 +-\n t/t2200-add-update.sh             |   26 +++++++++++++-------------\n t/t2201-add-update-typechange.sh  |    6 +++---\n t/t2203-add-intent.sh             |    2 +-\n t/t3030-merge-recursive.sh        |    2 +-\n t/t3415-rebase-autosquash.sh      |   16 ++++++++--------\n t/t4037-diff-r-t-dirs.sh          |    2 +-\n t/t6022-merge-rename.sh           |    2 +-\n t/t6036-recursive-corner-cases.sh |    2 +-\n 13 files changed, 40 insertions(+), 39 deletions(-)\n\ndiff --git a/Documentation/git-add.txt b/Documentation/git-add.txt\nindex a03448f..e75ab39 100644\n--- a/Documentation/git-add.txt\n+++ b/Documentation/git-add.txt\n@@ -9,7 +9,7 @@ SYNOPSIS\n --------\n [verse]\n 'git add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]\n-\t  [--edit | -e] [--all | [--update | -u]] [--intent-to-add | -N]\n+\t  [--edit | -e] [[--all | -A ] | [--all-tracked | -a]] [--intent-to-add | -N]\n \t  [--refresh] [--ignore-errors] [--ignore-missing] [--]\n \t  [<filepattern>...]\n \n@@ -98,8 +98,8 @@ quicker and more flexible than using the interactive hunk selector.\n However, it is easy to confuse oneself and create a patch that does not\n apply to the index. See EDITING PATCHES below.\n \n--u::\n---update::\n+-a::\n+--all-tracked::\n \tOnly match <filepattern> against already tracked files in\n \tthe index rather than the working tree. That means that it\n \twill never stage new files, but that it will stage modified\n@@ -113,7 +113,7 @@ subdirectories.\n \n -A::\n --all::\n-\tLike `-u`, but match <filepattern> against files in the\n+\tLike `-a`, but match <filepattern> against files in the\n \tworking tree in addition to the index. That means that it\n \twill find new files as well as staging modified content and\n \tremoving files that are no longer in the working tree.\ndiff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt\nindex 0adbe8b..1bb1b82 100644\n--- a/Documentation/git-rm.txt\n+++ b/Documentation/git-rm.txt\n@@ -96,7 +96,7 @@ of tracked files in the working tree and record all removals of\n files that have been removed from the working tree with `rm`\n (as opposed to `git rm`), use `git commit -a`, as it will\n automatically notice and record all removals.  You can also have a\n-similar effect without committing by using `git add -u`.\n+similar effect without committing by using `git add -a`.\n \n Using ``git add -A''\n ~~~~~~~~~~~~~~~~~~~~\ndiff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt\nindex 7e7e121..de89763 100644\n--- a/Documentation/gitattributes.txt\n+++ b/Documentation/gitattributes.txt\n@@ -229,13 +229,13 @@ $ echo \"* text=auto\" >>.gitattributes\n $ rm .git/index     # Remove the index to force git to\n $ git reset         # re-scan the working directory\n $ git status        # Show files that will be normalized\n-$ git add -u\n+$ git add -a\n $ git add .gitattributes\n $ git commit -m \"Introduce end-of-line normalization\"\n -------------------------------------------------\n \n If any files that should not be normalized show up in 'git status',\n-unset their `text` attribute before running 'git add -u'.\n+unset their `text` attribute before running 'git add -a'.\n \n ------------------------\n manual.pdf\t-text\ndiff --git a/builtin/add.c b/builtin/add.c\nindex f7a17e4..504061d 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -42,7 +42,7 @@ static void update_callback(struct diff_queue_struct *q,\n \t\tcase DIFF_STATUS_UNMERGED:\n \t\t\t/*\n \t\t\t * ADD_CACHE_IGNORE_REMOVAL is unset if \"git\n-\t\t\t * add -u\" is calling us, In such a case, a\n+\t\t\t * add -a\" is calling us, In such a case, a\n \t\t\t * missing work tree file needs to be removed\n \t\t\t * if there is an unmerged entry at stage #2,\n \t\t\t * but such a diff record is followed by\n@@ -320,8 +320,9 @@ static struct option builtin_add_options[] = {\n \tOPT_BOOLEAN('p', \"patch\", &patch_interactive, \"select hunks interactively\"),\n \tOPT_BOOLEAN('e', \"edit\", &edit_interactive, \"edit current diff and apply\"),\n \tOPT__FORCE(&ignored_too, \"allow adding otherwise ignored files\"),\n-\tOPT_BOOLEAN('u', \"update\", &take_worktree_changes, \"update tracked files\"),\n+\t{ OPTION_BOOLEAN, 'u', \"update\", &take_worktree_changes, NULL, \"update tracked files\", PARSE_OPT_HIDDEN | PARSE_OPT_NOARG },\n \tOPT_BOOLEAN('N', \"intent-to-add\", &intent_to_add, \"record only the fact that the path will be added later\"),\n+\tOPT_BOOLEAN('a', \"all-tracked\", &take_worktree_changes, \"add changes from all tracked files\"),\n \tOPT_BOOLEAN('A', \"all\", &addremove, \"add changes from all tracked and untracked files\"),\n \tOPT_BOOLEAN( 0 , \"refresh\", &refresh_only, \"don't add, only refresh the index\"),\n \tOPT_BOOLEAN( 0 , \"ignore-errors\", &ignore_add_errors, \"just skip files which cannot be added because of errors\"),\ndiff --git a/t/t1511-rev-parse-caret.sh b/t/t1511-rev-parse-caret.sh\nindex e043cb7..414f4f8 100755\n--- a/t/t1511-rev-parse-caret.sh\n+++ b/t/t1511-rev-parse-caret.sh\n@@ -17,7 +17,7 @@ test_expect_success 'setup' '\n \tgit branch ref &&\n \tgit checkout master &&\n \techo modified >>a-blob &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit commit -m Modified\n '\n \ndiff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh\nindex 0692427..aabe8f5 100755\n--- a/t/t2200-add-update.sh\n+++ b/t/t2200-add-update.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git add -u\n+test_description='git add -a\n \n This test creates a working tree state with three files:\n \n@@ -8,10 +8,10 @@ This test creates a working tree state with three files:\n   dir/sub (previously committed, modified)\n   dir/other (untracked)\n \n-and issues a git add -u with path limiting on \"dir\" to add\n+and issues a git add -a with path limiting on \"dir\" to add\n only the updates to dir/sub.\n \n-Also tested are \"git add -u\" without limiting, and \"git add -u\"\n+Also tested are \"git add -a\" without limiting, and \"git add -a\"\n without contents changes, and other conditions'\n \n . ./test-lib.sh\n@@ -36,7 +36,7 @@ test_expect_success setup '\n '\n \n test_expect_success update '\n-\tgit add -u dir1 dir2\n+\tgit add -a dir1 dir2\n '\n \n test_expect_success 'update noticed a removal' '\n@@ -70,7 +70,7 @@ test_expect_success 'update from a subdirectory' '\n \t(\n \t\tcd dir1 &&\n \t\techo more >sub2 &&\n-\t\tgit add -u sub2\n+\t\tgit add -a sub2\n \t)\n '\n \n@@ -84,21 +84,21 @@ test_expect_success SYMLINKS 'replace a file with a symlink' '\n \n \trm foo &&\n \tln -s top foo &&\n-\tgit add -u -- foo\n+\tgit add -a -- foo\n \n '\n \n test_expect_success 'add everything changed' '\n \n-\tgit add -u &&\n+\tgit add -a &&\n \ttest -z \"$(git diff-files)\"\n \n '\n \n-test_expect_success 'touch and then add -u' '\n+test_expect_success 'touch and then add -a' '\n \n \ttouch check &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest -z \"$(git diff-files)\"\n \n '\n@@ -128,7 +128,7 @@ test_expect_success 'add -n -u should not add but just report' '\n \n '\n \n-test_expect_success 'add -u resolves unmerged paths' '\n+test_expect_success 'add -a resolves unmerged paths' '\n \tgit reset --hard &&\n \tone=$(echo 1 | git hash-object -w --stdin) &&\n \ttwo=$(echo 2 | git hash-object -w --stdin) &&\n@@ -149,7 +149,7 @@ test_expect_success 'add -u resolves unmerged paths' '\n \techo 3 >path1 &&\n \techo 2 >path3 &&\n \techo 2 >path5 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s path1 path2 path3 path4 path5 path6 >actual &&\n \t{\n \t\techo \"100644 $three 0\tpath1\"\n@@ -176,8 +176,8 @@ test_expect_success 'add -u resolves unmerged paths' '\n \n '\n \n-test_expect_success '\"add -u non-existent\" should fail' '\n-\ttest_must_fail git add -u non-existent &&\n+test_expect_success '\"add -a non-existent\" should fail' '\n+\ttest_must_fail git add -a non-existent &&\n \t! (git ls-files | grep \"non-existent\")\n '\n \ndiff --git a/t/t2201-add-update-typechange.sh b/t/t2201-add-update-typechange.sh\nindex 2e8f702..8981ccb 100755\n--- a/t/t2201-add-update-typechange.sh\n+++ b/t/t2201-add-update-typechange.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='more git add -u'\n+test_description='more git add -a'\n \n . ./test-lib.sh\n \n@@ -124,10 +124,10 @@ test_expect_success diff-index '\n \ttest_cmp expect-index actual\n '\n \n-test_expect_success 'add -u' '\n+test_expect_success 'add -a' '\n \trm -f \".git/saved-index\" &&\n \tcp -p \".git/index\" \".git/saved-index\" &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s >actual &&\n \ttest_cmp expect-final actual\n '\ndiff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh\nindex 58a3299..880bcb6 100755\n--- a/t/t2203-add-intent.sh\n+++ b/t/t2203-add-intent.sh\n@@ -19,7 +19,7 @@ test_expect_success 'check result of \"add -N\"' '\n '\n \n test_expect_success 'intent to add is just an ordinary empty blob' '\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit ls-files -s file >actual &&\n \tgit ls-files -s elif | sed -e \"s/elif/file/\" >expect &&\n \ttest_cmp expect actual\ndiff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh\nindex 34794f8..9255360 100755\n--- a/t/t3030-merge-recursive.sh\n+++ b/t/t3030-merge-recursive.sh\n@@ -320,7 +320,7 @@ test_expect_success 'fail if the index has unresolved entries' '\n \ttest_must_fail git merge \"$c5\" &&\n \ttest_must_fail git merge \"$c5\" 2> out &&\n \tgrep \"not possible because you have unmerged files\" out &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_must_fail git merge \"$c5\" 2> out &&\n \tgrep \"You have not concluded your merge\" out &&\n \trm -f .git/MERGE_HEAD &&\ndiff --git a/t/t3415-rebase-autosquash.sh b/t/t3415-rebase-autosquash.sh\nindex b38be8e..c41c9e3 100755\n--- a/t/t3415-rebase-autosquash.sh\n+++ b/t/t3415-rebase-autosquash.sh\n@@ -25,7 +25,7 @@ test_expect_success setup '\n test_auto_fixup () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"fixup! first\" &&\n \n@@ -54,7 +54,7 @@ test_expect_success 'auto fixup (config)' '\n test_auto_squash () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! first\" &&\n \n@@ -83,7 +83,7 @@ test_expect_success 'auto squash (config)' '\n test_expect_success 'misspelled auto squash' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! forst\" &&\n \tgit tag final-missquash &&\n@@ -102,7 +102,7 @@ test_expect_success 'auto squash that matches 2 commits' '\n \ttest_tick &&\n \tgit commit -m \"first new commit\" &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! first\" &&\n \tgit tag final-multisquash &&\n@@ -119,7 +119,7 @@ test_expect_success 'auto squash that matches 2 commits' '\n test_expect_success 'auto squash that matches a commit after the squash' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! third\" &&\n \techo 4 >file4 &&\n@@ -140,7 +140,7 @@ test_expect_success 'auto squash that matches a commit after the squash' '\n test_expect_success 'auto squash that matches a sha1' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! $(git rev-parse --short HEAD^)\" &&\n \tgit tag final-shasquash &&\n@@ -156,7 +156,7 @@ test_expect_success 'auto squash that matches a sha1' '\n test_expect_success 'auto squash that matches longer sha1' '\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit -m \"squash! $(git rev-parse --short=11 HEAD^)\" &&\n \tgit tag final-longshasquash &&\n@@ -172,7 +172,7 @@ test_expect_success 'auto squash that matches longer sha1' '\n test_auto_commit_flags () {\n \tgit reset --hard base &&\n \techo 1 >file1 &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick &&\n \tgit commit --$1 first-commit &&\n \tgit tag final-commit-$1 &&\ndiff --git a/t/t4037-diff-r-t-dirs.sh b/t/t4037-diff-r-t-dirs.sh\nindex f5ce3b2..77534aa 100755\n--- a/t/t4037-diff-r-t-dirs.sh\n+++ b/t/t4037-diff-r-t-dirs.sh\n@@ -22,7 +22,7 @@ test_expect_success setup '\n \tdo\n \t\techo hello >$p || exit\n \tdone &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit add . &&\n \ttest_tick &&\n \tgit commit -m second\ndiff --git a/t/t6022-merge-rename.sh b/t/t6022-merge-rename.sh\nindex 1ed259d..f021939 100755\n--- a/t/t6022-merge-rename.sh\n+++ b/t/t6022-merge-rename.sh\n@@ -262,7 +262,7 @@ test_expect_success 'setup for rename + d/f conflicts' '\n \n \techo 11 >>sub/file &&\n \techo more >>dir/file-in-the-way &&\n-\tgit add -u &&\n+\tgit add -a &&\n \tgit commit -m \"Commit to merge, with dir in the way\" &&\n \n \tgit checkout -b dir-not-in-way &&\ndiff --git a/t/t6036-recursive-corner-cases.sh b/t/t6036-recursive-corner-cases.sh\nindex 871577d..8359ccc 100755\n--- a/t/t6036-recursive-corner-cases.sh\n+++ b/t/t6036-recursive-corner-cases.sh\n@@ -197,7 +197,7 @@ test_expect_success 'setup differently handled merges of rename/add conflict' '\n \ttest_must_fail git merge B &&\n \trm new_a~HEAD new_a &&\n \tprintf \"Incorrectly merged content\" >>new_a &&\n-\tgit add -u &&\n+\tgit add -a &&\n \ttest_tick && git commit -m E &&\n \tgit tag E\n '\n-- \n1.7.4.1.224.gefc87\n"},{"id":"162372","messageId":"AANLkTintuaM+p7XKmTy+hOa80nkbph7MP00cvEA+oHZJ@mail.gmail.com","threadId":"26602","inReplyTo":"711e34a5f4761ccd1056a992df21e3389db7add7.1298821535.git.git@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2011-02-27T16:38:42Z","receivedAt":"2011-02-27T16:38:42Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Sun, Feb 27, 2011 at 10:50 PM, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n> @@ -320,8 +320,9 @@ static struct option builtin_add_options[] = {\n>        OPT_BOOLEAN('p', \"patch\", &patch_interactive, \"select hunks interactively\"),\n>        OPT_BOOLEAN('e', \"edit\", &edit_interactive, \"edit current diff and apply\"),\n>        OPT__FORCE(&ignored_too, \"allow adding otherwise ignored files\"),\n> -       OPT_BOOLEAN('u', \"update\", &take_worktree_changes, \"update tracked files\"),\n> +       { OPTION_BOOLEAN, 'u', \"update\", &take_worktree_changes, NULL, \"update tracked files\", PARSE_OPT_HIDDEN | PARSE_OPT_NOARG },\n>        OPT_BOOLEAN('N', \"intent-to-add\", &intent_to_add, \"record only the fact that the path will be added later\"),\n> +       OPT_BOOLEAN('a', \"all-tracked\", &take_worktree_changes, \"add changes from all tracked files\"),\n\nShould -u now print warnings to help script writers migrate to -a? Or\ndo we plan to keep hidden -u forever?\n-- \nDuy\n"},{"id":"162390","messageId":"7vy651t5j3.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"059f131e50675ac53d5d304a51530984e1b7b8a8.1298821535.git.git@drmicha.warpmail.net","subject":"Re: [PATCHv2 1/3] git-add: make -A description clearer vs. -u","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-27T23:35:28Z","receivedAt":"2011-02-27T23:35:28Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> Currently, it sounds as if \"notice removal of files\" distinguishes \"-A\"\n> from \"-u\", and there is no mention of the worktree.\n>\n> But both notice the removal, and only \"-A\" adds changes from untracked\n> files. Say so.\n>\n> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n\nThanks; I think the new wording is an improvement over the existing\nmessage.  Applied.\n"},{"id":"162398","messageId":"7v39n8ll0s.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"AANLkTintuaM+p7XKmTy+hOa80nkbph7MP00cvEA+oHZJ@mail.gmail.com","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-28T06:40:19Z","receivedAt":"2011-02-28T06:40:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:\n\n> Should -u now print warnings to help script writers migrate to -a? Or\n> do we plan to keep hidden -u forever?\n\nI'd rather not to apply 2 and 3 from this series for now, until we have a\nmore reasonable solution.  Yes, I said \"add --add-tracked\" _might_ be\nworth considering, but that is in contrast to \"add --tracked\" which was\nout of the question.\n\nLike it or not, \"add -u\" has already been quite established, and the 'u'\nstands for \"update(d)\" (i.e. \"run update-index to the files updated in the\nwork tree\"), which I think makes perfect sense.\n\nI would suggest just keeping \"add -u\" as is.  As I said in the review in\nthe previous round, if Michael really wants to, it probably is Ok to give\n\"commit -a\" a synonym \"commit --update\".\n\nI further find that the verb form \"--update\" doesn't rhyme well as the\noption name to select what classes of paths are operated on; it might make\nsense to change the fully spelled version of the option for both commands\nfrom \"--update\" to \"--updated\" while we are at it.  This would not bother\nend users at all, as parse-options will complete \"--update\" typed by the\nuser or in scripts uniquely to \"--updated\" just fine.\n\nMichael seems to be resisting against introducing \"commit --update\", and I\nunderstand one reason is because \"status -u\" means something totally\ndifferent from \"updated paths\"; I am somewhat sympathetic to that fear.\n\nBut we started making \"status\" independent from being \"commit --dry-run\"\nin 1.7.0 for a reason---it would be Ok if \"status -u\" means something\ncompletely different from \"commit -u\", _as long as_ existing \"commit -u\"\ndoes not make much sense.  I think that is the case here.\n\nI don't think the distinction between \"commit -a\" vs \"commit -A\" is all\nthat bad.  When people talk about \"all\" files in the context of SCM, we\nalmost always think about already tracked paths, and other files do not\nget into the picture unless you first \"add\" them (this is not limited to\ngit; even \"svn commit\" or \"cvs commit\" wouldn't touch untracked paths).\nFor this reason, it is not unexpected that the normal version of \"all\"\nexcludes untracked files, and you would need to ask for the unusual\nversion of \"all\" to include them (i.e. \"commit -A\" or \"add -A\") when\ndealing with usual SCM commands.\n\nThe same argument however does _NOT_ hold for \"add\", as \"add\" (especially\nin other SCM's context) is about making paths that haven't been tracked so\nfar into tracked ones; iow, it is natural to expect that \"all\" would mean\nmore than normal \"all\" (i.e. \"all what are tracked\") in the context of the\n\"add\" command (and \"add\" command only).\n\nIOW, renaming \"add -u\" to \"add -a\" and having \"add -a\" vs \"add -A\" is more\nconfusing than necessary, because of the nature of the word \"add\" that has\na connotation of affecting paths that have been untracked so far, and\nkeeping \"add -u\" and \"add -A\" distinct to avoid confusion is probably a\nreasonable solution to avoid \"which variant of 'all' are we talking about\"\nconfusion.  This compromise unfortunately does not give us the uniformity\nbetween '-a' vs '-A' applied to 'add' vs 'commit'.  That is why I would\nsuggest '-u' vs '-A' if we _really_ want to have such a uniformity between\ntwo commands, i.e. not adding \"add -a\" but adding \"commit -u\".\n"},{"id":"162404","messageId":"4D6B5D09.8010806@drmicha.warpmail.net","threadId":"26602","inReplyTo":"7v39n8ll0s.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T08:30:01Z","receivedAt":"2011-02-28T08:30:01Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano venit, vidit, dixit 28.02.2011 07:40:\n> Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:\n> \n>> Should -u now print warnings to help script writers migrate to -a? Or\n>> do we plan to keep hidden -u forever?\n> \n> I'd rather not to apply 2 and 3 from this series for now, until we have a\n> more reasonable solution.  Yes, I said \"add --add-tracked\" _might_ be\n\n\"add --all-tracked\", I think.\n\n> worth considering, but that is in contrast to \"add --tracked\" which was\n> out of the question.\n\nCome to think of it: How about \"-A,--everything\" and \"-a,--all\" if\n\"-A,--All\" is a no-no?\n\n> Like it or not, \"add -u\" has already been quite established, and the 'u'\n> stands for \"update(d)\" (i.e. \"run update-index to the files updated in the\n> work tree\"), which I think makes perfect sense.\n\nI think here and below you are reasoning from the perspective of a\nwell-trained user - which already must be quite an effort (trying to\nthink way below your level of experience), of course ;)\n\nWe know that add runs update-index, but we are irrelevant, so to say. If\n\"update\" or \"updated content\" describes the option (!, not the command)\nwell for an ordinary user, differentiating it from other add options,\nI'm all for it. My problem is that in\n\ngit add pathspec\ngit add -u pathspec\n\nboth commands update the index with the updated contents of pathspec if\npathspec is tracked already. They are only different when pathspec (or\nsome of the files under pathspec) is not tracked yet. So, really:\n\n-u == --tracked-files-only\n\nThat is, without \"-u\" we add (potentially) more than we would with \"-u\".\n\nIt's just that the defaults without pathspec are very different: \"\"\nresp. \".\"\n\nBut that default makes \"-u\" appear very all-ish.\n\n> I would suggest just keeping \"add -u\" as is.  As I said in the review in\n> the previous round, if Michael really wants to, it probably is Ok to give\n> \"commit -a\" a synonym \"commit --update\".\n> \n> I further find that the verb form \"--update\" doesn't rhyme well as the\n> option name to select what classes of paths are operated on; it might make\n> sense to change the fully spelled version of the option for both commands\n> from \"--update\" to \"--updated\" while we are at it.  This would not bother\n> end users at all, as parse-options will complete \"--update\" typed by the\n> user or in scripts uniquely to \"--updated\" just fine.\n\nIn fact, I'd be much happier with \"--updated\" than with \"--update\" -\n\"updated\" makes sense for tracked files only, so \"updated\" is really\nanother way of saying \"tracked\" in the context of the add option in\nquestion!\n\n> Michael seems to be resisting against introducing \"commit --update\", and I\n> understand one reason is because \"status -u\" means something totally\n> different from \"updated paths\"; I am somewhat sympathetic to that fear.\n> \n> But we started making \"status\" independent from being \"commit --dry-run\"\n> in 1.7.0 for a reason---it would be Ok if \"status -u\" means something\n> completely different from \"commit -u\", _as long as_ existing \"commit -u\"\n> does not make much sense.  I think that is the case here.\n\nWhile technically possible, as you explained, having \"-u\" inconsistent\nbetween \"commit\" and \"status\" is a bitter pill to swallow while I'm\ndriving for consistency between \"add\" and \"commit\". I could try to\nconvince me that \"add -u\" is quite a bit like \"status -uno\", though...\n\n> I don't think the distinction between \"commit -a\" vs \"commit -A\" is all\n> that bad.  When people talk about \"all\" files in the context of SCM, we\n> almost always think about already tracked paths, and other files do not\n> get into the picture unless you first \"add\" them (this is not limited to\n> git; even \"svn commit\" or \"cvs commit\" wouldn't touch untracked paths).\n\nThat's exactly how I was reasoning that \"commit -a\" does The Right Thing :)\n\n> For this reason, it is not unexpected that the normal version of \"all\"\n> excludes untracked files, and you would need to ask for the unusual\n> version of \"all\" to include them (i.e. \"commit -A\" or \"add -A\") when\n> dealing with usual SCM commands.\n\nYes, I'd much rather have a better long name for \"commit -A\", such as\n\"commit --everything\", even though there's no \"A\" in \"everything\". It is\n\"more than all\", \"all-and-more\", and maybe that's good enough.\n\n> The same argument however does _NOT_ hold for \"add\", as \"add\" (especially\n> in other SCM's context) is about making paths that haven't been tracked so\n> far into tracked ones; iow, it is natural to expect that \"all\" would mean\n> more than normal \"all\" (i.e. \"all what are tracked\") in the context of the\n> \"add\" command (and \"add\" command only).\n\nWell, I thought we're trying to teach users that our \"add\" is primarily\nabout adding changes from updated files, and *also* about adding files\nto the \"list of tracked stuff\".\n\nAlso, \"all tracked\" is not normal for \"add\", otherwise plain\n\ngit add\n\nwould have to default to \"git add -u\", wouldn't it?\n\n> IOW, renaming \"add -u\" to \"add -a\" and having \"add -a\" vs \"add -A\" is more\n> confusing than necessary, because of the nature of the word \"add\" that has\n> a connotation of affecting paths that have been untracked so far, and\n> keeping \"add -u\" and \"add -A\" distinct to avoid confusion is probably a\n> reasonable solution to avoid \"which variant of 'all' are we talking about\"\n> confusion.  This compromise unfortunately does not give us the uniformity\n> between '-a' vs '-A' applied to 'add' vs 'commit'.  That is why I would\n> suggest '-u' vs '-A' if we _really_ want to have such a uniformity between\n> two commands, i.e. not adding \"add -a\" but adding \"commit -u\".\n\nI think it all boils down to the fact that because \"add\" and \"commit\"\nhave different defaults (because we want useful defaults), the meaning\nof the same long option \"--all\" could be different. I mean, \"commit\n--all[-tracked]\" is pointless.\n\nBut just how useful is our default that \"git add\" is a no-op? I know I'm\ngetting a bit radical here, but the more I think about it, I feel that\n\n- \"add\" should be about tracked paths by default (default pathspec \".\"),\n\n- \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n\n- \"-A,--all pathspec\" (default pathspec \".\") be about tracked and\nuntracked paths (whether add or commit).\n\nYes, that makes our \"add\" even more different from \"svn add\", but our\n\"commit\" is very different already. That would need a proper migration\nplan etc., and some thinking about -i/-o. Just brain-storming.\n\nCheers,\nMichael\n\nP.S.: Maybe we could even use \"git stage\" as the construction site for\nthe \"new git add\", but that would loose the \"-a,--add\" niceness.\n"},{"id":"162405","messageId":"buomxlg35zq.fsf@dhlpc061.dev.necel.com","threadId":"26602","inReplyTo":"4D6B5D09.8010806@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Miles Bader","fromEmail":"miles@gnu.org","sentAt":"2011-02-28T08:42:17Z","receivedAt":"2011-02-28T08:42:17Z","isPatch":false,"sender":{"key":"miles@gnu.org","avatar":"https://gravatar.com/avatar/01069b69593af7bff28e2f97afeb3644ae6fe2f5f56cb3a8cf34c5fb8c36efe5?d=mp&s=160"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n\nCan you give an example?  It look like you're proposing that the user\nwould have to type \"commit -a -u\", which is pretty gross for a fairly\ncommon operation that already has a good shorthand...\n\n-Miles\n\n-- \nOmochiroi!\n"},{"id":"162406","messageId":"4D6B6101.9090504@drmicha.warpmail.net","threadId":"26602","inReplyTo":"buomxlg35zq.fsf@dhlpc061.dev.necel.com","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T08:46:57Z","receivedAt":"2011-02-28T08:46:57Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Miles Bader venit, vidit, dixit 28.02.2011 09:42:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n> \n> Can you give an example?  It look like you're proposing that the user\n> would have to type \"commit -a -u\", which is pretty gross for a fairly\n> common operation that already has a good shorthand...\n\nNot again, please. I don't even know what to give an example for, given\nhow much you cut down my post. In the last part of my post (the\n\"radical\" part), I explained why we don't need \"-u\" any more, because\nit's the new default. So, obviously (obvious from the parts you cut),\n\"commit -a\" would do what it always did.\n\nAnd would you please try and follow our netiquete here? I had promised\nmyself not to respond any more, but see how I'm still forgiving. Try and\ndeserve it :)\n\nMichael\n"},{"id":"162407","messageId":"buohbbo35g8.fsf@dhlpc061.dev.necel.com","threadId":"26602","inReplyTo":"4D6B6101.9090504@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Miles Bader","fromEmail":"miles@gnu.org","sentAt":"2011-02-28T08:53:59Z","receivedAt":"2011-02-28T08:53:59Z","isPatch":false,"sender":{"key":"miles@gnu.org","avatar":"https://gravatar.com/avatar/01069b69593af7bff28e2f97afeb3644ae6fe2f5f56cb3a8cf34c5fb8c36efe5?d=mp&s=160"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n> And would you please try and follow our netiquete here? I had promised\n> myself not to respond any more, but see how I'm still forgiving. Try and\n> deserve it :)\n\nI'm confused; how am I \"not following netiquete\"?  It was an honest\nquestion...\n\n-miles\n\n-- \n\"Don't just question authority,\nDon't forget to question me.\"\n-- Jello Biafra\n"},{"id":"162408","messageId":"buobp1w350a.fsf@dhlpc061.dev.necel.com","threadId":"26602","inReplyTo":"4D6B6101.9090504@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Miles Bader","fromEmail":"miles@gnu.org","sentAt":"2011-02-28T09:03:33Z","receivedAt":"2011-02-28T09:03:33Z","isPatch":false,"sender":{"key":"miles@gnu.org","avatar":"https://gravatar.com/avatar/01069b69593af7bff28e2f97afeb3644ae6fe2f5f56cb3a8cf34c5fb8c36efe5?d=mp&s=160"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n> Miles Bader venit, vidit, dixit 28.02.2011 09:42:\n>> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n>> \n>> Can you give an example?  It look like you're proposing that the user\n>> would have to type \"commit -a -u\", which is pretty gross for a fairly\n>> common operation that already has a good shorthand...\n>\n> we don't need \"-u\" any more, because it's the new default. So,\n> obviously, \"commit -a\" would do what it always did.\n\nOk, so for \"-u\" that works out.\n\nBut for -A, the user would have to type \"commit -a -A\".\n\nThat sort of indirection is clever, but it seems confusing and\ninconvenient for the user, and I think a very common question would be\n\"why do I need to use -a when it's obvious that -A should imply that?\"\n\n-miles\n\n-- \nVote, v. The instrument and symbol of a freeman's power to make a fool of\nhimself and a wreck of his country.\n"},{"id":"162409","messageId":"4D6B6544.2040404@drmicha.warpmail.net","threadId":"26602","inReplyTo":"buohbbo35g8.fsf@dhlpc061.dev.necel.com","subject":"Snipping on this list (Was: Re: [PATCHv2 3/3] git-add: rename -u to -a)","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T09:05:08Z","receivedAt":"2011-02-28T09:05:08Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Miles Bader venit, vidit, dixit 28.02.2011 09:53:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>> And would you please try and follow our netiquete here? I had promised\n>> myself not to respond any more, but see how I'm still forgiving. Try and\n>> deserve it :)\n> \n> I'm confused; how am I \"not following netiquete\"?  It was an honest\n> question...\n\nWell, we're trying to cut as little as possible here. In particular,\ndon't just include one single line, taking it completely out of context.\nEven more particularly, don't cut away the paragraph leading to a\nconclusion when you're responding that conclusion - in this case that\nparagraph would have ansered your question already. (And I don't think\nI'm saying this the first time, but I'm used to it - I have little kids...).\n\nWe do cut patches when we respond to a commit message only (and the\nresponse is not about the implementation), or hunks of a patch when\nthey're not related to the response.\n\nAs a general guideline, a reader should be able to understand the\nresponse without looking up the post you are responding to (but may have\nto read up on a longer thread). When in doubt, err on the lenient side\n(less cutting), and make your MUA display quotes nicely (conversation\nview, quotecollapse, ...).\n\nAnd don't cull cc, don't break the thread. (You haven don't that here, I\ndo appreciate that, thanks!).\n\nCheers,\nMichael\n"},{"id":"162410","messageId":"4D6B6625.9080104@drmicha.warpmail.net","threadId":"26602","inReplyTo":"buobp1w350a.fsf@dhlpc061.dev.necel.com","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T09:08:53Z","receivedAt":"2011-02-28T09:08:53Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Miles Bader venit, vidit, dixit 28.02.2011 10:03:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>> Miles Bader venit, vidit, dixit 28.02.2011 09:42:\n>>> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>>>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n>>>\n>>> Can you give an example?  It look like you're proposing that the user\n>>> would have to type \"commit -a -u\", which is pretty gross for a fairly\n>>> common operation that already has a good shorthand...\n>>\n>> we don't need \"-u\" any more, because it's the new default. So,\n>> obviously, \"commit -a\" would do what it always did.\n> \n> Ok, so for \"-u\" that works out.\n> \n> But for -A, the user would have to type \"commit -a -A\".\n> \n> That sort of indirection is clever, but it seems confusing and\n> inconvenient for the user, and I think a very common question would be\n> \"why do I need to use -a when it's obvious that -A should imply that?\"\n\nIf it's obviously an add option, then it will imply add, of course. I'm\ntrying to make things better ;)\n\nThat whole last paragraph was labelled \"radical brain-storming\", not\nincorporating other add-related commit options like -i and -o, not\ncompletely thought through.\n\nMichael\n"},{"id":"162413","messageId":"vpqwrkkpkea.fsf@bauges.imag.fr","threadId":"26602","inReplyTo":"4D6B5D09.8010806@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2011-02-28T09:40:13Z","receivedAt":"2011-02-28T09:40:13Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> But just how useful is our default that \"git add\" is a no-op?\n\nI dont care very much myself, but if you consider \"git add .\" as a\npotentially destructive operation (discards changes that may be precious\nin the index), then it's good that \"git add\" is a no-op.\n\nMany beginners will try commands expecting to get a help message or a\nhint on how to use it when ran without argument (principle of least\nsurprise)\n\nLike:\n\n$ ls\nfile1 file2\n=> oh, so \"ls\" lists files.\n$ rm\nrm: missing operand\nTry `rm --help' for more information.\n=> ok, so rm needs more operands\n\nA user typing \"git add\" just \"to see what happens\" may be disapointed to\nhave all its files added. In particular since \"git add\" is silent by\ndefault, hence\n\n# let's see what happens ...\n$ git add\n$ \n# ok, nothing happened ...\n# continue hacking without noticing that a bunch of files have been added.\n\nMercurial has taken the other way, making \"hg add\" add everything by\ndefault, and some users do complain:\n\nhttp://osdir.com/ml/version-control.mercurial.general/2007-08/msg00316.html\n\nIf you change this for Git, you'll have people complaining about\nbackward compatibility plus people complaining about least surprise :-(\n\n> - \"add\" should be about tracked paths by default (default pathspec \".\"),\n>\n> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n>\n> - \"-A,--all pathspec\" (default pathspec \".\") be about tracked and\n> untracked paths (whether add or commit).\n\nToday, \"git add .\" adds new content in tracked files, and new files, but\ndoesn't notice files deletions. Did I miss something, or is there no way\nto do that with your proposal?\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"162421","messageId":"4D6B6F97.8030409@drmicha.warpmail.net","threadId":"26602","inReplyTo":"vpqwrkkpkea.fsf@bauges.imag.fr","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T09:49:11Z","receivedAt":"2011-02-28T09:49:11Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Matthieu Moy venit, vidit, dixit 28.02.2011 10:40:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n> \n>> But just how useful is our default that \"git add\" is a no-op?\n> \n> I dont care very much myself, but if you consider \"git add .\" as a\n> potentially destructive operation (discards changes that may be precious\n> in the index), then it's good that \"git add\" is a no-op.\n> \n> Many beginners will try commands expecting to get a help message or a\n> hint on how to use it when ran without argument (principle of least\n> surprise)\n> \n> Like:\n> \n> $ ls\n> file1 file2\n> => oh, so \"ls\" lists files.\n> $ rm\n> rm: missing operand\n> Try `rm --help' for more information.\n> => ok, so rm needs more operands\n> \n> A user typing \"git add\" just \"to see what happens\" may be disapointed to\n> have all its files added. In particular since \"git add\" is silent by\n> default, hence\n> \n> # let's see what happens ...\n> $ git add\n> $ \n> # ok, nothing happened ...\n> # continue hacking without noticing that a bunch of files have been added.\n\nNo no, I said \"add\" would default to what \"-u\" does now (see below).\n\nA user \"starting to experiment with add\" while have nothing in the index.\n\n> Mercurial has taken the other way, making \"hg add\" add everything by\n> default, and some users do complain:\n> \n> http://osdir.com/ml/version-control.mercurial.general/2007-08/msg00316.html\n\nSince when do we care about them (as in \"hg\", not in \"users\", mind you...).\n\n> If you change this for Git, you'll have people complaining about\n> backward compatibility plus people complaining about least surprise :-(\n> \n>> - \"add\" should be about tracked paths by default (default pathspec \".\"),\n\nSee, here!\n\n>>\n>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n>>\n>> - \"-A,--all pathspec\" (default pathspec \".\") be about tracked and\n>> untracked paths (whether add or commit).\n> \n> Today, \"git add .\" adds new content in tracked files, and new files, but\n> doesn't notice files deletions. Did I miss something, or is there no way\n> to do that with your proposal?\n\nWhat in\n\n> That would need a proper migration\n> plan etc., and some thinking about -i/-o. Just brain-storming.\n\nreads \"proposal\" to you?\n\nBesides, current \"git add .\" is a really strange thing, doing more and\nless than \"git add -u\", mixing \"update\" with \"track\", but not\ncompletely. What is it even good for? ;)\n\n(We could have an option for that, of course. Have I mentioned \"radical\"?)\n\nMichael\n"},{"id":"162422","messageId":"AANLkTikpYAFpj8ciqkgbEyQWiphy3FVQKAW+_+mz--V_@mail.gmail.com","threadId":"26602","inReplyTo":"4D6B6F97.8030409@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Tor Arntsen","fromEmail":"tor@spacetec.no","sentAt":"2011-02-28T10:01:39Z","receivedAt":"2011-02-28T10:01:39Z","isPatch":false,"sender":{"key":"tor@spacetec.no","avatar":null},"body":"On Mon, Feb 28, 2011 at 10:49, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> No no, I said \"add\" would default to what \"-u\" does now (see below).\n\nadd -u adds untracked files. An explicit operation by the user. I hope\nyou really don't mean that just 'git add' would add all untracked\nfiles? That would cause a terrible mess if someone just enters 'git\nadd' (which they could very well do in other situations than just\nafter 'git init', there are many casual git users out there.)\n\n-Tor\n"},{"id":"162424","messageId":"4D6B72D6.3060201@drmicha.warpmail.net","threadId":"26602","inReplyTo":"AANLkTikpYAFpj8ciqkgbEyQWiphy3FVQKAW+_+mz--V_@mail.gmail.com","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T10:03:02Z","receivedAt":"2011-02-28T10:03:02Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Tor Arntsen venit, vidit, dixit 28.02.2011 11:01:\n> On Mon, Feb 28, 2011 at 10:49, Michael J Gruber\n> <git@drmicha.warpmail.net> wrote:\n> \n>> No no, I said \"add\" would default to what \"-u\" does now (see below).\n> \n> add -u adds untracked files. An explicit operation by the user. I hope\n> you really don't mean that just 'git add' would add all untracked\n> files? That would cause a terrible mess if someone just enters 'git\n> add' (which they could very well do in other situations than just\n> after 'git init', there are many casual git users out there.)\n\nPlease, go read what (thread) you're replying to, then reply. I'm not\nresponsible for other people cutting my posts and turning around the\nrest. (Also, you are wrong about \"add -u\".)\n\nMichael\n"},{"id":"162425","messageId":"vpqr5aslbje.fsf@bauges.imag.fr","threadId":"26602","inReplyTo":"4D6B6F97.8030409@drmicha.warpmail.net","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2011-02-28T10:05:09Z","receivedAt":"2011-02-28T10:05:09Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> Matthieu Moy venit, vidit, dixit 28.02.2011 10:40:\n>\n>> # let's see what happens ...\n>> $ git add\n>> $ \n>> # ok, nothing happened ...\n>> # continue hacking without noticing that a bunch of files have been added.\n>\n> No no, I said \"add\" would default to what \"-u\" does now (see below).\n\nRight, that less disturbing than I wrote (but still potentially\ndisturbing)\n\n>> Mercurial has taken the other way, making \"hg add\" add everything by\n>> default, and some users do complain:\n>> \n>> http://osdir.com/ml/version-control.mercurial.general/2007-08/msg00316.html\n>\n> Since when do we care about them (as in \"hg\", not in \"users\", mind\n> you...).\n\nIf you don't care about experiences of others, I can do nothing for you.\nI don't have a crystal ball, so I can't say what Git users will say\nabout a given feature, but I can look around me (I'm sure you can too)\nand see how it went for other people.\n\n>> If you change this for Git, you'll have people complaining about\n>> backward compatibility plus people complaining about least surprise :-(\n>> \n>>> - \"add\" should be about tracked paths by default (default pathspec \".\"),\n>\n> See, here!\n>\n>>>\n>>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\", and\n>>>\n>>> - \"-A,--all pathspec\" (default pathspec \".\") be about tracked and\n>>> untracked paths (whether add or commit).\n>> \n>> Today, \"git add .\" adds new content in tracked files, and new files, but\n>> doesn't notice files deletions. Did I miss something, or is there no way\n>> to do that with your proposal?\n>\n> What in\n>\n>> That would need a proper migration\n>> plan etc., and some thinking about -i/-o. Just brain-storming.\n>\n> reads \"proposal\" to you?\n\nWhat's wrong with you today? Miles asks a honnest question and gets a\ndissertation about the netiquette, I ask another question, mention the\nexperience of other people and get this.\n\nI did read \"brainstorming\" in your email, tried to brainstorm with you,\nbut you're not making it easy to us. I'm stopping here, sorry for\ndisturbing.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"162428","messageId":"4D6B7E91.4050308@drmicha.warpmail.net","threadId":"26602","inReplyTo":"vpqr5aslbje.fsf@bauges.imag.fr","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-02-28T10:53:05Z","receivedAt":"2011-02-28T10:53:05Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Matthieu Moy venit, vidit, dixit 28.02.2011 11:05:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n> \n>> Matthieu Moy venit, vidit, dixit 28.02.2011 10:40:\n>> \n>>> # let's see what happens ... $ git add $ # ok, nothing happened\n>>> ... # continue hacking without noticing that a bunch of files\n>>> have been added.\n>> \n>> No no, I said \"add\" would default to what \"-u\" does now (see\n>> below).\n> \n> Right, that less disturbing than I wrote (but still potentially \n> disturbing)\n> \n>>> Mercurial has taken the other way, making \"hg add\" add everything\n>>> by default, and some users do complain:\n>>> \n>>> http://osdir.com/ml/version-control.mercurial.general/2007-08/msg00316.html\n>>\n>>\n>>> Since when do we care about them (as in \"hg\", not in \"users\", mind\n>> you...).\n> \n> If you don't care about experiences of others, I can do nothing for\n> you. I don't have a crystal ball, so I can't say what Git users will\n> say about a given feature, but I can look around me (I'm sure you can\n> too) and see how it went for other people.\n> \n\nBetween hg and git, add and commit are very different. Haven't we all\nseen these super smart comparisons saying\n\nhg add is much faster than git add, but git commit is much faster than\nhg commit?\n\nThey do completely different things. When used after each other, they do\n\"A+B+C\", but \"hg add\" does \"A\", \"hg commit\" \"B+C\", whereas \"git add\"\ndoes \"A+B\", \"git commit\" does \"C\" (with pathspecs for add, no options).\n\nBecause of that, and also because I haven't thought\nabout/suggested/proposed what \"hg add\" seems to do by default now, I\ndismiss that experience as unrelated. \"hg add\" is partially related to\n\"git add\" only, and their default is completely different from what I've\nmentioned.\n\n(I think you know hg and git well enough to know this difference, and\nalso know from the list that I do care [even in your quote], or I would\nhave explained that in the first place).\n\n>>> If you change this for Git, you'll have people complaining about \n>>> backward compatibility plus people complaining about least\n>>> surprise :-(\n>>> \n>>>> - \"add\" should be about tracked paths by default (default\n>>>> pathspec \".\"),\n>> \n>> See, here!\n>> \n>>>> \n>>>> - \"commit -a,--add <addopts>\" be \"add <addopts> && commit\",\n>>>> and\n>>>> \n>>>> - \"-A,--all pathspec\" (default pathspec \".\") be about tracked\n>>>> and untracked paths (whether add or commit).\n>>> \n>>> Today, \"git add .\" adds new content in tracked files, and new\n>>> files, but doesn't notice files deletions. Did I miss something,\n>>> or is there no way to do that with your proposal?\n>> \n>> What in\n>> \n>>> That would need a proper migration plan etc., and some thinking\n>>> about -i/-o. Just brain-storming.\n>> \n>> reads \"proposal\" to you?\n> \n> What's wrong with you today? Miles asks a honnest question and gets\n> a dissertation about the netiquette,\n\nA question answered in the post he replied to (but failed to quote).\nGiven my previous encounters the other day, an explanation of our\nnetiquette seemed in order (other lists trim much more then we do), and\nnon the less I did so politely, and I even appreciated his leaving cc in\nplace (which other lists do differently, and proves his openness to adapt).\n\n> I ask another question, mention\n> the experience of other people and get this.\n\nJeff, then Junio and I have been discussing ways forward to improve the\nuser experience with respect to related options of \"add\" and \"commit\"\n(which are similar and named differently, or dissimilar and named the\nsame), and everyone is welcome to join (of course; just to be clear),\nthere is no consensus yet. Every voice counts.\n\n> I did read \"brainstorming\" in your email, tried to brainstorm with\n> you, but you're not making it easy to us. I'm stopping here, sorry\n> for disturbing.\n\nWhat is not OK is trimming down my posts to the amount that they make no\nsense any more, or a completely different sense, and then commenting on\nthat skewed quote, forcing me to reexplain what I had explained already.\nThis makes us go in circles, rather than forward. It's a waste of resources.\n\nYou may have been unlucky in being number \"n+1\" to do so to me on-list\ntoday, and maybe in \"proposal\" being more formal in English than in\nFrench, alleviated by the fact that you cut out my sentence\n\n\"I know I'm getting a bit radical here, but the more I think about it, I\nfeel that\"\n\nintroducing the list of items which you did quote (no to mention the\nwhole reasoning building up to that). So, not just poor luck, you see;)\n\nWriting that long post (with a large unradical part, and a short radical\nbrain-storming) I was afraid already it would make people read partially\nonly. I hope we'll turn that into a more constructive direction again.\n\nMichael\n"},{"id":"162458","messageId":"7vtyfohvk0.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"4D6B6544.2040404@drmicha.warpmail.net","subject":"Re: Snipping on this list","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-28T18:18:39Z","receivedAt":"2011-02-28T18:18:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> As a general guideline, a reader should be able to understand the\n> response without looking up the post you are responding to (but may have\n\nA reader should be able to remember which original the response is about,\nso that s/he can look it up if s/he doesn't.  If in doubt, I'd rather see\npeople discard irrelevent bits more not less.\n\n> And don't cull cc, don't break the thread. (You haven don't that here, I\n> do appreciate that, thanks!).\n\nThat is true.\n"},{"id":"162459","messageId":"7voc5whves.fsf@alter.siamese.dyndns.org","threadId":"26602","inReplyTo":"vpqwrkkpkea.fsf@bauges.imag.fr","subject":"Re: [PATCHv2 3/3] git-add: rename -u to -a","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-28T18:21:47Z","receivedAt":"2011-02-28T18:21:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> Today, \"git add .\" adds new content in tracked files, and new files, but\n> doesn't notice files deletions. Did I miss something, or is there no way\n> to do that with your proposal?\n\nThat _may_ be something we would want to discuss, even to introduce a\nbackward incompatible change, aimed at 1.10.0 or 2.0 timeframe (if we are\nstarting to discuss something new today, it is too late for 1.8.0).\n"}]}