From: Sam Vilain <sam@vilain.net>
To: git@vger.kernel.org
To: git@vger.kernel.org
Cc: Sam Vilain <samv@vilain.net>, Sam Vilain <sam@vilain.net>
Subject: [PATCH] Documentation: add a planning document for the next CLI revamp
Date: Wed, 29 Oct 2008 20:48:05 -0700 [thread overview]
Message-ID: <1225338485-11046-1-git-send-email-sam@vilain.net> (raw)
From: Sam Vilain <samv@vilain.net>
For cross-command CLI changes to be effective, they need to be
cohesively planned. Add a planning document for this next set of
changes.
Signed-off-by: Sam Vilain <sam@vilain.net>
---
Some suggestions, which have been briefly scanned over by some of the
(remaining @4pm) GitTogether attendees.
Please keep it constructive! :)
Documentation/cli-revamp.txt | 135 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 135 insertions(+), 0 deletions(-)
create mode 100644 Documentation/cli-revamp.txt
diff --git a/Documentation/cli-revamp.txt b/Documentation/cli-revamp.txt
new file mode 100644
index 0000000..980ea07
--- /dev/null
+++ b/Documentation/cli-revamp.txt
@@ -0,0 +1,135 @@
+GIT command line revamp
+=======================
+
+This design document is designed for review and critique over planned
+direction for changing the command set used by git, rather than
+reviewing and critiquing individual changes.
+
+In general, old commands will be grandfathered for a year or longer,
+and all plumbing commands will still work as originally designed.
+
+Please bear in mind when critiquing that each of these changes might
+themselves have a progressive implementation, for instance the new
+behaviour being optional initially.
+
+Please try to be positive with your comments; let's try to come up
+with solutions and not argue about the details of the solutions
+presented until those details are submitted. In particular, critical
+comments that do not acknowledge the presence of a problem are
+worthless at this stage.
+
+Add/rm/reset/checkout/revert
+----------------------------
+
+Many find these confusing.
+
+ * 'git stage' would do what 'git add' does now.
+
+ * 'git unstage' would do what 'git reset --' does now
+
+ * 'git status' would encourage the user to use
+ 'git diff --staged' to see staged changes as a patch
+
+ * 'git commit' with no changes should give useful information about
+ using 'git stage', 'git commit -a' or 'git commit filename ...'
+
+ * 'git add' and 'git rm': no change
+
+ * 'git update-index' considered plumbing, not changed
+
+ * 'git revert' deprecated in favour of 'git cherry-pick --revert'
+
+ * 'git undo' would do what 'git checkout HEAD --' does now
+
+ * 'git checkout branch' would, if there is a remote branch called
+ 'branch' on exactly one remote, do what
+ 'git checkout -b branch thatremote/branch' does now. If it is
+ ambiguous, it would be an error, forcing the explicit notation.
+
+ * 'git branch --switch' : alternative to checkout
+
+
+Push/pull
+---------
+
+These commands are asymmetric, and this seems mostly historical.
+
+ * 'git push --matching' does what 'git push' does today (without
+ explicit configuration)
+
+ * 'git push' with no ref args and no 'push =' configuration does
+ what:
+ 'git push origin $(git symbolic-ref HEAD | sed "s!refs/heads/!!")'
+ does today. ie, it only pushes the current branch.
+ If a branch was defined in branch.<name>.push, push to that ref
+ instead of the matching one. If there is no matching ref, and
+ there is a branch.<name>.merge, push back there.
+
+ * 'git pull' behaviour unchanged
+
+ * 'git push' to checked out branch of non-bare repository not
+ allowed without special configuration. Configuration available
+ that allows working directory to be updated, known caveats
+ notwithstanding. Ideally, it would refuse only in situations
+ where a broken working copy would be left (because you couldn't
+ fix it), and work when it can be known to be safe.
+
+
+Informational
+-------------
+
+ * 'git branch' should default to '--color=auto -v'
+
+ * 'git tag -l' should show more information
+
+
+Working with patches
+--------------------
+
+ * 'git send-email' should prompt for all SMTP-related information
+ about sending e-mail when it is running with no configuration.
+ Because these days /usr/lib/sendmail is rarely configured
+ correctly.
+
+ * other git send-email functionality which has bitten people -
+ particularly building the recipient list - should prompt for
+ confirmation until configured to be automatic.
+
+ * 'git am -3' the default; with global option to make it not the
+ default for those that prefer the speed of -2
+
+
+Submodules
+----------
+
+ * submodules should be able to refer to symbolic ref names, svn
+ style - in the .gitmodules file. The actual commit used is still
+ recorded in the index.
+
+ * when switching branches, if the checked out revision of a submodule
+ changes, then it should be switched as well
+
+ * 'git submodule update' should be able to be triggered when
+ switching branches (but not be the default behaviour)
+
+
+Others
+------
+
+ * 'git export' command that does what
+ 'git archive --format=tar --prefix=dir | tar x' does now
+
+ * conflicted merges should point the user immediately to
+ 'git mergetool' and mention you need to use 'git stage' to mark
+ resolved files and 'git commit' when done.
+
+ * 'git init --server' (or similar) should do everything required for
+ exporting::
+----
+chmod -R a+rX
+touch git-daemon-export-ok
+git gc
+git update-server-info
+chmod u+x .git/hooks/post-update
+git config core.sharedrepository=1
+----
--
debian.1.5.6.1
next reply other threads:[~2008-10-30 3:48 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-30 3:48 Sam Vilain [this message]
2008-10-30 10:55 ` [PATCH] Documentation: add a planning document for the next CLI revamp Stefan Karpinski
2008-10-31 11:38 ` Kyle Moffett
2008-10-30 13:24 ` Pierre Habouzit
2008-10-30 15:25 ` Julian Phillips
2008-10-31 0:34 ` Jeff King
2008-11-02 21:53 ` Junio C Hamano
2008-11-03 13:47 ` Pierre Habouzit
2008-10-30 14:34 ` Nicolas Pitre
2008-10-30 14:52 ` Shawn O. Pearce
2008-10-30 14:59 ` Mike Hommey
2008-10-30 15:01 ` Pierre Habouzit
2008-10-30 16:53 ` Nicolas Pitre
2008-10-30 17:31 ` Sam Vilain
2008-10-30 18:28 ` Nicolas Pitre
2008-10-30 22:46 ` Yann Dirson
2008-10-30 23:28 ` Sam Vilain
2008-10-30 23:55 ` Jakub Narebski
2008-10-31 6:51 ` Sam Vilain
2008-10-31 7:36 ` Jakub Narebski
2008-11-03 8:43 ` Sam Vilain
2008-11-03 12:06 ` Jakub Narebski
2008-11-01 0:37 ` Johannes Schindelin
2008-10-30 14:39 ` Theodore Tso
2008-10-30 14:43 ` Pierre Habouzit
2008-10-30 16:30 ` Theodore Tso
2008-10-30 16:43 ` Pierre Habouzit
2008-10-30 17:44 ` Sam Vilain
2008-10-30 17:03 ` Nicolas Pitre
2008-11-02 6:08 ` Junio C Hamano
2008-11-02 10:09 ` Theodore Tso
2008-10-30 15:02 ` Andreas Ericsson
2008-11-01 19:57 ` Elijah Newren
2008-10-30 15:20 ` Matthieu Moy
2008-10-30 17:00 ` Nicolas Pitre
2008-10-30 17:03 ` Pierre Habouzit
2008-10-30 17:17 ` Nicolas Pitre
2008-10-30 18:06 ` Sam Vilain
2008-11-02 22:17 ` Junio C Hamano
2008-11-03 6:01 ` Sam Vilain
2008-11-01 19:42 ` Elijah Newren
2008-10-30 17:51 ` Sam Vilain
2008-10-30 23:27 ` Theodore Tso
2008-11-01 20:27 ` Elijah Newren
2008-11-02 1:06 ` Theodore Tso
2008-11-02 4:41 ` Elijah Newren
2008-11-01 19:26 ` Elijah Newren
2008-11-02 22:01 ` Junio C Hamano
2008-11-01 18:36 ` Elijah Newren
[not found] <20081030002239.D453B21D14E@mail.utsl.gen.nz>
2008-10-31 0:31 ` Jeff King
2008-10-31 6:40 ` Sam Vilain
2008-10-31 8:20 ` Pierre Habouzit
2008-11-02 4:18 ` Jeff King
2008-11-02 9:56 ` Theodore Tso
2008-10-31 16:46 ` Johannes Schindelin
2008-11-02 3:42 ` Jeff King
2008-11-02 3:53 ` Jeff King
2008-11-02 22:27 ` Junio C Hamano
2008-11-03 5:59 ` Sam Vilain
2008-11-03 9:48 ` Jakub Narebski
2008-11-03 9:53 ` Sverre Rabbelier
2008-11-04 9:18 ` Dmitry Potapov
2008-11-04 18:10 ` Sam Vilain
2008-11-04 19:46 ` Junio C Hamano
2008-11-05 3:05 ` Jeff King
2008-11-05 6:40 ` Junio C Hamano
2008-11-05 22:53 ` Dmitry Potapov
2008-11-03 6:56 ` Jeff King
2008-11-03 6:59 ` Jeff King
2008-11-03 9:25 ` Pierre Habouzit
2008-11-03 23:33 ` Junio C Hamano
2008-11-04 0:02 ` Pierre Habouzit
2008-11-04 0:44 ` Junio C Hamano
2008-11-04 5:20 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1225338485-11046-1-git-send-email-sam@vilain.net \
--to=sam@vilain.net \
--cc=git@vger.kernel.org \
--cc=samv@vilain.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).