Commit Graph

7753 Commits

Author SHA1 Message Date
Nguyễn Thái Ngọc Duy
82fba2b9d3 git-clone.txt: remove shallow clone limitations
Now that git supports data transfer from or to a shallow clone, these
limitations are not true anymore.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:19 -08:00
Nguyễn Thái Ngọc Duy
eab3296c7e prune: clean .git/shallow after pruning objects
This patch teaches "prune" to remove shallow roots that are no longer
reachable from any refs (e.g. when the relevant refs are removed).

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:19 -08:00
Nguyễn Thái Ngọc Duy
16094885ca smart-http: support shallow fetch/clone
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:18 -08:00
Nguyễn Thái Ngọc Duy
0a1bc12b6e receive-pack: allow pushes that update .git/shallow
The basic 8 steps to update .git/shallow does not fully apply here
because the user may choose to accept just a few refs (while fetch
always accepts all refs). The steps are modified a bit.

1-6. same as before. After calling assign_shallow_commits_to_refs at
   step 6, each shallow commit has a bitmap that marks all refs that
   require it.

7. mark all "ours" shallow commits that are reachable from any
   refs. We will need to do the original step 7 on them later.

8. go over all shallow commit bitmaps, mark refs that require new
   shallow commits.

9. setup a strict temporary shallow file to plug all the holes, even
   if it may cut some of our history short. This file is used by all
   hooks. The hooks could use --shallow-file=$GIT_DIR/shallow to
   overcome this and reach everything in current repo.

10. go over the new refs one by one. For each ref, do the reachability
   test if it needs a shallow commit on the list from step 7. Remove
   it if it's reachable from our refs. Gather all required shallow
   commits, run check_everything_connected() with the new ref, then
   install them to .git/shallow.

This mode is disabled by default and can be turned on with
receive.shallowupdate

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:18 -08:00
Nguyễn Thái Ngọc Duy
5dbd767601 receive/send-pack: support pushing from a shallow clone
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:17 -08:00
Nguyễn Thái Ngọc Duy
48d25cae22 fetch: add --update-shallow to accept refs that update .git/shallow
The same steps are done as in when --update-shallow is not given. The
only difference is we now add all shallow commits in "ours" and
"theirs" to .git/shallow (aka "step 8").

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:17 -08:00
Nguyễn Thái Ngọc Duy
79d3a236c5 upload-pack: make sure deepening preserves shallow roots
When "fetch --depth=N" where N exceeds the longest chain of history in
the source repo, usually we just send an "unshallow" line to the
client so full history is obtained.

When the source repo is shallow we need to make sure to "unshallow"
the current shallow point _and_ "shallow" again when the commit
reaches its shallow bottom in the source repo.

This should fix both cases: large <N> and --unshallow.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:17 -08:00
Nguyễn Thái Ngọc Duy
ad491366de make the sender advertise shallow commits to the receiver
If either receive-pack or upload-pack is called on a shallow
repository, shallow commits (*) will be sent after the ref
advertisement (but before the packet flush), so that the receiver has
the full "shape" of the sender's commit graph. This will be needed for
the receiver to update its .git/shallow if necessary.

This breaks the protocol for all clients trying to push to a shallow
repo, or fetch from one. Which is basically the same end result as
today's "is_repository_shallow() && die()" in receive-pack and
upload-pack. New clients will be made aware of shallow upstream and
can make use of this information.

The sender must send all shallow commits that are sent in the
following pack. It may send more shallow commits than necessary.

upload-pack for example may choose to advertise no shallow commits if
it knows in advance that the pack it's going to send contains no
shallow commits. But upload-pack is the server, so we choose the
cheaper way, send full .git/shallow and let the client deal with it.

Smart HTTP is not affected by this patch. Shallow support on
smart-http comes later separately.

(*) A shallow commit is a commit that terminates the revision
    walker. It is usually put in .git/shallow in order to keep the
    revision walker from going out of bound because there is no
    guarantee that objects behind this commit is available.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-12-10 16:14:16 -08:00
Junio C Hamano
d2446dfd7f Git 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-27 12:14:45 -08:00
Junio C Hamano
039a6d2463 Sync with 1.8.4.4 2013-11-20 11:26:59 -08:00
Junio C Hamano
becb4336cb Git 1.8.4.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-20 11:26:08 -08:00
Marc Branchaud
569fb49fce RelNotes: spelling & grammar fixes
Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-18 14:35:55 -08:00
Jason St. John
0ffa154b5b Correct word usage of "timezone" in "Documentation" directory
"timezone" is two words, not one (i.e. "time zone" is correct).

Correct this in these files:
-- date-formats.txt
-- git-blame.txt
-- git-cvsimport.txt
-- git-fast-import.txt
-- git-svn.txt
-- gitweb.conf.txt
-- rev-list-options.txt

