Johannes Schindelin 26594d2d85 built-in add -i: implement the main loop
The reason why we did not start with the main loop to begin with is that
it is the first user of `list_and_choose()`, which uses the `list()`
function that we conveniently introduced for use by the `status`
command.

Apart from the "and choose" part, there are more differences between the
way the `status` command calls the `list_and_choose()` function in the
Perl version of `git add -i` compared to the other callers of said
function. The most important ones:

- The list is not only shown, but the user is also asked to make a
  choice, possibly selecting multiple entries.

- The list of items is prefixed with a marker indicating what items have
  been selected, if multi-selection is allowed.

- Initially, for each item a unique prefix (if there exists any within
  the given parameters) is determined, and shown in the list, and
  accepted as a shortcut for the selection.

These features will be implemented later, except the part where the user
can choose a command. At this stage, though, the built-in `git add -i`
still only supports the `status` command, with the remaining commands to
follow over the course of the next commits.

In addition, we also modify `list()` to support displaying the commands
in columns, even if there is currently only one.

The Perl script `git-add--interactive.perl` mixed the purposes of the
"list" and the "and choose" part into the same function. In the C
version, we will keep them separate instead, calling the `list()`
function from the `list_and_choose()` function.

Note that we only have a prompt ending in a single ">" at this stage;
later commits will add commands that display a double ">>" to indicate
that the user is in a different loop than the main one.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-24 12:40:49 +02:00
2019-10-24 13:34:03 +09:00
2019-10-18 23:06:14 +02:00
2019-09-17 14:58:12 -07:00
2019-09-28 14:04:16 +09:00
2019-10-18 22:57:55 +02:00
2019-10-15 13:48:02 +09:00
2019-08-19 15:04:58 -07:00
2019-10-15 13:48:02 +09:00
2019-08-19 15:04:58 -07:00
2019-10-18 22:59:06 +02:00
2019-10-09 14:01:00 +09:00
2019-10-07 11:32:58 +09:00
2019-10-11 14:24:46 +09:00
2019-09-12 11:03:51 -07:00
2019-10-24 12:40:49 +02:00
2019-10-24 12:40:49 +02:00
2019-10-24 13:34:03 +09:00
2019-08-30 10:22:42 -07:00
2019-09-30 13:19:24 +09:00
2019-08-15 12:37:10 -07:00
2019-08-19 15:05:00 -07:00
2019-10-15 13:48:02 +09:00
2019-10-18 23:06:07 +02:00
2019-09-17 09:39:16 -07:00
2019-10-15 13:48:02 +09:00
2019-10-15 13:48:02 +09:00
2019-10-15 13:48:02 +09:00
2019-08-22 12:41:04 -07:00
2019-08-19 15:04:59 -07:00
2019-10-15 13:48:02 +09:00
2019-09-30 13:19:26 +09:00
2019-10-11 14:24:46 +09:00
2019-10-11 14:24:48 +09:00
2019-09-05 14:10:18 -07:00
2019-09-05 14:10:18 -07:00
2019-08-13 12:21:33 -07:00
2019-09-03 15:10:53 -07:00
2019-10-12 10:57:39 +09:00
2019-10-09 14:01:00 +09:00
2019-10-11 14:24:46 +09:00

Build Status

Git - fast, scalable, distributed revision control system

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Git is an Open Source project covered by the GNU General Public License version 2 (some parts of it are under different licenses, compatible with the GPLv2). It was originally written by Linus Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

Many Git online resources are accessible from https://git-scm.com/ including full documentation and Git related tools.

See Documentation/gittutorial.txt to get started, then see Documentation/giteveryday.txt for a useful minimum set of commands, and Documentation/git-<commandname>.txt for documentation of each command. If git has been correctly installed, then the tutorial can also be read with man gittutorial or git help tutorial, and the documentation of each command with man git-<commandname> or git help <commandname>.

CVS users may also want to read Documentation/gitcvs-migration.txt (man gitcvs-migration or git help cvs-migration if git is installed).

The user discussion and development of Git take place on the Git mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to git@vger.kernel.org (read Documentation/SubmittingPatches for instructions on patch submission). To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. The mailing list archives are available at https://public-inbox.org/git/, http://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

The maintainer frequently sends the "What's cooking" reports that list the current status of various development topics to the mailing list. The discussion following them give a good reference for project status, development direction and remaining tasks.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your mood):

  • random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
  • stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
  • "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
  • "goddamn idiotic truckload of sh*t": when it breaks
Description
A fork of Git containing Windows-specific patches.
Readme 456 MiB
2025-08-19 03:50:05 -05:00
Languages
C 51.7%
Shell 37.5%
Perl 4.3%
Tcl 3%
Python 0.8%
Other 2.5%