git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Documentation: add a planning document for the next CLI revamp
@ 2008-10-30  3:48 Sam Vilain
  2008-10-30 10:55 ` Stefan Karpinski
                   ` (4 more replies)
  0 siblings, 5 replies; 74+ messages in thread
From: Sam Vilain @ 2008-10-30  3:48 UTC (permalink / raw)
  To: git, git; +Cc: Sam Vilain, Sam Vilain

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


^ permalink raw reply related	[flat|nested] 74+ messages in thread
[parent not found: <20081030002239.D453B21D14E@mail.utsl.gen.nz>]

end of thread, other threads:[~2008-11-05 22:54 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-30  3:48 [PATCH] Documentation: add a planning document for the next CLI revamp Sam Vilain
2008-10-30 10:55 ` 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

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).