Signed-off-by: Jason St. John <jstjohn@purdue.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-12 10:47:17 -08:00
Junio C Hamano
0ecd94d7d7 Sync with 1.8.4.3 2013-11-08 12:08:43 -08:00
Junio C Hamano
d7d2c87955 Git 1.8.4.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-08 12:06:19 -08:00
Junio C Hamano
867b1c1bf6 Sync with maint
* maint:
  Start preparing for 1.8.4.3
  gitignore.txt: fix documentation of "**" patterns
2013-11-07 14:41:25 -08:00
Junio C Hamano
486b65a4c3 Start preparing for 1.8.4.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-07 14:39:47 -08:00
Junio C Hamano
8edf8c0a9b Merge branch 'sc/doc-howto-dumb-http' into maint
An ancient How-To on serving Git repositories on an HTTP server
lacked a warning that it has been mostly superseded with more
modern way.

* sc/doc-howto-dumb-http:
  doc/howto: warn about (dumb)http server document being too old
2013-11-07 14:37:39 -08:00
Junio C Hamano
5022b58e58 Merge branch 'vd/doc-unpack-objects' into maint
The synopsis section of "git unpack-objects" documentation has been
clarified a bit.

* vd/doc-unpack-objects:
  Documentation: "pack-file" is not literal in unpack-objects
  Documentation: restore a space in unpack-objects usage
2013-11-07 14:37:36 -08:00
Karsten Blees
8447dc8904 gitignore.txt: fix documentation of "**" patterns
"**" means bold in ASCIIDOC, so we need to escape it.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-07 10:49:52 -08:00
Junio C Hamano
152a9c17a8 Merge branch 'fc/trivial'
A random collection of style fixes and minor doc updates.

* fc/trivial:
  setup: trivial style fixes
  run-command: trivial style fixes
  diff: trivial style fix
  revision: trivial style fixes
  pretty: trivial style fix
  describe: trivial style fixes
  transport-helper: trivial style fix
  sha1-name: trivial style cleanup
  branch: trivial style fix
  revision: add missing include
  doc/pull: clarify the illustrations
  t: replace pulls with merges
  merge: simplify ff-only option
2013-11-06 14:34:43 -08:00
Junio C Hamano
f26f72de15 Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-04 15:05:08 -08:00
Junio C Hamano
ea065926b3 Merge branch 'vd/doc-unpack-objects'
* vd/doc-unpack-objects:
  Documentation: "pack-file" is not literal in unpack-objects
  Documentation: restore a space in unpack-objects usage
2013-11-04 14:58:16 -08:00
Junio C Hamano
68d5fbe285 Merge branch 'sc/doc-howto-dumb-http'
* sc/doc-howto-dumb-http:
  doc/howto: warn about (dumb)http server document being too old
2013-11-04 14:57:57 -08:00
Vivien Didelot
61e2e22f60 Documentation: "pack-file" is not literal in unpack-objects
Make it clear that "pack-file" is not to be spelled as is in the
unpack-objects usage.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-01 09:13:35 -07:00
Junio C Hamano
aa2706463f Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-11-01 08:14:52 -07:00
Junio C Hamano
c9bb7d040a Merge branch 'rs/web-browse-xdg-open'
* rs/web-browse-xdg-open:
  web--browse: Add support for xdg-open
2013-11-01 07:38:56 -07:00
Junio C Hamano
60e779adaa Merge branch 'jk/pack-corruption-post-mortem'
* jk/pack-corruption-post-mortem:
  howto: add article on recovering a corrupted object
2013-11-01 07:38:46 -07:00
Vivien Didelot
724249862e Documentation: restore a space in unpack-objects usage
The commit 87b7b84 removed a space in the unpack-objects usage, which
makes the synopsis a bit confusing. This patch simply restores it.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-31 15:11:28 -07:00
Junio C Hamano
5a3fd6afd4 doc/pull: clarify the illustrations
The second illustration that shows the history after "git pull"
spelled the remote-tracking branch with "remotes/" prefix, which
is not necessary.  Drop it.

To match the assumption that a remote-tracking branch is used to
keep track of the advancement of the master at the origin, update
the first illustration that shows the history before "git pull"
to show the distinction between the master currently at origin and
the stale origin/master remote-tracking branch.

Noticed-by: Felipe Contreras <felipe.contreras@gmail.com>
Helped-by: Max Horn <max@quendi.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-31 13:45:29 -07:00
Rüdiger Sonderfeld
6ca0f80b6c web--browse: Add support for xdg-open
xdg-open is a tool similar to git-web--browse.  It opens a file or URL in the
user's preferred application.  It could probably be made default at least on
Linux with a graphical environment.

Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-30 13:54:15 -07:00
Junio C Hamano
42817b96b1 Git 1.8.5-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-30 12:17:47 -07:00
Junio C Hamano
0040d6eb23 Merge branch 'tr/gitk-doc-update'
* tr/gitk-doc-update:
  Documentation: revamp gitk(1)
