Heiko Voigt a56a60b030 help: correct behavior for is_executable on Windows
The previous implementation said that the filesystem information on
Windows is not reliable to determine whether a file is executable.
To find gather this information it was peeking into the first two bytes
of a file to see whether it looks executable.
Apart from the fact that on Windows executables are usually defined as
such by their extension it lead to slow opening of help file in some
situations.

When you have virus scanner running calling open on an executable file
is a potentially expensive operation. See the following measurements (in
seconds) for example.

With virus scanner running (coldcache):

$ ./a.exe /libexec/git-core/
before open (git-add.exe): 0.000000
after open (git-add.exe): 0.412873
before open (git-annotate.exe): 0.000175
after open (git-annotate.exe): 0.397925
before open (git-apply.exe): 0.000243
after open (git-apply.exe): 0.399996
before open (git-archive.exe): 0.000147
after open (git-archive.exe): 0.397783
before open (git-bisect--helper.exe): 0.000160
after open (git-bisect--helper.exe): 0.397700
before open (git-blame.exe): 0.000160
after open (git-blame.exe): 0.399136
...

With virus scanner running (hotcache):

$ ./a.exe /libexec/git-core/
before open (git-add.exe): 0.000000
after open (git-add.exe): 0.000325
before open (git-annotate.exe): 0.000229
after open (git-annotate.exe): 0.000177
before open (git-apply.exe): 0.000167
after open (git-apply.exe): 0.000150
before open (git-archive.exe): 0.000154
after open (git-archive.exe): 0.000156
before open (git-bisect--helper.exe): 0.000132
after open (git-bisect--helper.exe): 0.000180
before open (git-blame.exe): 0.000718
after open (git-blame.exe): 0.000724
...

This test did just list the given directory and open() each file in it.

With this patch I get:

$ time git help git
Launching default browser to display HTML ...

real    0m8.723s
user    0m0.000s
sys     0m0.000s

and without

$ time git help git
Launching default browser to display HTML ...

real    1m37.734s
user    0m0.000s
sys     0m0.031s

both tests with cold cache and giving the machine some time to settle
down after restart.

Signed-off-by: Heiko Voigt <heiko.voigt@mahr.de>
2016-11-29 23:28:11 +01:00
2016-11-24 22:31:28 +01:00
2016-11-29 12:23:07 -08:00
2016-10-17 13:25:20 -07:00
2016-11-24 22:31:28 +01:00
2016-11-24 22:31:28 +01:00
2016-09-26 17:46:44 -07:00
2016-11-11 13:56:30 -08:00
2016-11-22 13:55:20 -08:00
2016-11-22 13:55:20 -08:00
2016-09-29 15:42:18 -07:00
2016-11-24 22:31:28 +01:00
2016-10-10 14:03:50 -07:00
2016-11-24 22:10:47 +01:00
2016-10-31 13:15:21 -07:00
2016-10-31 13:15:21 -07:00
2016-10-31 13:15:21 -07:00
2016-10-27 14:58:50 -07:00
2016-09-29 15:42:18 -07:00
2016-10-04 10:50:06 +02:00
2016-09-29 15:42:18 -07:00
2016-10-14 01:36:12 +00:00
2016-11-29 12:23:07 -08:00
2016-11-29 12:22:13 -08:00
2016-10-04 10:50:06 +02:00
2016-09-29 15:42:18 -07:00
2016-11-24 22:31:28 +01:00
2016-10-17 13:25:21 -07:00
2016-09-26 16:09:18 -07:00
2016-09-29 15:42:18 -07:00
2016-09-25 16:44:13 -07:00
2016-09-29 15:42:18 -07:00
2016-10-17 13:25:21 -07:00
2016-11-24 22:10:46 +01:00
2016-10-28 09:01:23 -07:00
2016-10-26 13:14:45 -07:00
2016-10-10 14:03:50 -07:00
2016-10-11 14:24:02 -07:00
2016-10-10 14:03:50 -07:00
2016-09-29 15:42:18 -07:00
2016-11-10 13:17:30 -08:00
2016-10-10 14:03:46 -07:00
2016-10-31 13:15:21 -07:00
2016-09-29 15:42:18 -07:00
2016-10-28 09:01:23 -07:00
2016-10-31 13:15:22 -07:00
2016-10-27 14:58:48 -07:00
2016-10-27 14:58:48 -07:00
2016-09-29 15:42:18 -07:00
2016-10-31 13:15:21 -07:00
2016-11-24 22:10:20 +01:00
2016-10-04 10:50:06 +02:00

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 http://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-.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 http://news.gmane.org/gmane.comp.version-control.git/, http://marc.info/?l=git and other archival sites.

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
No description provided
Readme 592 MiB
Languages
C 50.5%
Shell 38.7%
Perl 4.5%
Tcl 3.2%
Python 0.8%
Other 2.1%