Jonathan Nieder b5651a2092 experimental: default to fetch.writeCommitGraph=false
The fetch.writeCommitGraph feature makes fetches write out a commit
graph file for the newly downloaded pack on fetch.  This improves the
performance of various commands that would perform a revision walk and
eventually ought to be the default for everyone.  To prepare for that
future, it's enabled by default for users that set
feature.experimental=true to experience such future defaults.

Alas, for --unshallow fetches from a shallow clone it runs into a
snag: by the time Git has fetched the new objects and is writing a
commit graph, it has performed a revision walk and r->parsed_objects
contains information about the shallow boundary from *before* the
fetch.  The commit graph writing code is careful to avoid writing a
commit graph file in shallow repositories, but the new state is not
shallow, and the result is that from that point on, commands like "git
log" make use of a newly written commit graph file representing a
fictional history with the old shallow boundary.

We could fix this by making the commit graph writing code more careful
to avoid writing a commit graph that could have used any grafts or
shallow state, but it is possible that there are other pieces of
mutated state that fetch's commit graph writing code may be relying
on.  So disable it in the feature.experimental configuration.

Google developers have been running in this configuration (by setting
fetch.writeCommitGraph=false in the system config) to work around this
bug since it was discovered in April.  Once the fix lands, we'll
enable fetch.writeCommitGraph=true again to give it some early testing
before rolling out to a wider audience.

In other words:

- this patch only affects behavior with feature.experimental=true

- it makes feature.experimental match the configuration Google has
  been using for the last few months, meaning it would leave users in
  a better tested state than without it

- this should improve testing for other features guarded by
  feature.experimental, by making feature.experimental safer to use

Reported-by: Jay Conrod <jayconrod@google.com>
Helped-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-07-08 16:37:43 -07:00
2020-06-17 21:54:03 -07:00
2020-06-22 11:21:07 -07:00
2020-05-01 13:39:59 -07:00
2020-03-05 10:43:02 -08:00
2020-03-25 13:57:41 -07:00
2020-03-25 13:57:41 -07:00
2020-04-28 10:47:10 -07:00
2019-09-28 14:04:16 +09:00
2019-11-20 13:29:02 +09:00
2019-11-18 15:21:28 +09:00
2019-11-18 15:21:28 +09:00
2020-03-30 10:59:08 -07:00
2020-02-19 09:37:15 -08:00
2020-04-16 15:38:06 -07:00
2020-06-08 18:06:26 -07:00
2019-07-09 15:25:44 -07:00
2020-03-24 15:04:44 -07:00
2020-07-06 22:09:17 -07:00
2019-12-01 09:04:36 -08:00
2020-07-06 22:09:13 -07:00
2020-07-06 22:09:13 -07:00
2019-11-10 16:00:54 +09:00
2019-05-05 15:20:10 +09:00
2020-06-25 12:27:45 -07:00
2019-12-25 11:21:58 -08:00
2020-03-10 11:41:40 -07:00
2020-07-06 22:09:13 -07:00
2020-03-24 15:04:43 -07:00
2019-07-25 13:59:20 -07:00
2020-06-17 21:54:06 -07:00
2020-07-06 22:09:13 -07:00
2019-11-18 15:21:28 +09:00
2019-11-10 16:00:54 +09:00
2019-12-01 09:04:35 -08:00
2020-05-12 22:02:17 -07:00
2020-06-25 12:27:47 -07:00
2020-06-25 12:27:47 -07:00
2019-04-22 11:14:43 +09:00
2020-06-08 18:06:26 -07:00
2019-11-18 15:21:28 +09:00
2020-05-01 13:39:55 -07:00
2019-12-01 09:04:35 -08:00
2020-04-15 09:20:29 -07:00
2019-05-05 15:20:10 +09:00
2020-04-29 16:15:27 -07:00
2020-04-10 09:28:02 -07:00
2019-12-16 13:08:39 -08:00
2020-07-06 22:09:13 -07:00
2020-07-06 22:09:13 -07:00
2018-11-02 12:14:21 +09:00
2020-03-24 15:04:44 -07:00
2020-03-24 15:04:44 -07:00
2018-08-15 15:08:23 -07:00
2020-07-06 22:09:17 -07:00
2020-07-06 22:09:17 -07:00
2019-04-01 11:57:39 +09:00
2020-06-02 13:35:05 -07:00
2020-07-06 22:09:13 -07:00
2019-11-10 16:00:54 +09:00
2020-04-29 16:15:27 -07:00
2020-05-13 12:19:19 -07:00
2020-04-29 16:15:27 -07:00
2020-07-06 22:09:13 -07:00
2019-05-05 15:20:10 +09:00
2020-07-06 22:09:13 -07:00
2020-04-28 15:49:56 -07:00
2019-11-13 10:09:10 +09:00
2020-05-13 12:19:18 -07:00
2019-02-05 14:26:11 -08:00
2019-11-18 15:21:29 +09:00
2018-12-09 12:37:32 +09:00
2019-09-05 14:10:18 -07:00
2020-07-06 22:09:13 -07:00
2020-07-06 22:09:13 -07:00
2020-07-06 22:09:13 -07:00
2019-11-10 16:00:54 +09:00
2020-05-08 14:25:01 -07:00
2018-10-19 13:34:02 +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://lore.kernel.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
No description provided
Readme 581 MiB
Languages
C 50.5%
Shell 38.7%
Perl 4.5%
Tcl 3.2%
Python 0.8%
Other 2.1%