2013-10-30 12:10:50 -07:00
Junio C Hamano
02882bc834 Merge branch 'sb/git-svn-docs-indent-with-ht'
* sb/git-svn-docs-indent-with-ht:
  git-svn docs: Use tabs consistently within the ascii doc
2013-10-30 12:10:34 -07:00
Sitaram Chamarty
6d52bc318b doc/howto: warn about (dumb)http server document being too old
Describe when it is still applicable, and tell people where to go
for most normal cases.

Signed-off-by: Sitaram Chamarty <sitaram@atc.tcs.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-28 13:24:56 -07:00
Junio C Hamano
0d6cf2471f Almost -rc0 for 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-28 10:53:03 -07:00
Junio C Hamano
cfd10568b0 Sync with v1.8.4.2 2013-10-28 10:51:53 -07:00
Junio C Hamano
f43bc33e44 Merge branch 'sb/repack-in-c'
Finishing touches to update documentation.

* sb/repack-in-c:
  Reword repack documentation to no longer state it's a script
2013-10-28 10:43:41 -07:00
Junio C Hamano
dcb11cca50 Git 1.8.4.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-28 10:21:29 -07:00
Jeff King
41dfbb2dbe howto: add article on recovering a corrupted object
This is an asciidoc-ified version of a corruption post-mortem sent to
the git list. It complements the existing howto article, since it covers
a case where the object couldn't be easily recreated or copied from
elsewhere.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-25 14:55:30 -07:00
Junio C Hamano
3d092bfc6f Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-23 13:37:27 -07:00
Junio C Hamano
ea21efc740 Sync with 'maint' 2013-10-23 13:36:57 -07:00
Junio C Hamano
ca462804c6 Almost 1.8.4.2 ;-)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-23 13:34:39 -07:00
Junio C Hamano
74051fa805 Merge branch 'jh/checkout-auto-tracking' into maint
"git branch --track" had a minor regression in v1.8.3.2 and later
that made it impossible to base your local work on anything but a
local branch of the upstream repository you are tracking from.

* jh/checkout-auto-tracking:
  t3200: fix failure on case-insensitive filesystems
  branch.c: Relax unnecessary requirement on upstream's remote ref name
  t3200: Add test demonstrating minor regression in 41c21f2
  Refer to branch.<name>.remote/merge when documenting --track
  t3200: Minor fix when preparing for tracking failure
  t2024: Fix &&-chaining and a couple of typos
2013-10-23 13:32:50 -07:00
Junio C Hamano
f92f068e76 Merge branch 'po/dot-url'
Explain how '.' can be used to refer to the "current repository"
in the documentation.

* po/dot-url:
  doc/cli: make "dot repository" an independent bullet point
  config doc: update dot-repository notes
  doc: command line interface (cli) dot-repository dwimmery
2013-10-23 13:21:48 -07:00
Junio C Hamano
4197361e39 Merge branch 'mg/more-textconv'
Make "git grep" and "git show" pay attention to --textconv when
dealing with blob objects.

* mg/more-textconv:
  grep: honor --textconv for the case rev:path
  grep: allow to use textconv filters
  t7008: demonstrate behavior of grep with textconv
  cat-file: do not die on --textconv without textconv filters
  show: honor --textconv for blobs
  diff_opt: track whether flags have been set explicitly
  t4030: demonstrate behavior of show with textconv
2013-10-23 13:21:31 -07:00
Stefan Beller
3c123fb8b8 git-svn docs: Use tabs consistently within the ascii doc
While I can understand 4 or 7 white spaces are fancy, we'd rather want
to use tabs throughout the whole document.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-22 13:27:02 -07:00
Thomas Rast
744db23c2d Documentation: revamp gitk(1)
The gitk manpage suffers from a bit of neglect: there have been only
minor changes, and no changes to the set of options documented, since
a2df1fb (Documentation: New GUI configuration and command-line
options., 2008-11-13).  In the meantime, the set of rev-list options
has been expanded several times by options that are useful in gitk,
e.g., --ancestry-path and the optional globbing for --branches, --tags
and --remotes.

Restructure and expand the manpage.  List more options that the author
perceives as useful, while remaining somewhat terse.  Ideally the user
should not have to look up any of the references, but we dispense with
precise explanations in some places and refer to git-log(1) instead.

Note that the options that have an easy GUI equivalent (e.g.,
--word-diff, -S, --grep) are deliberately not listed even in the cases
where they simply fill in the GUI fields.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-22 11:23:31 -07:00
Stefan Beller
35c141768c Reword repack documentation to no longer state it's a script
This updates the documentation regarding the changes introduced
by a1bbc6c01 (2013-09-15, repack: rewrite the shell script in C).

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-22 11:17:15 -07:00
Junio C Hamano
db9bdfbeb0 Update draft release notes to 1.8.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-10-18 13:53:52 -07:00