Commit Graph

7538 Commits

Author SHA1 Message Date
Michael Haggerty
2db60670ba rev-parse: clarify documentation for the --verify option
The old version could be read to mean that the argument has to refer
to a valid object, but that is incorrect:

* the object is not necessarily read (e.g., to check for corruption)

* if the argument is a 40-digit string of hex digits, then it is
  accepted whether or not is is the name of an existing object.

So reword the explanation to be less ambiguous.

Also fix the examples involving --verify: to be sure that the argument
refers to a commit (rather than some other kind of object), the
argument has to be suffixed with "^{commit}".  This trick is not
possible in the example involving --default, so don't imply that it is
exactly the same as the previous example.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-02 08:41:17 -07:00
Junio C Hamano
cc3e4eba72 Update draft release notes to 1.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-01 09:24:56 -07:00
Junio C Hamano
b442731638 Merge branch 'maint'
* maint:
  Update draft release notes to 1.8.2.1
2013-04-01 09:23:30 -07:00
Junio C Hamano
40a0f842da Update draft release notes to 1.8.2.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-01 09:23:05 -07:00
Junio C Hamano
432930bd33 Merge branch 'yd/doc-is-in-asciidoc' into maint
* yd/doc-is-in-asciidoc:
  CodingGuidelines: our documents are in AsciiDoc
2013-04-01 09:19:40 -07:00
Junio C Hamano
ab24e7521c Merge branch 'yd/doc-merge-annotated-tag' into maint
* yd/doc-merge-annotated-tag:
  Documentation: merging a tag is a special case
2013-04-01 09:19:37 -07:00
Junio C Hamano
fec274b01f Merge branch 'tb/document-status-u-tradeoff' into maint
* tb/document-status-u-tradeoff:
  status: advise to consider use of -u when read_directory takes too long
  git status: document trade-offs in choosing parameters to the -u option
2013-04-01 09:19:30 -07:00
Junio C Hamano
41e603af58 Merge branch 'da/downcase-u-in-usage' into maint
* da/downcase-u-in-usage:
  contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
  contrib/examples/git-remote.perl: use a lowercase "usage:" string
  tests: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  Documentation/user-manual.txt: use a lowercase "usage:" string
  templates/hooks--update.sample: use a lowercase "usage:" string
  contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
  contrib/examples: use a lowercase "usage:" string
  contrib/fast-import/import-zips.py: use spaces instead of tabs
  contrib/fast-import/import-zips.py: fix broken error message
  contrib/fast-import: use a lowercase "usage:" string
  contrib/credential: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsexportcommit: use a lowercase "usage:" string
  git-archimport: use a lowercase "usage:" string
  git-merge-one-file: use a lowercase "usage:" string
  git-relink: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  git-sh-setup: use a lowercase "usage:" string
2013-04-01 09:19:04 -07:00
Sebastian Götte
e290c4b944 pretty printing: extend %G? to include 'N' and 'U'
Expand %G? in pretty format strings to 'N' in case of no GPG signature
and 'U' in case of a good but untrusted GPG signature in addition to
the previous 'G'ood and 'B'ad. This eases writing anyting parsing
git-log output.

Signed-off-by: Sebastian Götte <jaseg@physik-pool.tu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-31 22:38:53 -07:00
Sebastian Götte
eb307ae7bb merge/pull Check for untrusted good GPG signatures
When --verify-signatures is specified, abort the merge in case a good
GPG signature from an untrusted key is encountered.

Signed-off-by: Sebastian Götte <jaseg@physik-pool.tu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-31 22:38:49 -07:00
Sebastian Götte
efed002249 merge/pull: verify GPG signatures of commits being merged
When --verify-signatures is specified on the command-line of git-merge
or git-pull, check whether the commits being merged have good gpg
signatures and abort the merge in case they do not. This allows e.g.
auto-deployment from untrusted repo hosts.

Signed-off-by: Sebastian Götte <jaseg@physik-pool.tu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-31 19:23:59 -07:00
Junio C Hamano
a6a3f2cc07 peel_onion(): teach $foo^{object} peeler
A string that names an object can be suffixed with ^{type} peeler to
say "I have this object name; peel it until you get this type. If
you cannot do so, it is an error".  v1.8.2^{commit} asks for a commit
that is pointed at an annotated tag v1.8.2; v1.8.2^{tree} unwraps it
further to the top-level tree object.  A special suffix ^{} (i.e. no
type specified) means "I do not care what it unwraps to; just peel
annotated tag until you get something that is not a tag".

When you have a random user-supplied string, you can turn it to a
bare 40-hex object name, and cause it to error out if such an object
does not exist, with:

	git rev-parse --verify "$userstring^{}"

for most objects, but this does not yield the tag object name when
$userstring refers to an annotated tag.

Introduce a new suffix, ^{object}, that only makes sure the given
name refers to an existing object.  Then

	git rev-parse --verify "$userstring^{object}"

becomes a way to make sure $userstring refers to an existing object.

This is necessary because the plumbing "rev-parse --verify" is only
about "make sure the argument is something we can feed to get_sha1()
and turn it into a raw 20-byte object name SHA-1" and is not about
"make sure that 20-byte object name SHA-1 refers to an object that
exists in our object store".  When the given $userstring is already
a 40-hex, by definition "rev-parse --verify $userstring" can turn it
into a raw 20-byte object name.  With "$userstring^{object}", we can
make sure that the 40-hex string names an object that exists in our
object store before "--verify" kicks in.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-31 15:57:42 -07:00
Junio C Hamano
f893be2712 Merge branch 'yd/doc-is-in-asciidoc'
* yd/doc-is-in-asciidoc:
  CodingGuidelines: our documents are in AsciiDoc
2013-03-28 14:38:20 -07:00
Junio C Hamano
f1c8d8338f Merge branch 'yd/doc-merge-annotated-tag'
Document the 1.7.9 feature to merge a signed tag and keep that in
the mergetag header in the resulting commit better.

* yd/doc-merge-annotated-tag:
  Documentation: merging a tag is a special case
2013-03-28 14:38:17 -07:00
Junio C Hamano
18973d8ac9 Merge branch 'jk/difftool-dir-diff-edit-fix'
"git difftool --dir-diff" made symlinks to working tree files when
preparing a temporary directory structure, so that accidental edits
of these files in the difftool are reflected back to the working
tree, but the logic to decide when to do so was not quite right.

* jk/difftool-dir-diff-edit-fix:
  difftool --dir-diff: symlink all files matching the working tree
  difftool: avoid double slashes in symlink targets
  git-difftool(1): fix formatting of --symlink description
2013-03-28 14:37:22 -07:00
Junio C Hamano
d8355e5eae Merge branch 'maint'
* maint:
  git help config: s/insn/instruction/
2013-03-28 14:34:55 -07:00
Junio C Hamano
5e950c2199 Merge branch 'maint-1.8.1' into maint
* maint-1.8.1:
  git help config: s/insn/instruction/
2013-03-28 14:34:07 -07:00
Thomas Rast
13b8f68c1f log -L: :pattern:file syntax to find by funcname
This new syntax finds a funcname matching /pattern/, and then takes from there
up to (but not including) the next funcname.  So you can say

  git log -L:main:main.c

and it will dig up the main() function and show its line-log, provided
there are no other funcnames matching 'main'.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-28 10:30:04 -07:00
Thomas Rast
12da1d1f6f Implement line-history search (git log -L)
This is a rewrite of much of Bo's work, mainly in an effort to split
it into smaller, easier to understand routines.

The algorithm is built around the struct range_set, which encodes a
series of line ranges as intervals [a,b).  This is used in two
contexts:

* A set of lines we are tracking (which will change as we dig through
  history).
* To encode diffs, as pairs of ranges.

The main routine is range_set_map_across_diff().  It processes the
diff between a commit C and some parent P.  It determines which diff
hunks are relevant to the ranges tracked in C, and computes the new
ranges for P.

The algorithm is then simply to process history in topological order
from newest to oldest, computing ranges and (partial) diffs.  At
branch points, we need to merge the ranges we are watching.  We will
find that many commits do not affect the chosen ranges, and mark them
TREESAME (in addition to those already filtered by pathspec limiting).
Another pass of history simplification then gets rid of such commits.

This is wired as an extra filtering pass in the log machinery.  This
currently only reduces code duplication, but should allow for other
simplifications and options to be used.

Finally, we hook a diff printer into the output chain.  Ideally we
would wire directly into the diff logic, to optionally use features
like word diff.  However, that will require some major reworking of
the diff chain, so we completely replace the output with our own diff
for now.

As this was a GSoC project, and has quite some history by now, many
people have helped.  In no particular order, thanks go to

  Jakub Narebski <jnareb@gmail.com>
  Jens Lehmann <Jens.Lehmann@web.de>
  Jonathan Nieder <jrnieder@gmail.com>
  Junio C Hamano <gitster@pobox.com>
  Ramsay Jones <ramsay@ramsay1.demon.co.uk>
  Will Palmer <wmpalmer@gmail.com>

Apologies to everyone I forgot.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-28 10:29:22 -07:00
Bo Yang
25ed3412f8 Refactor parse_loc
We want to use the same style of -L n,m argument for 'git log -L' as
for git-blame.  Refactor the argument parsing of the range arguments
from builtin/blame.c to the (new) file that will hold the 'git log -L'
logic.

To accommodate different data structures in blame and log -L, the file
contents are abstracted away; parse_range_arg takes a callback that it
uses to get the contents of a line of the (notional) file.

The new test is for a case that made me pause during debugging: the
'blame -L with invalid end' test was the only one that noticed an
outright failure to parse the end *at all*.  So make a more explicit
test for that.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-28 10:28:41 -07:00
Matthias Krüger
3322ad4284 git help config: s/insn/instruction/
"insn" appears to be an in-code abbreviation and should not appear
in manual/help pages.

Signed-off-by: Matthias Krüger <matthias.krueger@famsik.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-28 08:53:47 -07:00
Junio C Hamano
8617715cc0 Merge branch 'maint'
* maint:
  More fixes for 1.8.2.1
  merge-tree: fix typo in merge-tree.c::unresolved
  git-commit doc: describe use of multiple `-m` options
  git-pull doc: fix grammo ("conflicts" is plural)
2013-03-27 10:58:07 -07:00
Junio C Hamano
9a82efd0d2 More fixes for 1.8.2.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-27 10:57:57 -07:00
Junio C Hamano
d011ab4312 Merge branch 'maint-1.8.1' into maint
* maint-1.8.1:
  merge-tree: fix typo in merge-tree.c::unresolved
  git-commit doc: describe use of multiple `-m` options
  git-pull doc: fix grammo ("conflicts" is plural)
2013-03-27 10:51:10 -07:00
Christian Helmuth
6bf6366cc6 git-commit doc: describe use of multiple -m options
The text is copied from Documentation/git-tag.txt.

Signed-off-by: Christian Helmuth <christian.helmuth@genode-labs.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-27 09:32:02 -07:00
Mihai Capotă
38ef8a76e7 git-pull doc: fix grammo ("conflicts" is plural)
Signed-off-by: Mihai Capotă <mihai@mihaic.ro>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-27 09:30:54 -07:00
Junio C Hamano
2bba2f0e65 More topics from the second batch for 1.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-26 13:16:11 -07:00
Junio C Hamano
183f88018a Merge branch 'kb/p4merge'
Adjust the order mergetools feeds the files to the p4merge backend
to match the p4 convention.

* kb/p4merge:
  merge-one-file: force content conflict for "both sides added" case
  git-merge-one-file: send "ERROR:" messages to stderr
  git-merge-one-file: style cleanup
  merge-one-file: remove stale comment
  mergetools/p4merge: create a base if none available
  mergetools/p4merge: swap LOCAL and REMOTE
2013-03-26 13:15:24 -07:00
Junio C Hamano
7f95f2dce0 Merge branch 'maint'
* maint:
  More corrections for 1.8.2.1
  Correct the docs about GIT_SSH.
2013-03-26 13:14:45 -07:00
Junio C Hamano
3bbbf18d71 More corrections for 1.8.2.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-26 13:14:20 -07:00
Junio C Hamano
f4ccd9f1bd Merge branch 'maint-1.8.1' into maint
* maint-1.8.1:
  Correct the docs about GIT_SSH.
2013-03-26 13:14:11 -07:00
Junio C Hamano
f4bdb255f6 Merge branch 'jc/maint-push-refspec-default-doc' into maint
* jc/maint-push-refspec-default-doc:
  Documentation/git-push: clarify the description of defaults
2013-03-26 12:40:14 -07:00
Junio C Hamano
273ca55907 Merge branch 'wk/user-manual-literal-format' into maint
* wk/user-manual-literal-format:
  user-manual: Standardize backtick quoting
2013-03-26 12:40:11 -07:00
Junio C Hamano
c17866d7b6 Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint
* gp/avoid-explicit-mention-of-dot-git-refs:
  Fix ".git/refs" stragglers
2013-03-26 12:40:04 -07:00
Dan Bornstein
e39c695d87 Correct the docs about GIT_SSH.
In particular, it can get called with four arguments if you happen to
be referring to a repo using the ssh:// scheme with a non-default port
number.

Signed-off-by: Dan Bornstein <danfuzz@milk.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-26 07:53:13 -07:00
Brad King
df45cb3ea3 commit-tree: document -S option consistently
Commit ba3c69a9 (commit: teach --gpg-sign option, 2011-10-05) added the
-S option but documented it in the command usage without indicating that
the value is optional and forgot to mention it in the manpage.  Later
commit 098bbdc3 (Add -S, --gpg-sign option to manpage of "git commit",
2012-10-21) documented the option in the porcelain manpage.

Use wording from the porcelain manpage to document the option in the
plumbing manpage.  Also update the commit-tree usage summary to indicate
that the -S value is optional to be consistent with the manpage and with
the implementation.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-25 15:01:22 -07:00
Junio C Hamano
7632cd2744 Second wave of topics toward 1.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-25 14:08:00 -07:00
Junio C Hamano
55f6fbef3d Merge branch 'jc/push-follow-tag'
The new "--follow-tags" option tells "git push" to push relevant
annotated tags when pushing branches out.

* jc/push-follow-tag:
  push: --follow-tags
  commit.c: use clear_commit_marks_many() in in_merge_bases_many()
  commit.c: add in_merge_bases_many()
  commit.c: add clear_commit_marks_many()
2013-03-25 14:00:41 -07:00
Junio C Hamano
b03b41e24c Merge branch 'jl/submodule-deinit'
There was no Porcelain way to say "I no longer am interested in
this submodule", once you express your interest in a submodule with
"submodule init".  "submodule deinit" is the way to do so.

* jl/submodule-deinit:
  submodule: add 'deinit' command
2013-03-25 14:00:29 -07:00
Junio C Hamano
cd04c522bd Merge branch 'maint'
* maint:
  Start preparing for 1.8.2.1
  transport.c: help gcc 4.6.3 users by squelching compiler warning
2013-03-25 13:52:25 -07:00
Junio C Hamano
1252f8b29f Start preparing for 1.8.2.1
... at the same time, preparation for 1.8.1.6 also has started ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-25 13:51:13 -07:00
Junio C Hamano
f7b1ad870c Merge branch 'maint-1.8.1' into maint
* maint-1.8.1:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage
  git-compat-util.h: Provide missing netdb.h definitions
  describe: Document --match pattern format
  Documentation/githooks: Explain pre-rebase parameters
  update-index: list supported idx versions and their features
  diff-options: unconfuse description of --color
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places
2013-03-25 13:46:42 -07:00
Junio C Hamano
a12816b7dc Merge branch 'tk/doc-filter-branch' into maint-1.8.1
Add an example use of "--env-filter" in "filter-branch"
documentation.

* tk/doc-filter-branch:
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage
2013-03-25 13:45:53 -07:00
Junio C Hamano
402c2a7ea1 Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1
The "--match=<pattern>" argument "git describe" takes uses glob
pattern but it wasn't obvious from the documentation.

* gp/describe-match-uses-glob-pattern:
  describe: Document --match pattern format
2013-03-25 13:45:33 -07:00
Junio C Hamano
a7b6ad5e90 Merge branch 'nd/doc-index-format' into maint-1.8.1
The v4 index format was not documented.

* nd/doc-index-format:
  update-index: list supported idx versions and their features
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places
2013-03-25 13:45:26 -07:00
Junio C Hamano
8ddd9c18f3 Merge branch 'wk/doc-pre-rebase' into maint-1.8.1
The arguments given to pre-rebase hook were not documented.

* wk/doc-pre-rebase:
  Documentation/githooks: Explain pre-rebase parameters
2013-03-25 13:45:14 -07:00
Junio C Hamano
82b955c513 Merge branch 'jc/color-diff-doc' into maint-1.8.1
The "--color=<when>" argument to the commands in the diff family
was described poorly.

* jc/color-diff-doc:
  diff-options: unconfuse description of --color
2013-03-25 13:44:53 -07:00
Junio C Hamano
77c72780ed Documentation: merging a tag is a special case
When asking Git to merge a tag (such as a signed tag or annotated tag),
it will always create a merge commit even if fast-forward was possible.
It's like having --no-ff present on the command line.

It's a difference from the default behavior described in git-merge.txt.
It should be documented as an exception of "FAST-FORWARD MERGE" section
and "--ff" option description.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-21 15:47:38 -07:00
Junio C Hamano
7b592fadf1 Update draft release notes to 1.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-21 15:29:42 -07:00
Junio C Hamano
bb9f2aecf0 CodingGuidelines: our documents are in AsciiDoc
Before talking about notations such as optional [--option] enclosed
in brackets, state that the documents are in AsciiDoc and processed
into other formats.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-21 14:17:32 -07:00
Junio C Hamano
95ef66df43 Merge branch 'mn/send-email-works-with-credential'
Hooks the credential system to send-email.

* mn/send-email-works-with-credential:
  git-send-email: use git credential to obtain password
  Git.pm: add interface for git credential command
  Git.pm: allow pipes to be closed prior to calling command_close_bidi_pipe
  Git.pm: refactor command_close_bidi_pipe to use _cmd_close
  Git.pm: fix example in command_close_bidi_pipe documentation
  Git.pm: allow command_close_bidi_pipe to be called as method
2013-03-21 14:03:02 -07:00
Junio C Hamano
0f6875dbe2 Merge branch 'mg/gpg-interface-using-status'
Call "gpg" using the right API when validating the signature on
tags.

* mg/gpg-interface-using-status:
  pretty: make %GK output the signing key for signed commits
  pretty: parse the gpg status lines rather than the output
  gpg_interface: allow to request status return
  log-tree: rely upon the check in the gpg_interface
  gpg-interface: check good signature in a reliable way
2013-03-21 14:02:55 -07:00
Junio C Hamano
54797b98b8 Merge branch 'bc/commit-complete-lines-given-via-m-option'
'git commit -m "$str"' when $str was already terminated with a LF
now avoids adding an extra LF to the message.

* bc/commit-complete-lines-given-via-m-option:
  Documentation/git-commit.txt: rework the --cleanup section
  git-commit: only append a newline to -m mesg if necessary
  t7502: demonstrate breakage with a commit message with trailing newlines
  t/t7502: compare entire commit message with what was expected
2013-03-21 14:02:37 -07:00
Junio C Hamano
f5715de54a Merge branch 'nd/count-garbage'
"git count-objects -v" did not count leftover temporary packfiles
and other kinds of garbage.

* nd/count-garbage:
  count-objects: report how much disk space taken by garbage files
  count-objects: report garbage files in pack directory too
  sha1_file: reorder code in prepare_packed_git_one()
  git-count-objects.txt: describe each line in -v output
2013-03-21 14:02:34 -07:00
Junio C Hamano
e4e1c54990 Merge branch 'jc/fetch-raw-sha1'
Allows requests to fetch objects at any tip of refs (including
hidden ones).  It seems that there may be use cases even outside
Gerrit (e.g. $gmane/215701).

* jc/fetch-raw-sha1:
  fetch: fetch objects by their exact SHA-1 object names
  upload-pack: optionally allow fetching from the tips of hidden refs
  fetch: use struct ref to represent refs to be fetched
  parse_fetch_refspec(): clarify the codeflow a bit
2013-03-21 14:02:27 -07:00
Junio C Hamano
5d04924e19 Merge branch 'tb/document-status-u-tradeoff'
Suggest users to look into using--untracked=no option when "git
status" takes too long.

* tb/document-status-u-tradeoff:
  status: advise to consider use of -u when read_directory takes too long
  git status: document trade-offs in choosing parameters to the -u option
2013-03-21 14:02:10 -07:00
Junio C Hamano
03da85b954 Merge branch 'jn/shell-disable-interactive'
When the interactive access to git-shell is not enabled, we issue a
message meant to help the system admininstrator to enable it. Add
an explicit way to help the end users who connect to the service by
issuing custom messages to refuse such an access.

* jn/shell-disable-interactive:
  shell: new no-interactive-login command to print a custom message
  shell doc: emphasize purpose and security model
2013-03-21 14:01:53 -07:00
Junio C Hamano
858c2e050f Merge branch 'jc/maint-push-refspec-default-doc'
Clarify in the documentation "what" gets pushed to "where" when the
command line to "git push" does not say these explicitly.

* jc/maint-push-refspec-default-doc:
  Documentation/git-push: clarify the description of defaults
2013-03-21 14:01:48 -07:00
Junio C Hamano
7b9a41987a The first wave of topics for 1.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-19 12:30:28 -07:00
Junio C Hamano
dbe71f9e24 Merge branch 'tk/doc-filter-branch'
* tk/doc-filter-branch:
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage
2013-03-19 12:20:50 -07:00
Junio C Hamano
118f542e92 Merge branch 'wk/user-manual-literal-format'
* wk/user-manual-literal-format:
  user-manual: Standardize backtick quoting
2013-03-19 12:20:44 -07:00
Junio C Hamano
3ae5d5016e Merge branch 'gp/describe-match-uses-glob-pattern'
The syntax of the pattern given to the "--match=<pattern>" argument
to "git describe" was not documented to be a glob.

* gp/describe-match-uses-glob-pattern:
  describe: Document --match pattern format
2013-03-19 12:16:31 -07:00
Junio C Hamano
9adf272a38 Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs'
* gp/avoid-explicit-mention-of-dot-git-refs:
  Fix ".git/refs" stragglers
2013-03-19 12:16:22 -07:00
Junio C Hamano
c2bf648b84 Merge branch 'da/downcase-u-in-usage'
* da/downcase-u-in-usage:
  contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
  contrib/examples/git-remote.perl: use a lowercase "usage:" string
  tests: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  Documentation/user-manual.txt: use a lowercase "usage:" string
  templates/hooks--update.sample: use a lowercase "usage:" string
  contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
  contrib/examples: use a lowercase "usage:" string
  contrib/fast-import/import-zips.py: use spaces instead of tabs
  contrib/fast-import/import-zips.py: fix broken error message
  contrib/fast-import: use a lowercase "usage:" string
  contrib/credential: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsexportcommit: use a lowercase "usage:" string
  git-archimport: use a lowercase "usage:" string
  git-merge-one-file: use a lowercase "usage:" string
  git-relink: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  git-sh-setup: use a lowercase "usage:" string
2013-03-19 12:15:54 -07:00
Junio C Hamano
865e99b5fd Merge branch 'nd/doc-index-format'
Update the index format documentation to mention the v4 format.

* nd/doc-index-format:
  update-index: list supported idx versions and their features
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places
2013-03-19 12:15:14 -07:00
Junio C Hamano
f944ec9aa5 Merge branch 'wk/doc-pre-rebase'
* wk/doc-pre-rebase:
  Documentation/githooks: Explain pre-rebase parameters
2013-03-19 12:14:05 -07:00
Junio C Hamano
3e1b08bbf5 Merge branch 'jc/color-diff-doc'
The --color[=<when>] option to the diff family was documented in a
confusing way.

* jc/color-diff-doc:
  diff-options: unconfuse description of --color
2013-03-19 12:11:32 -07:00
Junio C Hamano
048d4d98b3 Start the post 1.8.2 cycle
Again, tentatively let's call this cycle 1.8.3.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-18 15:01:19 -07:00
Junio C Hamano
bb79a827a2 Merge branch 'maint'
* maint:
  rev-parse: clarify documentation of $name@{upstream} syntax
  sha1_name: pass object name length to diagnose_invalid_sha1_path()
  Makefile: keep LIB_H entries together and sorted
2013-03-17 00:11:11 -07:00
Kacper Kornet
47e329ef7c rev-parse: clarify documentation of $name@{upstream} syntax
"git rev-parse" interprets string in string@{upstream} as a name of
a branch not a ref. For example, refs/heads/master@{upstream} looks
for an upstream branch that is merged by git-pull to ref
refs/heads/refs/heads/master not to refs/heads/master.

However the documentation could mislead a user to believe that the
string is interpreted as ref.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-17 00:10:59 -07:00
Nguyễn Thái Ngọc Duy
6a38ef2ced status: advise to consider use of -u when read_directory takes too long
Introduce advice.statusUoption to suggest considering use of -u to
strike different trade-off when it took more than 2 seconds to
enumerate untracked/ignored files.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-16 21:44:58 -07:00
Junio C Hamano
5823eb2b28 git status: document trade-offs in choosing parameters to the -u option
In some repostories users experience that "git status" command takes
long time.  The command spends some time searching the file system
for untracked files.

Explain the trade-off struck by the default choice of `normal` to
help users make an appropriate choice better, before talking about
the configuration variable.

Inspired by Torsten Bögershausen.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-15 12:24:56 -07:00
John Keeping
02c56314aa difftool --dir-diff: symlink all files matching the working tree
Some users like to edit files in their diff tool when using "git
difftool --dir-diff --symlink" to compare against the working tree but
difftool currently only created symlinks when a file contains unstaged
changes.

Change this behaviour so that symlinks are created whenever the
right-hand side of the comparison has the same SHA1 as the file in the
working tree.

Note that textconv filters are handled in the same way as by git-diff
and if a clean filter is not the inverse of its smudge filter we already
get a null SHA1 from "diff --raw" and will symlink the file without
going through the new hash-object based check.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-14 14:33:06 -07:00
John Keeping
8aa10d4a5b git-difftool(1): fix formatting of --symlink description
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-14 14:29:02 -07:00
Junio C Hamano
239222f587 Git 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-13 11:28:08 -07:00
Kevin Bracey
4549162e8d mergetools/p4merge: create a base if none available
Originally, with no base, Git gave P4Merge $LOCAL as a dummy base:

   p4merge "$LOCAL" "$LOCAL" "$REMOTE" "$MERGED"

Commit 0a0ec7bd changed this to:

   p4merge "empty file" "$LOCAL" "$REMOTE" "$MERGED"

to avoid the problem of being unable to save in some circumstances with
similar inputs.

Unfortunately this approach produces much worse results on differing
inputs. P4Merge really regards the blank file as the base, and once you
have just a couple of differences between the two branches you end up
with one a massive full-file conflict. The 3-way diff is not readable,
and you have to invoke "difftool MERGE_HEAD HEAD" manually to get a
useful view.

The original approach appears to have invoked special 2-way merge
behaviour in P4Merge that occurs only if the base filename is "" or
equal to the left input.  You get a good visual comparison, and it does
not auto-resolve differences. (Normally if one branch matched the base,
it would autoresolve to the other branch).

But there appears to be no way of getting this 2-way behaviour and being
able to reliably save. Having base==left appears to be triggering other
assumptions. There are tricks the user can use to force the save icon
on, but it's not intuitive.

So we now follow a suggestion given in the original patch's discussion:
generate a virtual base, consisting of the lines common to the two
branches. This is the same as the technique used in resolve and octopus
merges, so we relocate that code to a shared function.

Note that if there are no differences at the same location, this
technique can lead to automatic resolution without conflict, combining
everything from the 2 files.  As with the other merges using this
technique, we assume the user will inspect the result before saving.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Reviewed-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-13 10:46:07 -07:00
Junio C Hamano
ca8df3df8c Merge branch 'gp/add-u-A-documentation'
* gp/add-u-A-documentation:
  add: Clarify documentation of -A and -u
2013-03-11 08:11:38 -07:00
Jonathan Nieder
35297089e5 shell: new no-interactive-login command to print a custom message
If I disable git-shell's interactive mode by removing the
~/git-shell-commands directory, attempts to ssh in to the service
produce a message intended for the administrator:

	$ ssh git@myserver
	fatal: Interactive git shell is not enabled.
	hint: ~/git-shell-commands should exist and have read and execute access.
	$

That is helpful for the new admin who is wondering "What? Why isn't
the git-shell I just set up working?", but once the site setup is
complete, it would be better to give the user a friendly hint that she
is on the right track, like GitHub does.

	Hi <username>! You've successfully authenticated, but
	GitHub does not provide shell access.

An appropriate greeting might even include more complex dynamic
information, like gitolite's list of repositories the user has access
to.  Add support for a ~/git-shell-commands/no-interactive-login
command that generates an arbitrary greeting.  When the user tries to
log in:

 * If the file ~/git-shell-commands/no-interactive-login exists,
   run no-interactive-login to let the server say what it likes,
   then hang up.

 * Otherwise, if ~/git-shell-commands/ is present, start an
   interactive read-eval-print loop.

 * Otherwise, print the usual configuration hint and hang up.

Reported-by: Ethan Reesor <firelizzard@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-09 23:21:35 -08:00
Jonathan Nieder
cdd9b3c96c shell doc: emphasize purpose and security model
The original git-shell(1) manpage emphasized that the shell supports
only git transport commands.  As the shell gained features, that
emphasis and focus in the manual has been lost.  Bring it back by
splitting the manpage into a few short sections and fleshing out each:

 - SYNOPSIS, describing how the shell gets used in practice
 - DESCRIPTION, which gives an overview of the purpose and guarantees
   provided by this restricted shell
 - COMMANDS, listing supported commands and restrictions on the
   arguments they accept
 - INTERACTIVE USE, describing the interactive mode

Also add a "see also" section with related reading.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-09 20:59:27 -08:00
Junio C Hamano
45c45e300b git add: start preparing for "git add <pathspec>..." to default to "-A"
When "git add subdir/" is run without "-u" or "-A" option, e.g.

    $ edit subdir/x
    $ create subdir/y
    $ rm subdir/z
    $ git add subdir/

the command does not notice removal of paths (e.g. subdir/z) from
the working tree.  This sometimes confuses new people, as arguably
"git add" is told to record the current state of "subdir/" as a
whole, not the current state of the paths that exist in the working
tree that matches that pathspec (the latter by definition excludes
the state of "subdir/z" because it does not exist in the working
tree).

Plan to eventually make "git add" pretend as if "-A" is given when
there is a pathspec on the command line.  When resolving a conflict
to remove a path, the current code tells you to "git rm $path", but
with such a change, you will be able to say "git add $path" (of
course you can do "git add -A $path" today).  That means that we can
simplify the advice messages given by "git status".  That all will
be in Git 2.0 or later, if we are going to do so.

For that transition to work, people need to learn either to say "git
add --no-all subdir/" when they want to ignore the removed paths
like "subdir/z", or to say "git add -A subdir/" when they want to
take the state of the directory as a whole.

"git add" without any argument will continue to be a no-op.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-08 23:26:56 -08:00
Junio C Hamano
3e714cdbab Update draft release notes to 1.8.2
Split the backward-compatibility notes into two sections, the ones
that affect this release, and the other to describe changes meant
for Git 2.0.  The latter gives a context to understand why the
changes for this release is necessary.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-08 14:14:27 -08:00
Junio C Hamano
cfe1348da6 Documentation/git-push: clarify the description of defaults
We describe what gets pushed by default when the command line does
not give any <refspec> under the bullet point of <refspec>.

It is a bit unfriendly to expect users to read on <refspec> when
they are not giving any in the first place.  "What gets pushed" is
determined by taking many factors (<refspec> argument being only one
of them) into account, and is a property of the entire command, not
an individual argument.  Also we do not describe "Where the push
goes" when the command line does not say.

Give the description on "what gets pushed to where" upfront before
explaining individual arguments and options.

Also update the description of <refspec> to say what it is, what it
is used for, before explaining what shape it takes.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-08 09:55:08 -08:00
Junio C Hamano
5d4ef1721a Merge branch 'mh/maint-ceil-absolute' into maint
* mh/maint-ceil-absolute:
  Provide a mechanism to turn off symlink resolution in ceiling paths
2013-03-07 12:49:57 -08:00
Greg Price
5cae935660 add: Clarify documentation of -A and -u
The documentation of '-A' and '-u' is very confusing for someone who
doesn't already know what they do.  Describe them with fewer words and
clearer parallelism to each other and to the behavior of plain 'add'.

Also mention the default <pathspec> for '-A' as well as '-u', because
it applies to both.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-07 11:16:54 -08:00
Junio C Hamano
c2aba155da push: --follow-tags
The new option "--follow-tags" tells "git push" to push annotated
tags that are missing from the other side and that can be reached by
the history that is otherwise pushed out.

For example, if you are using the "simple", "current", or "upstream"
push, you would ordinarily push the history leading to the commit at
your current HEAD and nothing else.  With this option, you would
also push all annotated tags that can be reached from that commit to
the other side.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-05 13:39:46 -08:00
Jens Lehmann
cf41982806 submodule: add 'deinit' command
With "git submodule init" the user is able to tell git he cares about one
or more submodules and wants to have it populated on the next call to "git
submodule update". But currently there is no easy way he could tell git he
does not care about a submodule anymore and wants to get rid of his local
work tree (except he knows a lot about submodule internals and removes the
"submodule.$name.url" setting from .git/config together with the work tree
himself).

Help those users by providing a 'deinit' command. This removes the
whole submodule.<name> section from .git/config (either for the given
submodule(s) or for all those which have been initialized if '.' is used)
together with their work tree. Fail if the current work tree contains
modifications (unless forced), but don't complain when either the work
tree is already removed or no settings are found in .git/config.

Add tests and link the man pages of "git submodule deinit" and "git rm"
to assist the user in deciding whether removing or unregistering the
submodule is the right thing to do for him. Also add the deinit subcommand
to the completion list.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-04 14:48:02 -08:00
Junio C Hamano
4d0d0c3c59 Git 1.8.2-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-03 01:24:11 -08:00
Junio C Hamano
06d67b8766 Sync with 1.8.1.5 2013-03-01 13:17:18 -08:00
Junio C Hamano
e6363a4992 Git 1.8.1.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-01 13:15:29 -08:00
Junio C Hamano
1d38c6971d Merge branch 'wk/user-manual' into maint
* wk/user-manual:
  user-manual: Flesh out uncommitted changes and submodule updates
  user-manual: Use request-pull to generate "please pull" text
  user-manual: Reorganize the reroll sections, adding 'git rebase -i'
2013-03-01 10:37:40 -08:00
Andrew Wong
5e2485846d Documentation/githooks: Fix linkgit
Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-01 10:19:22 -08:00
Junio C Hamano
443d803e0d Merge branch 'maint'
* maint:
  Update draft release notes to 1.8.1.5
  Documentation/submodule: Add --force to update synopsis
2013-02-27 10:10:28 -08:00
Junio C Hamano
8d44277d91 Update draft release notes to 1.8.1.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-27 10:09:59 -08:00
Junio C Hamano
28db11169b Merge branch 'wk/man-deny-current-branch-is-default-these-days' into maint
* wk/man-deny-current-branch-is-default-these-days:
  user-manual: typofix (ofthe->of the)
  user-manual: Update for receive.denyCurrentBranch=refuse
2013-02-27 10:01:21 -08:00
Junio C Hamano
3e07d2683d Merge branch 'mh/maint-ceil-absolute'
An earlier workaround designed to help people who list logical
directories that will not match what getcwd(3) returns in the
GIT_CEILING_DIRECTORIES had an adverse effect when it is slow to
stat and readlink a directory component of an element listed on it.

* mh/maint-ceil-absolute:
  Provide a mechanism to turn off symlink resolution in ceiling paths
2013-02-27 09:47:28 -08:00
Michal Nazarewicz
4d31a44a08 git-send-email: use git credential to obtain password
If smtp_user is provided but smtp_pass is not, instead of
prompting for password, make git-send-email use git
credential command instead.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-27 09:46:03 -08:00
Brad King
31e54bb94a Documentation/submodule: Add --force to update synopsis
In commit 9db31bdf (submodule: Add --force option for git submodule
update, 2011-04-01) we added the option to the implementation's usage
synopsis but forgot to add it to the synopsis in the command
documentation.  Add the option to the synopsis in the same location it
is reported in usage and re-wrap the options to avoid long lines.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-27 07:31:01 -08:00
Tadeusz Andrzej Kadłubowski
21b6e4f24c Documentation: filter-branch env-filter example
filter-branch --env-filter example that shows how to change the email
address in all commits before publishing a project.

Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-26 09:34:51 -08:00
Tadeusz Andrzej Kadłubowski
bee3eb079d git-filter-branch.txt: clarify ident variables usage
There is a rare edge case of git-filter-branch: a filter that unsets
identity variables from the environment. Link to git-commit-tree
clarifies how Git would fall back in this situation.

Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-26 09:34:51 -08:00
W. Trevor King
1249d8ad1c user-manual: Standardize backtick quoting
I tried to always use backticks for:
* Paths and filenames (e.g. `.git/config`)
* Compound refs (e.g. `origin/HEAD`)
* Git commands (e.g. `git log`)
* Command arguments (e.g. `--pretty`)
* URLs (e.g. `git://`), as a subset of command arguments
* Special characters (e.g. `+` in diffs).
* Config options (e.g. `branch.<name>.remote`)

Branch and tag names are sometimes set off with double quotes,
sometimes set off with backticks, and sometimes left bare.  I tried to
judge when the intention was introducing new terms or conventions
(double quotes), to reference a recently used command argument
(backticks), or to reference the abstract branch/commit (left bare).
Obviously these are not particularly crisp definitions, so my
decisions are fairly arbitrary ;).  When a reference had already been
introduced, I changed further double-quoted instances to backticked
instances.

When new backticks increased the length of a line beyond others in
that block, I re-wrapped blocks to 72 columns.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-25 15:40:54 -08:00
Junio C Hamano
4dac0679fe Git 1.8.2-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-25 09:03:26 -08:00
Junio C Hamano
2a4a26b53d Sync with 'maint'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-25 08:28:06 -08:00
Junio C Hamano
3ca26e8cdc Merge branch 'wk/user-manual'
Further updates to the user manual.

* wk/user-manual:
  user-manual: Flesh out uncommitted changes and submodule updates
  user-manual: Use request-pull to generate "please pull" text
  user-manual: Reorganize the reroll sections, adding 'git rebase -i'
2013-02-25 08:27:17 -08:00
Junio C Hamano
6368a71b81 Merge branch 'wk/man-deny-current-branch-is-default-these-days'
* wk/man-deny-current-branch-is-default-these-days:
  user-manual: typofix (ofthe->of the)
2013-02-25 08:26:59 -08:00
Junio C Hamano
7a0d8db36e Prepare for 1.8.1.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-25 08:26:25 -08:00
Junio C Hamano
cd9c038ac9 Merge branch 'jc/mention-tracking-for-pull-default' into maint
* jc/mention-tracking-for-pull-default:
  doc: mention tracking for pull.default
2013-02-25 08:04:20 -08:00
Junio C Hamano
5cc5f09b7b Merge branch 'mm/config-intro-in-git-doc' into maint
* mm/config-intro-in-git-doc:
  git.txt: update description of the configuration mechanism
2013-02-25 08:04:18 -08:00
Junio C Hamano
d08d259095 Merge branch 'mg/bisect-doc' into maint
* mg/bisect-doc:
  git-bisect.txt: clarify that reset quits bisect
2013-02-25 08:03:57 -08:00
Junio C Hamano
7be093133c Merge branch 'jk/remote-helpers-doc' into maint
* jk/remote-helpers-doc:
  Rename {git- => git}remote-helpers.txt
2013-02-25 08:03:37 -08:00
Greg Price
4f021b34f2 Documentation: "advice" is uncountable
"Advice" is a mass noun, not a count noun; it's not ordinarily
pluralized.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-25 07:31:28 -08:00
Greg Price
52291497d1 describe: Document --match pattern format
It's not clear in git-describe(1) what kind of "pattern" should be
passed to --match.  Fix that.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-24 22:24:48 -08:00
Greg Price
48dfe969fc Fix ".git/refs" stragglers
A couple of references still survive to .git/refs as a tree
of all refs.  Fix one in docs, one in a -h message, one in
a -h message quoted in docs.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-24 22:23:32 -08:00
David Aguilar
1a2ba8b90f Documentation/user-manual.txt: use a lowercase "usage:" string
Make the usage string in the example script consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-24 13:31:10 -08:00
W. Trevor King
0414acc365 Documentation/githooks: Explain pre-rebase parameters
Descriptions borrowed from templates/hooks--pre-rebase.sample.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-24 00:13:11 -08:00
Nguyễn Thái Ngọc Duy
647d87947f update-index: list supported idx versions and their features
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-23 13:18:27 -08:00
Junio C Hamano
3d0e75f2f7 diff-options: unconfuse description of --color
It said "by default it is off" while it also said "the default is
always", which confused everybody who read it only once.  It wanted
to say (1) if you do not say --color, it is not enabled, and (2) if
you say --color but do not say when to enable it, it will always be
enabled".

Rephrase to clarify by using "default" only once.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-22 22:24:10 -08:00
Nguyễn Thái Ngọc Duy
300e39f6aa index-format.txt: mention of v4 is missing in some places
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-22 12:47:14 -08:00
Michael Haggerty
7ec30aaa5b Provide a mechanism to turn off symlink resolution in ceiling paths
Commit 1b77d83cab 'setup_git_directory_gently_1(): resolve symlinks
in ceiling paths' changed the setup code to resolve symlinks in the
entries in GIT_CEILING_DIRECTORIES.  Because those entries are
compared textually to the symlink-resolved current directory, an
entry in GIT_CEILING_DIRECTORIES that contained a symlink would have
no effect.  It was known that this could cause performance problems
if the symlink resolution *itself* touched slow filesystems, but it
was thought that such use cases would be unlikely.  The intention of
the earlier change was to deal with a case when the user has this:

	GIT_CEILING_DIRECTORIES=/home/gitster

but in reality, /home/gitster is a symbolic link to somewhere else,
e.g. /net/machine/home4/gitster. A textual comparison between the
specified value /home/gitster and the location getcwd(3) returns
would not help us, but readlink("/home/gitster") would still be
fast.

After this change was released, Anders Kaseorg <andersk@mit.edu>
reported:

> [...] my computer has been acting so slow when I’m not connected to
> the network.  I put various network filesystem paths in
> $GIT_CEILING_DIRECTORIES, such as
> /afs/athena.mit.edu/user/a/n/andersk (to avoid hitting its parents
> /afs/athena.mit.edu, /afs/athena.mit.edu/user/a, and
> /afs/athena.mit.edu/user/a/n which all live in different AFS
> volumes).  Now when I’m not connected to the network, every
> invocation of Git, including the __git_ps1 in my shell prompt, waits
> for AFS to timeout.

To allow users to work around this problem, give them a mechanism to
turn off symlink resolution in GIT_CEILING_DIRECTORIES entries.  All
the entries that follow an empty entry will not be checked for symbolic
links and used literally in comparison.  E.g. with these:

	GIT_CEILING_DIRECTORIES=:/foo/bar:/xyzzy or
	GIT_CEILING_DIRECTORIES=/foo/bar::/xyzzy

we will not readlink("/xyzzy") because it comes after an empty entry.

With the former (but not with the latter), "/foo/bar" comes after an
empty entry, and we will not readlink it, either.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-22 11:37:34 -08:00
Junio C Hamano
b3600c3628 Sync with v1.8.1.4 2013-02-19 21:57:27 -08:00
Junio C Hamano
dff9f8835f Git 1.8.1.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-19 21:54:22 -08:00
W. Trevor King
9148673377 user-manual: Flesh out uncommitted changes and submodule updates
If you try and update a submodule with a dirty working directory, you
get an error message like:

  $ git submodule update
  error: Your local changes to the following files would be overwritten by checkout:
  ...
  Please, commit your changes or stash them before you can switch branches.
  Aborting
  ...

Mention this in the submodule notes.  The previous phrase was short
enough that I originally thought it might have been referring to the
reflog note (obviously, uncommitted changes will not show up in the
reflog either ;).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-19 12:56:30 -08:00
W. Trevor King
ae6ef554c8 user-manual: Use request-pull to generate "please pull" text
Less work and more error checking (e.g. does a merge base exist?).
Add an explicit push before request-pull to satisfy request-pull,
which checks to make sure the references are publically available.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-19 12:56:30 -08:00
W. Trevor King
6c26bf4d4e user-manual: Reorganize the reroll sections, adding 'git rebase -i'
I think this interface is often more convenient than extended cherry
picking or using 'git format-patch'.  In fact, I removed the
cherry-pick section entirely.  The entry-level suggestions for
rerolling are now:

    1. git commit --amend
    2. git format-patch origin
       git reset --hard origin
       ...edit and reorder patches...
       git am *.patch
    3. git rebase -i origin

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-19 12:56:11 -08:00
Brandon Casey
46fbf75364 Documentation/git-commit.txt: rework the --cleanup section
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-19 12:36:06 -08:00
Junio C Hamano
20a599e2c1 Merge branch 'jc/mention-tracking-for-pull-default'
We stopped mentioning `tracking` is a deprecated but supported
synonym for `upstream` in pull.default even though we have no
intention of removing the support for it.

* jc/mention-tracking-for-pull-default:
  doc: mention tracking for pull.default
2013-02-18 16:05:03 -08:00
Junio C Hamano
48050fbe15 Merge branch 'mm/config-intro-in-git-doc'
* mm/config-intro-in-git-doc:
  git.txt: update description of the configuration mechanism
2013-02-18 16:04:58 -08:00
Junio C Hamano
ce209d0c72 RelNotes 1.8.2: push-simple will not be in effect in this release
Also migration path for the default behaviour of "git add -u/-A" run
in a subdirectory is worth mentioning.

Both pointed out by Matthieu Moy.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 15:59:33 -08:00
Junio C Hamano
50995edda6 user-manual: typofix (ofthe->of the)
Noticed by Drew Northup

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 12:43:00 -08:00
Junio C Hamano
4cb8a83bb8 Merge branch 'maint'
* maint:
  user-manual: use -o latest.tar.gz to create a gzipped tarball
  user-manual: use 'git config --global user.*' for setup
  user-manual: mention 'git remote add' for remote branch config
  user-manual: give 'git push -f' as an alternative to +master
  user-manual: use 'remote add' to setup push URLs
2013-02-18 00:50:33 -08:00
W. Trevor King
7ed1690c34 user-manual: use -o latest.tar.gz to create a gzipped tarball
This functionality was introduced by 0e804e09 (archive: provide
builtin .tar.gz filter, 2011-07-21) for v1.7.7.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 00:48:52 -08:00
W. Trevor King
632cc3e6b6 user-manual: use 'git config --global user.*' for setup
A simple command line call is easier than spawning an editor,
especially for folks new to ideas like the "command line" and "text
editors".  This is also the approach suggested by 'git commit' if you
try and commit without having configured user.name or user.email.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 00:48:47 -08:00
W. Trevor King
47adb8ac7c user-manual: mention 'git remote add' for remote branch config
I hardly ever setup remote.<name>.url using 'git config'.  While it
may be instructive to do so, we should also point out 'git remote
add'.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 00:48:42 -08:00
W. Trevor King
d1471e0616 user-manual: give 'git push -f' as an alternative to +master
This mirrors existing language in the description of 'git fetch'.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 00:48:37 -08:00
W. Trevor King
e9b4908302 user-manual: use 'remote add' to setup push URLs
There is no need to use here documents to setup this configuration.
It is easier, less confusing, and more robust to use `git remote add`
directly.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-18 00:48:30 -08:00
Junio C Hamano
004825d314 Git 1.8.2-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-17 15:35:33 -08:00
Junio C Hamano
ce735bf7fd Merge branch 'jc/hidden-refs'
Allow the server side to redact the refs/ namespace it shows to the
client.

Will merge to 'master'.

* jc/hidden-refs:
  upload/receive-pack: allow hiding ref hierarchies
  upload-pack: simplify request validation
  upload-pack: share more code
2013-02-17 15:25:57 -08:00
Junio C Hamano
abea4dc76a Merge branch 'mp/diff-algo-config'
Add diff.algorithm configuration so that the user does not type
"diff --histogram".

* mp/diff-algo-config:
  diff: Introduce --diff-algorithm command line option
  config: Introduce diff.algorithm variable
  git-completion.bash: Autocomplete --minimal and --histogram for git-diff
2013-02-17 15:25:52 -08:00
Junio C Hamano
7b6e784d70 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-15 12:24:54 -08:00
Matthieu Moy
c0179c0d33 git.txt: update description of the configuration mechanism
The old Git version where it appeared is now useful only to historians,
not to normal users. Also, the text was mentioning only the per-repo
config file, but this is a good place to teach that customization can
also be made per-user.

While at it, remove a now-defunct e-mail from an example.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-15 09:05:55 -08:00
Nguyễn Thái Ngọc Duy
1a20dd49f8 count-objects: report how much disk space taken by garbage files
Also issue warnings on loose garbages instead of errors as a result of
using report_garbage() function in count_objects()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-15 09:02:34 -08:00
Nguyễn Thái Ngọc Duy
543c5caa6c count-objects: report garbage files in pack directory too
prepare_packed_git_one() is modified to allow count-objects to hook a
report function to so we don't need to duplicate the pack searching
logic in count-objects.c. When report_pack_garbage is NULL, the
overhead is insignificant.

The garbage is reported with warning() instead of error() in packed
garbage case because it's not an error to have garbage. Loose garbage
is still reported as errors and will be converted to warnings later.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-15 08:13:13 -08:00
Junio C Hamano
17e45f8e41 Merge branch 'wk/man-deny-current-branch-is-default-these-days'
* wk/man-deny-current-branch-is-default-these-days:
  user-manual: Update for receive.denyCurrentBranch=refuse
2013-02-14 16:06:29 -08:00
Junio C Hamano
30784198b7 Documentation/git-add: kill remaining <filepattern>
The merge at 5bf72ed2 missed another instance of <filepattern> that
we were converting to <pathspec>.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-14 15:51:43 -08:00
W. Trevor King
d9be2485e2 user-manual: Update for receive.denyCurrentBranch=refuse
acd2a45 (Refuse updating the current branch in a non-bare repository
via push, 2009-02-11) changed the default to refuse such a push, but
it forgot to update the docs.

7d182f5 (Documentation: receive.denyCurrentBranch defaults to
'refuse', 2010-03-17) updated Documentation/config.txt, but forgot to
update the user manual.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-14 10:54:58 -08:00
Junio C Hamano
02339dd529 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-14 10:43:07 -08:00
Junio C Hamano
eb213fc3fc Merge branch 'mg/bisect-doc'
* mg/bisect-doc:
  git-bisect.txt: clarify that reset quits bisect
2013-02-14 10:29:01 -08:00
Junio C Hamano
07203d6b6c Merge branch 'tz/perl-styles'
Add coding guidelines for writing Perl scripts for Git.

* tz/perl-styles:
  Update CodingGuidelines for Perl
2013-02-14 10:28:55 -08:00
Michael J Gruber
0174eeaa73 pretty: make %GK output the signing key for signed commits
In order to employ signed keys in an automated way it is absolutely
necessary to check which keys the signatures come from.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-14 09:30:36 -08:00
Junio C Hamano
5bf72ed2e7 Merge branch 'maint'
* maint:
  Replace filepattern with pathspec for consistency
2013-02-12 12:23:12 -08:00
Matthieu Moy
d32805dce7 Replace filepattern with pathspec for consistency
pathspec is the most widely used term, and is the one defined in
gitglossary.txt. <filepattern> was used only in the synopsys for git-add
and git-commit, and in git-add.txt. Get rid of it.

This patch is obtained with by running:

  perl -pi -e 's/filepattern/pathspec/' `git grep -l filepattern`

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-12 10:05:38 -08:00
Michael J Gruber
c787a45452 git-bisect.txt: clarify that reset quits bisect
"reset" can be easily misunderstood as resetting a bisect session to its
start without finishing it. Clarify that it actually quits the bisect
session.

Reported-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-11 08:40:34 -08:00
Junio C Hamano
aa3982890f Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-10 20:47:28 -08:00
Junio C Hamano
e1ebf21237 Merge branch 'maint'
* maint:
  user-manual: Rewrite git-gc section for automatic packing
  user-manual: Fix 'you - Git' -> 'you--Git' typo
  user-manual: Fix 'http' -> 'HTTP' typos
  user-manual: Fix 'both: so' -> 'both; so' typo
2013-02-10 20:40:44 -08:00
W. Trevor King
901fd180c9 user-manual: Rewrite git-gc section for automatic packing
This should have happened back in 2007, when `git gc` learned about
auto (e9831e8, git-gc --auto: add documentation, 2007-09-17).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-10 20:39:26 -08:00
W. Trevor King
da2c7b3dc5 user-manual: Fix 'you - Git' -> 'you--Git' typo
Use an em-dash, not a hyphen, to join these clauses.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-10 20:39:25 -08:00
W. Trevor King
de3f2c7b46 user-manual: Fix 'http' -> 'HTTP' typos
HTTP is an acronym which has not (yet) made the transition to word
status (unlike "laser", probably because lasers are inherently cooler
than HTTP ;).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-10 20:39:20 -08:00
W. Trevor King
ddd2369c5c user-manual: Fix 'both: so' -> 'both; so' typo
The clause "so `git log ...` will return no commits..." is
independent, not a description of "both", so a semicolon is more
appropriate.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-10 14:18:57 -08:00
Nguyễn Thái Ngọc Duy
0bdaa12169 git-count-objects.txt: describe each line in -v output
The current description requires a bit of guessing (what clause
corresponds to what printed line?) and lacks information, such as
the unit of size and size-pack.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-08 10:36:48 -08:00
Junio C Hamano
a923c314aa Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-07 15:25:06 -08:00
Junio C Hamano
c86223b272 Sync with 1.8.1.3 2013-02-07 15:21:49 -08:00
Junio C Hamano
f350082525 Git 1.8.1.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-07 15:21:10 -08:00
Junio C Hamano
39ca1bd882 Merge branch 'da/mergetool-docs'
Build on top of the clean-up done by jk/mergetool and automatically
generate the list of mergetool and difftool backends the build
supports to be included in the documentation.

* da/mergetool-docs:
  doc: generate a list of valid merge tools
  mergetool--lib: list user configured tools in '--tool-help'
  mergetool--lib: add functions for finding available tools
  mergetool--lib: improve the help text in guess_merge_tool()
  mergetool--lib: simplify command expressions
2013-02-07 14:42:16 -08:00
Junio C Hamano
b9a5f6811d Merge branch 'jk/doc-makefile-cleanup'
* jk/doc-makefile-cleanup:
  Documentation/Makefile: clean up MAN*_TXT lists
2013-02-07 14:41:51 -08:00
Junio C Hamano
8e12ab2f33 Merge branch 'jk/remote-helpers-doc'
"git help remote-helpers" did not work; 'remote-helpers' is not
a subcommand name but a concept, so its documentation should have
been in gitremote-helpers, not git-remote-helpers.

* jk/remote-helpers-doc:
  Rename {git- => git}remote-helpers.txt
2013-02-07 14:41:45 -08:00
Junio C Hamano
f507784d2c Merge branch 'nd/branch-error-cases'
Fix various error messages and conditions in "git branch", e.g. we
advertised "branch -d/-D" to remove one or more branches but actually
implemented removal of zero or more branches---request to remove no
branches was not rejected.

* nd/branch-error-cases:
  branch: let branch filters imply --list
  docs: clarify git-branch --list behavior
  branch: mark more strings for translation
  branch: give a more helpful message on redundant arguments
  branch: reject -D/-d without branch name
2013-02-07 14:41:38 -08:00
Junio C Hamano
41e81d2fb9 Merge branch 'jk/python-styles'
* jk/python-styles:
  CodingGuidelines: add Python coding guidelines
2013-02-07 14:41:31 -08:00
Junio C Hamano
390eb36b0a upload-pack: optionally allow fetching from the tips of hidden refs
With uploadpack.allowtipsha1inwant configuration option set, future
versions of "git fetch" that allow an exact object name (likely to
have been obtained out of band) on the LHS of the fetch refspec can
make a request with a "want" line that names an object that may not
have been advertised due to transfer.hiderefs configuration.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-07 13:56:52 -08:00
Junio C Hamano
daebaa7813 upload/receive-pack: allow hiding ref hierarchies
A repository may have refs that are only used for its internal
bookkeeping purposes that should not be exposed to the others that
come over the network.

Teach upload-pack to omit some refs from its initial advertisement
by paying attention to the uploadpack.hiderefs multi-valued
configuration variable.  Do the same to receive-pack via the
receive.hiderefs variable.  As a convenient short-hand, allow using
transfer.hiderefs to set the value to both of these variables.

Any ref that is under the hierarchies listed on the value of these
variable is excluded from responses to requests made by "ls-remote",
"fetch", etc. (for upload-pack) and "push" (for receive-pack).

Because these hidden refs do not count as OUR_REF, an attempt to
fetch objects at the tip of them will be rejected, and because these
refs do not get advertised, "git push :" will not see local branches
that have the same name as them as "matching" ones to be sent.

An attempt to update/delete these hidden refs with an explicit
refspec, e.g. "git push origin :refs/hidden/22", is rejected.  This
is not a new restriction.  To the pusher, it would appear that there
is no such ref, so its push request will conclude with "Now that I
sent you all the data, it is time for you to update the refs.  I saw
that the ref did not exist when I started pushing, and I want the
result to point at this commit".  The receiving end will apply the
compare-and-swap rule to this request and rejects the push with
"Well, your update request conflicts with somebody else; I see there
is such a ref.", which is the right thing to do. Otherwise a push to
a hidden ref will always be "the last one wins", which is not a good
default.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-07 13:48:47 -08:00
Ted Zlatanov
c5e366b1f8 Update CodingGuidelines for Perl
Add the coding guidelines for Perl.

Signed-off-by: Ted Zlatanov <tzz@lifelogs.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-06 14:02:03 -08:00
Junio C Hamano
2f19ada7f8 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-05 16:20:16 -08:00
Junio C Hamano
e34c7e2b51 Merge branch 'ta/doc-no-small-caps'
Update documentation to change "GIT" which was a poor-man's small
caps to "Git".  The latter was the intended spelling.

Also change "git" spelled in all-lowercase to "Git" when it refers
to the system as the whole or the concept it embodies, as opposed to
the command the end users would type.

* ta/doc-no-small-caps:
  Documentation: StGit is the right spelling, not StGIT
  Documentation: describe the "repository" in repository-layout
  Documentation: add a description for 'gitfile' to glossary
  Documentation: do not use undefined terms git-dir and git-file
  Documentation: the name of the system is 'Git', not 'git'
  Documentation: avoid poor-man's small caps GIT
2013-02-05 16:13:32 -08:00
Junio C Hamano
f51a757faf Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-04 10:44:26 -08:00
Junio C Hamano
4c2c5537c3 Merge branch 'maint'
* maint:
  Start preparing for 1.8.1.3
2013-02-04 10:26:11 -08:00
Junio C Hamano
27d46a7072 Merge branch 'mm/add-u-A-sans-pathspec'
Forbid "git add -u" and "git add -A" without pathspec run from a
subdirectory, to train people to type "." (or ":/") to make the
choice of default does not matter.

* mm/add-u-A-sans-pathspec:
  add: warn when -u or -A is used without pathspec
2013-02-04 10:25:14 -08:00
Junio C Hamano
370855e967 Merge branch 'jc/push-reject-reasons'
Improve error and advice messages given locally when "git push"
refuses when it cannot compute fast-forwardness by separating these
cases from the normal "not a fast-forward; merge first and push
again" case.

* jc/push-reject-reasons:
  push: finishing touches to explain REJECT_ALREADY_EXISTS better
  push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
  push: further simplify the logic to assign rejection reason
  push: further clean up fields of "struct ref"
2013-02-04 10:25:04 -08:00
Junio C Hamano
149a4211a4 Merge branch 'jc/custom-comment-char'
Allow a configuration variable core.commentchar to customize the
character used to comment out the hint lines in the edited text from
the default '#'.

* jc/custom-comment-char:
  Allow custom "comment char"
2013-02-04 10:23:49 -08:00
Junio C Hamano
42f50f8d01 Start preparing for 1.8.1.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-04 10:21:10 -08:00
Junio C Hamano
3d00a5c148 Merge branch 'jk/cvsimport-does-not-work-with-cvsps3' into maint
* jk/cvsimport-does-not-work-with-cvsps3:
  git-cvsimport.txt: cvsps-2 is deprecated
2013-02-04 10:04:23 -08:00
Junio C Hamano
2173205f5c Merge branch 'jc/doc-maintainer' into maint
* jc/doc-maintainer:
  howto/maintain: document "### match next" convention in jch/pu branch
  howto/maintain: mark titles for asciidoc
  Documentation: update "howto maintain git"
2013-02-04 10:03:35 -08:00
David Aguilar
f35ec54600 doc: generate a list of valid merge tools
Use the show_tool_names() function to build lists of all
the built-in tools supported by difftool and mergetool.
This frees us from needing to update the documentation
whenever a new tool is added.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-02 21:46:52 -08:00
John Keeping
bd4a3d6168 Rename {git- => git}remote-helpers.txt
When looking up a topic via "git help <topic>", git-help prepends "git-"
to topics that are the names of commands (either builtin or found on the
path) and "git" (no hyphen) to any other topic name.

"git-remote-helpers" is not the name of a command, so "git help
remote-helpers" looks for "gitremote-helpers" and does not find it.

Fix this by renaming "git-remote-helpers.txt" to
"gitremote-helpers.txt".

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 14:12:34 -08:00
Thomas Ackermann
afeef30c34 Documentation: StGit is the right spelling, not StGIT
They refer themselves as such at https://gna.org/projects/stgit/

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:54:46 -08:00
Junio C Hamano
7a7d05b62e Documentation: describe the "repository" in repository-layout
Update the introductory part and concisely explain how gitfile is
handled, what it is used for and for what effect.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:54:46 -08:00
Thomas Ackermann
19b4d3d4ff Documentation: add a description for 'gitfile' to glossary
Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:53:33 -08:00
Thomas Ackermann
0859c969db Documentation: do not use undefined terms git-dir and git-file
We will add gitfile to the glossary in a separate commit.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:53:33 -08:00
Thomas Ackermann
2de9b71138 Documentation: the name of the system is 'Git', not 'git'
Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:53:33 -08:00
Thomas Ackermann
48a8c26c62 Documentation: avoid poor-man's small caps GIT
In the earlier days, we used to spell the name of the system as GIT,
to simulate as if it were typeset with capital G and IT in small
caps.  Later we stopped doing so at around 1.6.5 days.

Let's stop doing so throughout the documentation.  The name to refer
to the whole system (and the concept it embodies) is "Git"; the
command end-users type is "git".  And document this in the coding
guideline.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 13:53:25 -08:00
Junio C Hamano
bcd45b4085 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 12:52:08 -08:00
Junio C Hamano
67d9c41c4a Merge branch 'jk/cvsimport-does-not-work-with-cvsps3'
Warn people that other tools are more recommendable over
cvsimport+cvsps2 combo when doing a one-shot import, and cvsimport
will not work with cvsps3.

* jk/cvsimport-does-not-work-with-cvsps3:
  git-cvsimport.txt: cvsps-2 is deprecated
2013-02-01 12:39:59 -08:00
Junio C Hamano
2532d891a4 Merge branch 'nd/fetch-depth-is-broken'
"git fetch --depth" was broken in at least three ways.  The
resulting history was deeper than specified by one commit, it was
unclear how to wipe the shallowness of the repository with the
command, and documentation was misleading.

* nd/fetch-depth-is-broken:
  fetch: elaborate --depth action
  upload-pack: fix off-by-one depth calculation in shallow clone
  fetch: add --unshallow for turning shallow repo into complete one
2013-02-01 12:39:24 -08:00
Jeff King
a617578d37 Documentation/Makefile: clean up MAN*_TXT lists
We keep a list of the various files that end up as man1,
man5, etc. Let's break these single-line lists into sorted
multi-line lists, which makes diffs that touch them much
easier to read.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-02-01 12:35:30 -08:00
Junio C Hamano
fa23348e95 doc: mention tracking for pull.default
When looking at a configuration file edited long time ago, a user
may find 'pull.default = tracking' and wonder what it means, but
earlier we stopped mentioning this value, even though the code still
support it and more importantly, we have no intention to force old
timers to update their configuration files.

Instead of not mentioning it, add it to the description in a way
that makes it clear that users have no reason to add new uses of it
preferring over 'upstream', by not listing it as a separate item on
the same footing as other values but as a deprecated synonym of the
'upstream' in its description.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-31 17:00:56 -08:00
Jeff King
d040350813 branch: let branch filters imply --list
Currently, a branch filter like `--contains`, `--merged`, or
`--no-merged` is ignored when we are not in listing mode.
For example:

  git branch --contains=foo bar

will create the branch "bar" from the current HEAD, ignoring
the `--contains` argument entirely. This is not very
helpful. There are two reasonable behaviors for git here:

  1. Flag an error; the arguments do not make sense.

  2. Implicitly go into `--list` mode

This patch chooses the latter, as it is more convenient, and
there should not be any ambiguity with attempting to create
a branch; using `--contains` and not wanting to list is
nonsensical.

That leaves the case where an explicit modification option
like `-d` is given.  We already catch the case where
`--list` is given alongside `-d` and flag an error. With
this patch, we will also catch the use of `--contains` and
other filter options alongside `-d`.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-31 16:37:24 -08:00
Jeff King
de90ff81f3 docs: clarify git-branch --list behavior
It was not clear from the "description" section of git-branch(1)
that using a <pattern> meant that you _had_ to use the --list
option. Let's clarify that, and while we're at it, reword some
clunky and ambiguous sentences.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-31 16:37:16 -08:00
John Keeping
9ef43dd7ad CodingGuidelines: add Python coding guidelines
These are kept short by simply deferring to PEP-8.  Most of the Python
code in Git is already very close to this style (some things in contrib/
are not).

Rationale for version suggestions:

 - Amongst the noise in [1], there isn't any disagreement about using
   2.6 as a base (see also [2]), although Brandon Casey recently added
   support for 2.4 and 2.5 to git-p4 [3].

 - Restricting ourselves to 2.6+ makes aiming for Python 3 compatibility
   significantly easier [4].

 - Advocating Python 3 support in all scripts is currently unrealistic
   because:

     - 'p4 -G' provides output in a format that is very hard to use with
       Python 3 (and its documentation claims Python 3 is unsupported).

     - Mercurial does not support Python 3.

     - Bazaar does not support Python 3.

 - But we should try to make new scripts compatible with Python 3
   because all new Python development is happening on version 3 and the
   Python community will eventually stop supporting Python 2 [5].

 - Python 3.1 is required to support the 'surrogateescape' error handler
   for encoding/decodng filenames to/from Unicode strings and Python 3.0
   is not longer supported.

[1] http://thread.gmane.org/gmane.comp.version-control.git/210329
[2] http://article.gmane.org/gmane.comp.version-control.git/210429
[3] http://thread.gmane.org/gmane.comp.version-control.git/214579
[4] http://docs.python.org/3.3/howto/pyporting.html#try-to-support-python-2-6-and-newer-only
[5] http://www.python.org/dev/peps/pep-0404/

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-30 12:49:28 -08:00
Junio C Hamano
070c57df42 Merge branch 'rr/minimal-stat'
Some reimplementations of Git does not write all the stat info back
to the index due to their implementation limitations (e.g. jgit
running on Java).  A configuration option can tell Git to ignore
changes to most of the stat fields and only pay attention to mtime
and size, which these implementations can reliably update.  This
avoids excessive revalidation of contents.

* rr/minimal-stat:
  Enable minimal stat checking
2013-01-30 08:53:02 -08:00
Junio C Hamano
08c0e7fd4a Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-28 11:19:59 -08:00
Junio C Hamano
0fdd7f5d73 Sync with 1.8.1.2 2013-01-28 11:18:32 -08:00
Junio C Hamano
53cdd4e1b2 Git 1.8.1.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-28 11:17:54 -08:00
Junio C Hamano
a77133e383 Merge branch 'ss/help-htmlpath-config-doc' into maint
* ss/help-htmlpath-config-doc:
  config.txt: Document help.htmlpath config parameter
2013-01-28 11:13:31 -08:00
Junio C Hamano
a94214b75e Merge branch 'pe/doc-email-env-is-trumped-by-config' into maint
* pe/doc-email-env-is-trumped-by-config:
  git-commit-tree(1): correct description of defaults
2013-01-28 11:12:31 -08:00
Junio C Hamano
3a51e4be9c Merge branch 'er/stop-recommending-parsecvs' into maint
* er/stop-recommending-parsecvs:
  Remove the suggestion to use parsecvs, which is currently broken.
2013-01-28 11:09:37 -08:00
Junio C Hamano
ce956fc48e Merge branch 'mh/ceiling' into maint
An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.

* mh/ceiling:
  string_list_longest_prefix(): remove function
  setup_git_directory_gently_1(): resolve symlinks in ceiling paths
  longest_ancestor_length(): require prefix list entries to be normalized
  longest_ancestor_length(): take a string_list argument for prefixes
  longest_ancestor_length(): use string_list_split()
  Introduce new function real_path_if_valid()
  real_path_internal(): add comment explaining use of cwd
  Introduce new static function real_path_internal()
2013-01-28 11:07:18 -08:00
Matthieu Moy
0fa2eb530f add: warn when -u or -A is used without pathspec
Most Git commands that can be used with or without pathspec operate
tree-wide by default, the pathspec being used to restrict their
scope.  A few exceptions are: 'git grep', 'git clean', 'git add -u'
and 'git add -A'.  When run in a subdirectory without pathspec, they
operate only on paths in the current directory.

The inconsistency of 'git add -u' and 'git add -A' is particularly
problematic since other 'git add' subcommands (namely 'git add -p'
and 'git add -e') are tree-wide by default.  It also means that "git
add -u && git commit" will record a state that is different from
what is recorded with "git commit -a".

Flipping the default now is unacceptable, so let's start training
users to type 'git add -u|-A :/' or 'git add -u|-A .' explicitly, to
prepare for the next steps:

* forbid 'git add -u|-A' without pathspec (like 'git add' without
  option)

* much later, maybe, re-allow 'git add -u|-A' without pathspec, that
  will add all tracked and modified files, or all files, tree-wide.

A nice side effect of this patch is that it makes the :/ magic
pathspec easier to discover for users.

When the command is called from the root of the tree, there is no
ambiguity and no need to change the behavior, hence no need to warn.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-28 10:31:35 -08:00
Junio C Hamano
3587b513ba Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-25 12:52:55 -08:00
Junio C Hamano
bb9aa109fd Merge branch 'jc/doc-maintainer'
Describe tools for automation that were invented since this
document was originally written.

* jc/doc-maintainer:
  howto/maintain: document "### match next" convention in jch/pu branch
  howto/maintain: mark titles for asciidoc
  Documentation: update "howto maintain git"
2013-01-25 12:34:52 -08:00
Junio C Hamano
e510f2d610 howto/maintain: document "### match next" convention in jch/pu branch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-25 12:34:43 -08:00
Junio C Hamano
75e5c0dc55 push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
When we push to update an existing ref, if:

 * the object at the tip of the remote is not a commit; or
 * the object we are pushing is not a commit,

it won't be correct to suggest to fetch, integrate and push again,
as the old and new objects will not "merge".  We should explain that
the push must be forced when there is a non-committish object is
involved in such a case.

If we do not have the current object at the tip of the remote, we do
not even know that object, when fetched, is something that can be
merged.  In such a case, suggesting to pull first just like
non-fast-forward case may not be technically correct, but in
practice, most such failures are seen when you try to push your work
to a branch without knowing that somebody else already pushed to
update the same branch since you forked, so "pull first" would work
as a suggestion most of the time.  And if the object at the tip is
not a commit, "pull first" will fail, without making any permanent
damage.  As a side effect, it also makes the error message the user
will get during the next "push" attempt easier to understand, now
the user is aware that a non-commit object is involved.

In these cases, the current code already rejects such a push on the
client end, but we used the same error and advice messages as the
ones used when rejecting a non-fast-forward push, i.e. pull from
there and integrate before pushing again.

Introduce new rejection reasons and reword the messages
appropriately.

[jc: with help by Peff on message details]

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-24 14:37:23 -08:00
John Keeping
1187ec99b9 git-cvsimport.txt: cvsps-2 is deprecated
git-cvsimport relies on version 2 of cvsps and does not work with the
new version 3.  Since cvsps 3.x does not currently work as well as
version 2 for incremental import, document this fact.

Specifically, there is no way to make new git-cvsimport that supports
cvsps 3.x and have a seamless transition for existing users since cvsps
3.x needs a time from which to continue importing and git-cvsimport does
not save the time of the last import or import into a specific namespace
so there is no safe way to calculate the time of the last import.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-24 12:14:00 -08:00
Junio C Hamano
bb9a69694f Merge branch 'as/pre-push-hook'
Add an extra hook so that "git push" that is run without making
sure what is being pushed is sane can be checked and rejected (as
opposed to the user deciding not pushing).

* as/pre-push-hook:
  Add sample pre-push hook script
  push: Add support for pre-push hooks
  hooks: Add function to check if a hook exists
2013-01-23 21:19:25 -08:00
Junio C Hamano
a39b15b4f6 Merge branch 'as/check-ignore'
Add a new command "git check-ignore" for debugging .gitignore
files.

The variable names may want to get cleaned up but that can be done
in-tree.

* as/check-ignore:
  clean.c, ls-files.c: respect encapsulation of exclude_list_groups
  t0008: avoid brace expansion
  add git-check-ignore sub-command
  setup.c: document get_pathspec()
  add.c: extract new die_if_path_beyond_symlink() for reuse
  add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse
  pathspec.c: rename newly public functions for clarity
  add.c: move pathspec matchers into new pathspec.c for reuse
  add.c: remove unused argument from validate_pathspec()
  dir.c: improve docs for match_pathspec() and match_pathspec_depth()
  dir.c: provide clear_directory() for reclaiming dir_struct memory
  dir.c: keep track of where patterns came from
  dir.c: use a single struct exclude_list per source of excludes

Conflicts:
	builtin/ls-files.c
	dir.c
2013-01-23 21:19:10 -08:00
Junio C Hamano
6a3d05da55 Merge branch 'mo/cvs-server-updates'
Various git-cvsserver updates.

* mo/cvs-server-updates:
  t9402: Use TABs for indentation
  t9402: Rename check.cvsCount and check.list
  t9402: Simplify git ls-tree
  t9402: Add missing &&; Code style
  t9402: No space after IO-redirection
  t9402: Dont use test_must_fail cvs
  t9402: improve check_end_tree() and check_end_full_tree()
  t9402: sed -i is not portable
  cvsserver Documentation: new cvs ... -r support
  cvsserver: add t9402 to test branch and tag refs
  cvsserver: support -r and sticky tags for most operations
  cvsserver: Add version awareness to argsfromdir
  cvsserver: generalize getmeta() to recognize commit refs
  cvsserver: implement req_Sticky and related utilities
  cvsserver: add misc commit lookup, file meta data, and file listing functions
  cvsserver: define a tag name character escape mechanism
  cvsserver: cleanup extra slashes in filename arguments
  cvsserver: factor out git-log parsing logic
2013-01-23 21:16:38 -08:00
Junio C Hamano
c4ada6283e Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-22 10:01:05 -08:00
Junio C Hamano
772f811398 Merge branch 'mz/reset-misc'
Various 'reset' optimizations and clean-ups, followed by a change
to allow "git reset" to work even on an unborn branch.

* mz/reset-misc:
  reset: update documentation to require only tree-ish with paths
  reset [--mixed]: use diff-based reset whether or not pathspec was given
  reset: allow reset on unborn branch
  reset $sha1 $pathspec: require $sha1 only to be treeish
  reset.c: inline update_index_refresh()
  reset.c: finish entire cmd_reset() whether or not pathspec is given
  reset [--mixed]: only write index file once
  reset.c: move lock, write and commit out of update_index_refresh()
  reset.c: move update_index_refresh() call out of read_from_tree()
  reset.c: replace switch by if-else
  reset: avoid redundant error message
  reset --keep: only write index file once
  reset.c: share call to die_if_unmerged_cache()
  reset.c: extract function for updating {ORIG_,}HEAD
  reset.c: remove unnecessary variable 'i'
  reset.c: extract function for parsing arguments
  reset: don't allow "git reset -- $pathspec" in bare repo
  reset.c: pass pathspec around instead of (prefix, argv) pair
  reset $pathspec: exit with code 0 if successful
  reset $pathspec: no need to discard index
2013-01-22 09:36:41 -08:00
Robin Rosenberg
c08e4d5b5c Enable minimal stat checking
Specifically the fields uid, gid, ctime, ino and dev are set to zero
by JGit. Other implementations, eg. Git in cygwin are allegedly also
somewhat incompatible with Git For Windows and on *nix platforms
the resolution of the timestamps may differ.

Any stat checking by git will then need to check content, which may
be very slow, particularly on Windows. Since mtime and size
is typically enough we should allow the user to tell git to avoid
checking these fields if they are set to zero in the index.

This change introduces a core.checkstat config option where the
the user can select to check all fields (default), or just size
and the whole second part of mtime (minimal).

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-22 09:33:16 -08:00
Junio C Hamano
801cbd7c71 Merge branch 'pw/p4-branch-fixes'
Fix "git p4" around branch handling.

* pw/p4-branch-fixes:
  git p4: fix submit when no master branch
  git p4 test: keep P4CLIENT changes inside subshells
  git p4: fix sync --branch when no master branch
  git p4: fail gracefully on sync with no master branch
  git p4: rearrange self.initialParent use
  git p4: allow short ref names to --branch
  git p4 doc: fix branch detection example
  git p4: clone --branch should checkout master
  git p4: verify expected refs in clone --bare test
  git p4: create p4/HEAD on initial clone
  git p4: inline listExistingP4GitBranches
  git p4: add comments to p4BranchesInGit
  git p4: rearrange and simplify hasOrigin handling
  git p4: test sync/clone --branch behavior
2013-01-21 20:15:44 -08:00
Junio C Hamano
e9abef6289 Merge branch 'maint'
* maint:
  git-for-each-ref.txt: 'raw' is a supported date format
2013-01-21 17:16:16 -08:00
John Keeping
b344bb1935 git-for-each-ref.txt: 'raw' is a supported date format
Commit 7dff9b3 (Support 'raw' date format) added a raw date format.
Update the git-for-each-ref documentation to include this.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-21 16:26:26 -08:00
Junio C Hamano
fe73786b48 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-20 17:28:13 -08:00
Junio C Hamano
57a011197e Merge branch 'maint' 2013-01-20 17:27:27 -08:00
Junio C Hamano
74f3267b0c Start preparing for 1.8.1.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-20 17:26:04 -08:00
Junio C Hamano
28f04f3463 Merge branch 'rt/commit-cleanup-config'
Add a configuration variable to set default clean-up mode other
than "strip".

* rt/commit-cleanup-config:
  commit: make default of "cleanup" option configurable
2013-01-20 17:07:04 -08:00
Junio C Hamano
577f63e781 Merge branch 'ap/log-mailmap'
Teach commands in the "log" family to optionally pay attention to
the mailmap.

* ap/log-mailmap:
  log --use-mailmap: optimize for cases without --author/--committer search
  log: add log.mailmap configuration option
  log: grep author/committer using mailmap
  test: add test for --use-mailmap option
  log: add --use-mailmap option
  pretty: use mailmap to display username and email
  mailmap: add mailmap structure to rev_info and pp
  mailmap: simplify map_user() interface
  mailmap: remove email copy and length limitation
  Use split_ident_line to parse author and committer
  string-list: allow case-insensitive string list
2013-01-20 17:06:53 -08:00
Junio C Hamano
02f55e660c Merge git://bogomips.org/git-svn
* git://bogomips.org/git-svn:
  git-svn: teach find-rev to find near matches
  git svn: do not overescape URLs (fallback case)
  Git::SVN::Editor::T: pass $deletions to ->A and ->D
2013-01-18 12:40:28 -08:00
Junio C Hamano
bbc6f64b4e Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-18 11:26:11 -08:00
Junio C Hamano
264238f7bd Merge branch 'ss/help-htmlpath-config-doc'
Add missing doc.

* ss/help-htmlpath-config-doc:
  config.txt: Document help.htmlpath config parameter
2013-01-18 11:20:20 -08:00
Junio C Hamano
e928b70f89 Merge branch 'pe/doc-email-env-is-trumped-by-config'
In the precedence order, the environment variable $EMAIL comes
between the built-in default (i.e. taking value by asking the
system's gethostname() etc.) and the user.email configuration
variable; the documentation implied that it is stronger than the
configuration like $GIT_COMMITTER_EMAIL is, which is wrong.

* pe/doc-email-env-is-trumped-by-config:
  git-commit-tree(1): correct description of defaults
2013-01-18 11:19:33 -08:00
Aaron Schrab
ec55559f93 push: Add support for pre-push hooks
Add support for a pre-push hook which can be used to determine if the
set of refs to be pushed is suitable for the target repository.  The
hook is run with two arguments specifying the name and location of the
destination repository.

Information about what is to be pushed is provided by sending lines of
the following form to the hook's standard input:

  <local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF

If the hook exits with a non-zero status, the push will be aborted.

This will allow the script to determine if the push is acceptable based
on the target repository and branch(es), the commits which are to be
pushed, and even the source branches in some cases.

Signed-off-by: Aaron Schrab <aaron@schrab.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-18 11:13:22 -08:00
John Keeping
2934a484fd git-svn: teach find-rev to find near matches
When a single SVN repository is split into multiple Git repositories
many SVN revisions will exist in only one of the Git repositories
created.  For some projects the only way to build a working artifact is
to check out corresponding versions of various repositories, with no
indication of what those are in the Git world - in the SVN world the
revision numbers are sufficient.

By adding "--before" to "git-svn find-rev" we can say "tell me what this
repository looked like when that other repository looked like this":

    git svn find-rev --before \
        r$(git --git-dir=/over/there.git svn find-rev HEAD)

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
2013-01-17 23:28:12 +00:00
Martin von Zweigbergk
bf44142f54 reset: update documentation to require only tree-ish with paths
When resetting with paths, we no longer require a commit argument, but
only a tree-ish. Update the documentation and synopsis accordingly.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-16 12:50:23 -08:00
Junio C Hamano
eff80a9fd9 Allow custom "comment char"
Some users do want to write a line that begin with a pound sign, #,
in their commit log message.  Many tracking system recognise
a token of #<bugid> form, for example.

The support we offer these use cases is not very friendly to the end
users.  They have a choice between

 - Don't do it.  Avoid such a line by rewrapping or indenting; and

 - Use --cleanup=whitespace but remove all the hint lines we add.

Give them a way to set a custom comment char, e.g.

    $ git -c core.commentchar="%" commit

so that they do not have to do either of the two workarounds.

[jc: although I started the topic, all the tests and documentation
updates, many of the call sites of the new strbuf_add_commented_*()
functions, and the change to git-submodule.sh scripted Porcelain are
from Ralf.]

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-16 12:48:22 -08:00
Michal Privoznik
07924d4d50 diff: Introduce --diff-algorithm command line option
Since command line options have higher priority than config file
variables and taking previous commit into account, we need a way
how to specify myers algorithm on command line. However,
inventing `--myers` is not the right answer. We need far more
general option, and that is `--diff-algorithm`.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-16 09:41:18 -08:00
Michal Privoznik
07ab4dec80 config: Introduce diff.algorithm variable
Some users or projects prefer different algorithms over others, e.g.
patience over myers or similar. However, specifying appropriate
argument every time diff is to be used is impractical. Moreover,
creating an alias doesn't play nicely with other tools based on diff
(git-show for instance). Hence, a configuration variable which is able
to set specific algorithm is needed. For now, these four values are
accepted: 'myers' (which has the same effect as not setting the config
variable at all), 'minimal', 'patience' and 'histogram'.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-16 09:37:45 -08:00
Sebastian Staudt
b1f809d0ae config.txt: Document help.htmlpath config parameter
Signed-off-by: Sebastian Staudt <koraktor@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 13:08:45 -08:00
Pete Wyckoff
44e8d26cf3 git p4: fix submit when no master branch
It finds its upstream and applies the commit properly, but
the sync step will fail unless it is told which branch to
work on.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 09:46:30 -08:00
Pete Wyckoff
8c9e8b6e75 git p4: fix sync --branch when no master branch
It is legal to sync a branch with a different name than
refs/remotes/p4/master, and to do so even when master does
not exist.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 09:46:30 -08:00
Pete Wyckoff
40d69ac3a4 git p4: allow short ref names to --branch
For a clone or sync, --branch says where the newly imported
branch should go, or which existing branch to sync up.  It
takes an argument, which is currently either something that
starts with "refs/", or if not, "refs/heads/p4" is prepended.

Putting it in heads seems like a bad default; these should
go in remotes/p4/ in most situations.  Make that the new default,
and be more liberal in the form of the branch name.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 09:46:30 -08:00
Pete Wyckoff
182edef5b4 git p4 doc: fix branch detection example
Make sure that the example on how to use git-p4.branchList
works if typed directly.  In particular, it does not make sense
to set a config variable until the git repository has been
initialized.

Reported-by: Olivier Delalleau <shish@keba.be>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 09:46:30 -08:00
Pete Wyckoff
c595956db9 git p4: clone --branch should checkout master
When using the --branch argument to "git p4 clone", one
might specify a destination for p4 changes different from
the default refs/remotes/p4/master.  Both cases should
create a master branch and checkout files.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-15 09:46:29 -08:00
Junio C Hamano
eacf011775 Sync with 1.8.1.1 2013-01-14 08:22:27 -08:00
Junio C Hamano
77d07f51df Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14 08:21:35 -08:00
Junio C Hamano
e4f59a32de Git 1.8.1.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14 08:04:50 -08:00
Junio C Hamano
750a6cacf4 Merge branch 'jk/unify-exit-code-by-receiving-signal' into maint
* jk/unify-exit-code-by-receiving-signal:
  run-command: encode signal death as a positive integer
2013-01-14 08:01:27 -08:00
Junio C Hamano
32a03dc165 Merge branch 'jn/xml-depends-on-asciidoc-conf' into maint
* jn/xml-depends-on-asciidoc-conf:
  docs: manpage XML depends on asciidoc.conf
2013-01-14 08:01:00 -08:00
Junio C Hamano
267aaa08e2 Merge branch 'jk/maint-fast-import-doc-reorder' into maint
* jk/maint-fast-import-doc-reorder:
  git-fast-import(1): reorganise options
  git-fast-import(1): combine documentation of --[no-]relative-marks
2013-01-14 07:59:46 -08:00
Junio C Hamano
74abc17f91 Merge branch 'jk/shortlog-no-wrap-doc' into maint
* jk/shortlog-no-wrap-doc:
  git-shortlog(1): document behaviour of zero-width wrap
2013-01-14 07:59:03 -08:00
Junio C Hamano
7b9ea42b3c Merge branch 'jk/maint-fast-import-doc-dedup-done' into maint
* jk/maint-fast-import-doc-dedup-done:
  git-fast-import(1): remove duplicate '--done' option
2013-01-14 07:48:39 -08:00
Junio C Hamano
6cf0a9e9fc Merge branch 'mk/maint-graph-infinity-loop' into maint
* mk/maint-graph-infinity-loop:
  graph.c: infinite loop in git whatchanged --graph -m
2013-01-14 07:32:18 -08:00
Junio C Hamano
94702dd1ac Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-11 18:51:09 -08:00
Junio C Hamano
a96e8078a9 Merge branch 'jk/maint-fast-import-doc-reorder'
* jk/maint-fast-import-doc-reorder:
  git-fast-import(1): reorganise options
  git-fast-import(1): combine documentation of --[no-]relative-marks
2013-01-11 18:35:08 -08:00
Junio C Hamano
79637a44f7 Merge branch 'jk/shortlog-no-wrap-doc'
* jk/shortlog-no-wrap-doc:
  git-shortlog(1): document behaviour of zero-width wrap
2013-01-11 18:35:02 -08:00
Junio C Hamano
1eba20c045 Merge branch 'jn/xml-depends-on-asciidoc-conf'
* jn/xml-depends-on-asciidoc-conf:
  docs: manpage XML depends on asciidoc.conf
2013-01-11 18:34:38 -08:00
Junio C Hamano
edb6ad5b0a Merge branch 'jk/unify-exit-code-by-receiving-signal'
The internal logic had to deal with two representations of a death
of a child process by a signal.

* jk/unify-exit-code-by-receiving-signal:
  run-command: encode signal death as a positive integer
2013-01-11 18:34:32 -08:00
Junio C Hamano
98294e9875 Merge branch 'jc/format-patch-reroll'
Teach "format-patch" to prefix v4- to its output files for the
fourth iteration of a patch series, to make it easier for the
submitter to keep separate copies for iterations.

* jc/format-patch-reroll:
  format-patch: give --reroll-count a short synonym -v
  format-patch: document and test --reroll-count
  format-patch: add --reroll-count=$N option
  get_patch_filename(): split into two functions
  get_patch_filename(): drop "just-numbers" hack
  get_patch_filename(): simplify function signature
  builtin/log.c: stop using global patch_suffix
  builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter()
  builtin/log.c: drop unused "numbered" parameter from make_cover_letter()
2013-01-11 18:34:10 -08:00
Junio C Hamano
ab60f2ce2d Merge branch 'as/api-allocation-doc' into maint
* as/api-allocation-doc:
  api-allocation-growing.txt: encourage better variable naming
2013-01-11 16:51:01 -08:00
Junio C Hamano
02cb8da20d Merge branch 'jc/submittingpatches' into maint
* jc/submittingpatches:
  SubmittingPatches: give list and maintainer addresses
  SubmittingPatches: remove overlong checklist
  SubmittingPatches: mention subsystems with dedicated repositories
  SubmittingPatches: who am I and who cares?
2013-01-11 16:48:54 -08:00
Junio C Hamano
37a11306d5 Merge branch 'kb/maint-bundle-doc' into maint
* kb/maint-bundle-doc:
  Documentation: full-ness of a bundle is significant for cloning
  Documentation: correct example restore from bundle
2013-01-11 16:47:56 -08:00
Junio C Hamano
e6f1550aa5 Merge branch 'jn/warn-on-inaccessible-loosen' into maint
When attempting to read the XDG-style $HOME/.config/git/config and
finding that $HOME/.config/git is a file, we gave a wrong error
message, instead of treating the case as "a custom config file does
not exist there" and moving on.

* jn/warn-on-inaccessible-loosen:
  config: exit on error accessing any config file
  doc: advertise GIT_CONFIG_NOSYSTEM
  config: treat user and xdg config permission problems as errors
  config, gitignore: failure to access with ENOTDIR is ok
2013-01-11 16:47:07 -08:00
Nguyễn Thái Ngọc Duy
cfb70e1fa5 fetch: elaborate --depth action
--depth is explained as deepen, but the way it's applied, it can
shorten the history as well. Keen users may have noticed the
implication by the phrase "the specified number of commits from the
tip of each remote branch". Put "shorten" in the description to make
it clearer.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-11 09:11:10 -08:00
Nguyễn Thái Ngọc Duy
4dcb167fc3 fetch: add --unshallow for turning shallow repo into complete one
The user can do --depth=2147483647 (*) for restoring complete repo
now. But it's hard to remember. Any other numbers larger than the
longest commit chain in the repository would also do, but some
guessing may be involved. Make easy-to-remember --unshallow an alias
for --depth=2147483647.

Make upload-pack recognize this special number as infinite depth. The
effect is essentially the same as before, except that upload-pack is
more efficient because it does not have to traverse to the bottom
anymore.

The chance of a user actually wanting exactly 2147483647 commits
depth, not infinite, on a repository with a history that long, is
probably too small to consider. The client can learn to add or
subtract one commit to avoid the special treatment when that actually
happens.

(*) This is the largest positive number a 32-bit signed integer can
    contain. JGit and older C Git store depth as "int" so both are OK
    with this number. Dulwich does not support 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-01-11 09:09:30 -08:00
Junio C Hamano
a27d83aee9 Merge branch 'maint'
* maint:
  Prepare for 1.8.1.1
  Makefile: detect when PYTHON_PATH changes (cherry-picked)
2013-01-10 14:38:00 -08:00
Junio C Hamano
99621af877 Update draft release notes to 1.8.2 2013-01-10 14:36:23 -08:00
Junio C Hamano
bf7c3f749d Prepare for 1.8.1.1 2013-01-10 14:17:13 -08:00
Junio C Hamano
f6f3921db6 Merge branch 'ta/remove-stale-translated-tut' into maint
* ta/remove-stale-translated-tut:
  Remove Documentation/pt_BR/gittutorial.txt
2013-01-10 14:11:18 -08:00
Junio C Hamano
52f6eec305 Merge branch 'as/api-allocation-doc'
* as/api-allocation-doc:
  api-allocation-growing.txt: encourage better variable naming
2013-01-10 13:47:40 -08:00
Junio C Hamano
d912b0e44f Merge branch 'as/dir-c-cleanup'
Refactor and generally clean up the directory traversal API
implementation.

* as/dir-c-cleanup:
  dir.c: rename free_excludes() to clear_exclude_list()
  dir.c: refactor is_path_excluded()
  dir.c: refactor is_excluded()
  dir.c: refactor is_excluded_from_list()
  dir.c: rename excluded() to is_excluded()
  dir.c: rename excluded_from_list() to is_excluded_from_list()
  dir.c: rename path_excluded() to is_path_excluded()
  dir.c: rename cryptic 'which' variable to more consistent name
  Improve documentation and comments regarding directory traversal API
  api-directory-listing.txt: update to match code
2013-01-10 13:47:25 -08:00
Junio C Hamano
2adf7247ec Merge branch 'nd/wildmatch'
Allows pathname patterns in .gitignore and .gitattributes files
with double-asterisks "foo/**/bar" to match any number of directory
hierarchies.

* nd/wildmatch:
  wildmatch: replace variable 'special' with better named ones
  compat/fnmatch: respect NO_FNMATCH* even on glibc
  wildmatch: fix "**" special case
  t3070: Disable some failing fnmatch tests
  test-wildmatch: avoid Windows path mangling
  Support "**" wildcard in .gitignore and .gitattributes
  wildmatch: make /**/ match zero or more directories
  wildmatch: adjust "**" behavior
  wildmatch: fix case-insensitive matching
  wildmatch: remove static variable force_lower_case
  wildmatch: make wildmatch's return value compatible with fnmatch
  t3070: disable unreliable fnmatch tests
  Integrate wildmatch to git
  wildmatch: follow Git's coding convention
  wildmatch: remove unnecessary functions
  Import wildmatch from rsync
  ctype: support iscntrl, ispunct, isxdigit and isprint
  ctype: make sane_ctype[] const array

Conflicts:
	Makefile
2013-01-10 13:47:20 -08:00
Antoine Pelisse
e6bb5f78fb log: add log.mailmap configuration option
Teach "log.mailmap" configuration variable to turn "--use-mailmap"
option on to "git log", "git show" and "git whatchanged".

The "--no-use-mailmap" option from the command line can countermand
the setting.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10 12:33:09 -08:00
Antoine Pelisse
ea57bc0d41 log: add --use-mailmap option
Add the --use-mailmap option to log commands. It allows to display
names from mailmap file when displaying logs, whatever the format
used.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10 12:33:08 -08:00
Ralf Thielow
51fb3a3dfa commit: make default of "cleanup" option configurable
The default of the "cleanup" option in "git commit"
is not configurable. Users who don't want to use the
default have to pass this option on every commit since
there's no way to configure it. This commit introduces
a new config option "commit.cleanup" which can be used
to change the default of the "cleanup" option in
"git commit".

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10 11:45:02 -08:00
Peter Eisentraut
be33414b18 git-commit-tree(1): correct description of defaults
The old phrasing indicated that the EMAIL environment variable takes
precedence over the user.email configuration setting, but it is the
other way around.

Signed-off-by: Peter Eisentraut <peter@eisentraut.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10 10:18:51 -08:00
John Keeping
29b1b21f07 git-fast-import(1): reorganise options
The options in git-fast-import(1) are not currently arranged in a
logical order, which has caused the '--done' options to be documented
twice (commit 3266de10).

Rearrange them into logical groups under subheadings.

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09 14:16:06 -08:00
John Keeping
c8a9f3d385 git-fast-import(1): combine documentation of --[no-]relative-marks
The descriptions of '--relative-marks' and '--no-relative-marks' make
more sense when read together instead of as two independent options.
Combine them into a single description block.

Signed-off-by: John Keeping <john@keeping.me.uk>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09 14:10:53 -08:00
John Keeping
0e82bd0430 git-shortlog(1): document behaviour of zero-width wrap
Commit 00d3947 (Teach --wrap to only indent without wrapping) added
special behaviour for a width of zero in the '-w' argument to
'git-shortlog' but this was not documented.  Fix this.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09 14:08:59 -08:00
Junio C Hamano
44fe83502e Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09 10:19:49 -08:00
Junio C Hamano
3a2ce79981 Merge branch 'nd/maint-branch-desc-doc'
Teach various forms of "format-patch" command line to identify what
branch the patches are taken from, so that the branch description
is picked up in more cases.

* nd/maint-branch-desc-doc:
  format-patch: pick up branch description when no ref is specified
  format-patch: pick up correct branch name from symbolic ref
  t4014: a few more tests on cover letter using branch description
  branch: delete branch description if it's empty
  config.txt: a few lines about branch.<name>.description
2013-01-09 08:27:09 -08:00
Junio C Hamano
85ab3431e6 Merge branch 'jc/submittingpatches'
Streamline the document and update with a few e-mail addresses the
patches should be sent to.

* jc/submittingpatches:
  SubmittingPatches: give list and maintainer addresses
  SubmittingPatches: remove overlong checklist
  SubmittingPatches: mention subsystems with dedicated repositories
  SubmittingPatches: who am I and who cares?
2013-01-09 08:26:20 -08:00
Junio C Hamano
00f1a867b4 Merge branch 'er/stop-recommending-parsecvs'
Stop recommending a defunct third-party software.

* er/stop-recommending-parsecvs:
  Remove the suggestion to use parsecvs, which is currently broken.
2013-01-09 08:25:36 -08:00
Junio C Hamano
69637e5e6d Merge branch 'kb/maint-bundle-doc'
* kb/maint-bundle-doc:
  Documentation: full-ness of a bundle is significant for cloning
  Documentation: correct example restore from bundle
2013-01-08 13:23:26 -08:00
Junio C Hamano
f4de0de8d5 Merge branch 'ta/remove-stale-translated-tut'
Remove a translation of a document that was left stale.

* ta/remove-stale-translated-tut:
  Remove Documentation/pt_BR/gittutorial.txt
2013-01-08 13:23:10 -08:00
Junio C Hamano
2fa3335a26 Merge branch 'jk/maint-fast-import-doc-dedup-done'
* jk/maint-fast-import-doc-dedup-done:
  git-fast-import(1): remove duplicate '--done' option
2013-01-08 13:21:07 -08:00
John Keeping
850bc56def git-fast-import(1): remove duplicate '--done' option
The '--done' option to git-fast-import is documented twice in its manual
page.  Combine the best bits of each description, keeping the location
of the instance that was added first.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-08 13:20:45 -08:00
Junio C Hamano
4f43e9726a Merge branch 'jn/warn-on-inaccessible-loosen'
Deal with a situation where .config/git is a file and we notice
.config/git/config is not readable due to ENOTDIR, not ENOENT.

* jn/warn-on-inaccessible-loosen:
  config: exit on error accessing any config file
  doc: advertise GIT_CONFIG_NOSYSTEM
  config: treat user and xdg config permission problems as errors
  config, gitignore: failure to access with ENOTDIR is ok
2013-01-06 22:11:16 -08:00
Adam Spiers
368aa52952 add git-check-ignore sub-command
This works in a similar manner to git-check-attr.

Thanks to Jeff King and Junio C Hamano for the idea:
http://thread.gmane.org/gmane.comp.version-control.git/108671/focus=108815

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 14:26:38 -08:00
Adam Spiers
270be81604 dir.c: provide clear_directory() for reclaiming dir_struct memory
By the end of a directory traversal, a dir_struct instance will
typically contains pointers to various data structures on the heap.
clear_directory() provides a convenient way to reclaim that memory.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 14:26:37 -08:00
Adam Spiers
c082df2453 dir.c: use a single struct exclude_list per source of excludes
Previously each exclude_list could potentially contain patterns
from multiple sources.  For example dir->exclude_list[EXC_FILE]
would typically contain patterns from .git/info/exclude and
core.excludesfile, and dir->exclude_list[EXC_DIRS] could contain
patterns from multiple per-directory .gitignore files during
directory traversal (i.e. when dir->exclude_stack was more than
one item deep).

We split these composite exclude_lists up into three groups of
exclude_lists (EXC_CMDL / EXC_DIRS / EXC_FILE as before), so that each
exclude_list now contains patterns from a single source.  This will
allow us to cleanly track the origin of each pattern simply by adding
a src field to struct exclude_list, rather than to struct exclude,
which would make memory management of the source string tricky in the
EXC_DIRS case where its contents are dynamically generated.

Similarly, by moving the filebuf member from struct exclude_stack to
struct exclude_list, it allows us to track and subsequently free
memory buffers allocated during the parsing of all exclude files,
rather than only tracking buffers allocated for files in the EXC_DIRS
group.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 14:25:06 -08:00
Adam Spiers
5062f9e1b5 api-allocation-growing.txt: encourage better variable naming
The documentation for the ALLOC_GROW API implicitly encouraged
developers to use "ary" as the variable name for the array which is
dynamically grown.  However "ary" is an unusual abbreviation hardly
used anywhere else in the source tree, and it is also better to name
variables based on their contents not on their type.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 12:57:56 -08:00
Jonathan Nieder
fdb042449b docs: manpage XML depends on asciidoc.conf
When building manual pages, the source text is transformed to XML with
AsciiDoc before the man pages are generated from the XML with xmlto.

Fix the dependencies in the Makefile so that the XML files are rebuilt
when asciidoc.conf changes and not just the manual pages from
unchanged XML, and move the dependencies from a recipeless rule to the
rules with commands that use asciidoc.conf to make the dependencies
easier to understand and maintain.

Reported-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Tested-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 11:13:14 -08:00
Jeff King
709ca730f8 run-command: encode signal death as a positive integer
When a sub-command dies due to a signal, we encode the
signal number into the numeric exit status as "signal -
128". This is easy to identify (versus a regular positive
error code), and when cast to an unsigned integer (e.g., by
feeding it to exit), matches what a POSIX shell would return
when reporting a signal death in $? or through its own exit
code.

So we have a negative value inside the code, but once it
passes across an exit() barrier, it looks positive (and any
code we receive from a sub-shell will have the positive
form). E.g., death by SIGPIPE (signal 13) will look like
-115 to us in inside git, but will end up as 141 when we
call exit() with it. And a program killed by SIGPIPE but run
via the shell will come to us with an exit code of 141.

Unfortunately, this means that when the "use_shell" option
is set, we need to be on the lookout for _both_ forms. We
might or might not have actually invoked the shell (because
we optimize out some useless shell calls). If we didn't invoke
the shell, we will will see the sub-process's signal death
directly, and run-command converts it into a negative value.
But if we did invoke the shell, we will see the shell's
128+signal exit status. To be thorough, we would need to
check both, or cast the value to an unsigned char (after
checking that it is not -1, which is a magic error value).

Fortunately, most callsites do not care at all whether the
exit was from a code or from a signal; they merely check for
a non-zero status, and sometimes propagate the error via
exit(). But for the callers that do care, we can make life
slightly easier by just using the consistent positive form.

This actually fixes two minor bugs:

  1. In launch_editor, we check whether the editor died from
     SIGINT or SIGQUIT. But we checked only the negative
     form, meaning that we would fail to notice a signal
     death exit code which was propagated through the shell.

  2. In handle_alias, we assume that a negative return value
     from run_command means that errno tells us something
     interesting (like a fork failure, or ENOENT).
     Otherwise, we simply propagate the exit code. Negative
     signal death codes confuse us, and we print a useless
     "unable to run alias 'foo': Success" message. By
     encoding signal deaths using the positive form, the
     existing code just propagates it as it would a normal
     non-zero exit code.

The downside is that callers of run_command can no longer
differentiate between a signal received directly by the
sub-process, and one propagated. However, no caller
currently cares, and since we already optimize out some
calls to the shell under the hood, that distinction is not
something that should be relied upon by callers.

Fix the same logic in t/test-terminal.perl for consistency [jc:
raised by Jonathan in the discussion].

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 11:09:18 -08:00
Junio C Hamano
32238aeb73 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06 00:17:24 -08:00
Junio C Hamano
902f2f4f0a Merge branch 'wk/submodule-update-remote'
The beginning of 'integrate with the tip of the remote branch, not
the commit recorded in the superproject gitlink' support.

* wk/submodule-update-remote:
  submodule add: If --branch is given, record it in .gitmodules
  submodule update: add --remote for submodule's upstream changes
  submodule: add get_submodule_config helper funtion
2013-01-05 23:42:11 -08:00
Junio C Hamano
971e829cd8 Merge branch 'jk/pathspec-literal'
Allow scripts to feed literal paths to commands that take
pathspecs, by disabling wildcard globbing.

* jk/pathspec-literal:
  add global --literal-pathspecs option

Conflicts:
	dir.c
2013-01-05 23:42:07 -08:00
Junio C Hamano
946a5aee3e Merge branch 'jc/format-color-auto'
Introduce "log --format=%C(auto,blue)Foo%C(auto,reset)" that does
not color its output when writing to a non-terminal.

* jc/format-color-auto:
  log --format: teach %C(auto,black) to respect color config
  t6006: clean up whitespace
2013-01-05 23:41:57 -08:00
Junio C Hamano
3a3100a889 Merge branch 'jk/mailmap-from-blob'
Allow us to read, and default to read, mailmap files from the tip
of the history in bare repositories.  This will help running tools
like shortlog in server settings.

* jk/mailmap-from-blob:
  mailmap: default mailmap.blob in bare repositories
  mailmap: fix some documentation loose-ends for mailmap.blob
  mailmap: clean up read_mailmap error handling
  mailmap: support reading mailmap from blobs
  mailmap: refactor mailmap parsing for non-file sources
2013-01-05 23:41:42 -08:00
Junio C Hamano
9a2c83d24c Merge branch 'cr/push-force-tag-update'
Require "-f" for push to update a tag, even if it is a fast-forward.

* cr/push-force-tag-update:
  push: allow already-exists advice to be disabled
  push: rename config variable for more general use
  push: cleanup push rules comment
  push: clarify rejection of update to non-commit-ish
  push: require force for annotated tags
  push: require force for refs under refs/tags/
  push: flag updates that require force
  push: keep track of "update" state separately
  push: add advice for rejected tag reference
  push: return reject reasons as a bitset
2013-01-05 23:41:34 -08:00
Junio C Hamano
76523cac26 Merge branch 'fc/fast-export-fixes'
Various updates to fast-export used in the context of the remote
helper interface.

* fc/fast-export-fixes:
  fast-export: make sure updated refs get updated
  fast-export: don't handle uninteresting refs
  fast-export: fix comparison in tests
  fast-export: trivial cleanup
  remote-testgit: implement the "done" feature manually
  remote-testgit: report success after an import
  remote-testgit: exercise more features
  remote-testgit: cleanup tests
  remote-testgit: remove irrelevant test
  remote-testgit: remove non-local functionality
  Add new simplified git-remote-testgit
  Rename git-remote-testgit to git-remote-testpy
  remote-helpers: fix failure message
  remote-testgit: fix direction of marks
  fast-export: avoid importing blob marks
2013-01-05 23:41:09 -08:00
Junio C Hamano
ab05d7c736 howto/maintain: mark titles for asciidoc 2013-01-03 22:59:47 -08:00
Junio C Hamano
7952ea66e7 format-patch: give --reroll-count a short synonym -v
Accept "-v" as a synonym to "--reroll-count", so that users can say
"git format-patch -v4 master", instead of having to fully spell it
out as "git format-patch --reroll-count=4 master".

As I do not think of a reason why users would want to tell the
command to be "verbose", I think this should be OK.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-03 16:05:44 -08:00
Junio C Hamano
cc1b258e2a Documentation: update "howto maintain git"
The flow described in the document is still correct, but over time I
have automated various parts of the workflow with tools and their
use was not explained at all.

Update it and outline the use of two key scripts from the 'todo'
branch, "Reintegrate" and "cook".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-03 14:43:56 -08:00
Junio C Hamano
3e293fba62 Update draft release notes to 1.8.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-03 10:33:22 -08:00
Junio C Hamano
4aad08e061 format-patch: document and test --reroll-count
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-02 14:16:07 -08:00
Junio C Hamano
298caa7e9e Start 1.8.2 cycle
Various fixes that have been cooking in 'next' have been merged. All
of them should go to 'maint' for 1.8.1.1 later.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-02 10:56:08 -08:00
Junio C Hamano
4b32367ddc Merge branch 'mk/maint-graph-infinity-loop'
The --graph code fell into infinite loop when asked to do what the
code did not expect.

* mk/maint-graph-infinity-loop:
  graph.c: infinite loop in git whatchanged --graph -m
2013-01-02 10:39:09 -08:00
Junio C Hamano
f470e901f2 Merge branch 'mh/ceiling'
An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.

* mh/ceiling:
  string_list_longest_prefix(): remove function
  setup_git_directory_gently_1(): resolve symlinks in ceiling paths
  longest_ancestor_length(): require prefix list entries to be normalized
  longest_ancestor_length(): take a string_list argument for prefixes
  longest_ancestor_length(): use string_list_split()
  Introduce new function real_path_if_valid()
  real_path_internal(): add comment explaining use of cwd
  Introduce new static function real_path_internal()
2013-01-02 10:36:59 -08:00
Junio C Hamano
92a865e736 SubmittingPatches: give list and maintainer addresses
We told readers to "send it to the list" (or the maintainer) without
telling what addresses are to be used.  Correct this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-02 09:31:54 -08:00
Junio C Hamano
7d5bf87ba3 SubmittingPatches: remove overlong checklist
The section is no longer a concise checklist.  It also talks about
things that are not covered in the "Long version" text, which means
people need to read both, covering more or less the same thing in
different phrasing.

Fold the details into the main text and remove the section.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-02 09:31:09 -08:00
Junio C Hamano
b5fb4770ad Documentation: full-ness of a bundle is significant for cloning
Not necessarily every bundle file can be cloned from.  Only the ones
that do not need prerequisites can.

When 1d52b02 (Documentation: minor grammatical fixes and rewording
in git-bundle.txt, 2009-03-22) reworded this paragraph, it lost a
critical hint to tell readers why this particular bundle can be
cloned from.  Resurrect it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-01 15:48:20 -08:00
Junio C Hamano
e6da8ee8d8 SubmittingPatches: mention subsystems with dedicated repositories
These were only mentioned in periodical "A note from the maintainer"
posting and not in the documentation suite.  SubmittingPatches has a
section to help contributors decide on what commit to base their
changes, which is the most suitable place for this information.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-01 14:37:56 -08:00
Junio C Hamano
adcc42e68d SubmittingPatches: who am I and who cares?
The introductory text in the "long version" talks about the origin
of this document with "I started ...", but it is unclear who that I
is, and more importantly, it is not interesting how it was started.

Just state the purpose of the document to help readers decide if it
is releavant to them.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-01 14:35:22 -08:00
Kirill Brilliantov
ded6aa6bda Documentation: correct example restore from bundle
Because the bundle created in the example does not record HEAD, "git
clone" will not check out the files to the working tree:

    $ git clone pr.bundle q/
    Cloning into 'q'...
    Receiving objects: 100% (619/619), 13.52 MiB | 18.74 MiB/s, done.
    Resolving deltas: 100% (413/413), done.
    warning: remote HEAD refers to nonexistent ref, unable to checkout.

Avoid alarming the readers by adding "-b master" to the example.  A
better fix may be to arrange the bundle created in the earlier step
to record HEAD, so that it can be cloned without this workaround.

Signed-off-by: Brilliantov Kirill Vladimirovich <brilliantov@inbox.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-01 12:43:02 -08:00
Nguyễn Thái Ngọc Duy
a5ba2cbe14 config.txt: a few lines about branch.<name>.description
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-01 12:13:43 -08:00
Junio C Hamano
5d417842ef Git 1.8.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-31 14:25:57 -08:00
Adam Spiers
95a68344af Improve documentation and comments regarding directory traversal API
traversal API has a few potentially confusing properties.  These
comments clarify a few key aspects and will hopefully make it easier
to understand for other newcomers in the future.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-28 12:07:45 -08:00
Adam Spiers
f1a7082f2a api-directory-listing.txt: update to match code
7c4c97c0ac turned the flags in struct dir_struct into a single bitfield
variable, but forgot to update this document.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-28 12:07:45 -08:00
Eric S. Raymond
95f95c99f6 Remove the suggestion to use parsecvs, which is currently broken.
The parsecvs code has been neglected for a long time, and the only
public version does not even build correctly.  I have been handed
control of the project and intend to fix this, but until I do it
cannot be recommended.

Also, the project URL given for Subversion needed to be updated
to follow their site move.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-28 11:35:32 -08:00
Junio C Hamano
1b800f8f50 Sync with 1.8.0.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:59:42 -08:00
Junio C Hamano
15999998fb Git 1.8.0.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:57:20 -08:00
Junio C Hamano
6ecc01f26c git(1): show link to contributor summary page
We earlier removed a link to list of contributors that pointed to a
defunct page; let's use a working one from Ohloh.net to replace it
instead.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:40:09 -08:00
Junio C Hamano
2b05d9f917 Merge branch 'sl/maint-git-svn-docs' into maint
* sl/maint-git-svn-docs:
  git-svn: Note about tags.
  git-svn: Expand documentation for --follow-parent
  git-svn: Recommend use of structure options.
  git-svn: Document branches with at-sign(@).
2012-12-27 15:38:34 -08:00
Sebastian Leske
008c208c2c git-svn: Note about tags.
Document that 'git svn' will import SVN tags as branches.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:38:26 -08:00
Sebastian Leske
197a80d7d9 git-svn: Expand documentation for --follow-parent
Describe what the option --follow-parent does, and what happens if it is
set or unset.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:38:26 -08:00
Sebastian Leske
91583a6a85 git-svn: Recommend use of structure options.
Document that when using git svn, one should usually either use the
directory structure options to import branches as branches, or only
import one subdirectory. The default behaviour of cloning all branches
and tags as subdirectories in the working copy is usually not what the
user wants.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:38:26 -08:00
Sebastian Leske
d658835c19 git-svn: Document branches with at-sign(@).
git svn sometimes creates branches with an at-sign in the name
(branchname@revision). These branches confuse many users and it is a FAQ
why they are created. Document when git svn creates them.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:38:26 -08:00
Junio C Hamano
4017edcfac Merge branch 'gb/maint-doc-svn-log-window-size' into maint
* branch 'gb/maint-doc-svn-log-window-size':
  Document git-svn fetch --log-window-size parameter
2012-12-27 15:34:37 -08:00
Junio C Hamano
8c6bda0f4d Merge branch 'km/maint-doc-git-reset' into maint
* branch 'km/maint-doc-git-reset':
  doc: git-reset: make "<mode>" optional
2012-12-27 15:32:27 -08:00
Max Horn
6cf9614df6 git-remote-helpers.txt: document invocation before input format
In the distant past, the order things were documented was
'Invocation', 'Commands', 'Capabilities', ...

Then it was decided that before giving a list of Commands, there
should be an overall description of the 'Input format', which was
a wise decision. However, this description was put as the very
first thing, with the rationale that any implementor would want
to know that first.

However, it seems an implementor would actually first need to
know how the remote helper will be invoked, so moving
'Invocation' to the front again seems logical. Moreover, we now
don't switch from discussing the input format to the invocation
style and then back to input related stuff.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:30:14 -08:00
Junio C Hamano
0a1b59eb86 Merge branch 'jk/avoid-mailto-invalid-in-doc' into maint
* jk/avoid-mailto-invalid-in-doc:
  Documentation: don't link to example mail addresses
2012-12-27 15:27:46 -08:00
Junio C Hamano
4f96f1fbab Merge branch 'tj/maint-doc-commit-sign' into maint
* branch 'tj/maint-doc-commit-sign':
  Add -S, --gpg-sign option to manpage of "git commit"
2012-12-27 15:25:03 -08:00
Ramkumar Ramachandra
0b830ac521 Documentation: move diff.wordRegex from config.txt to diff-config.txt
19299a8 (Documentation: Move diff.<driver>.* from config.txt to
diff-config.txt, 2011-04-07) moved the diff configuration options to
diff-config.txt, but forgot about diff.wordRegex, which was left
behind in config.txt.  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 15:21:46 -08:00
Thomas Ackermann
0a85441cdb Remove Documentation/pt_BR/gittutorial.txt
This file is rather outdated and IMHO shouldn't be there in the first place.
(If there are translations of the Git documentation they are better be kept
separate from the original documentation.)

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-27 08:42:33 -08:00
Junio C Hamano
86c3e6ed51 Merge branch 'maint' 2012-12-22 20:40:07 -08:00
Junio C Hamano
c2999adcd5 Merge branch 'jc/doc-diff-blobs' into maint
* jc/doc-diff-blobs:
  Documentation: Describe "git diff <blob> <blob>" separately
2012-12-22 20:38:07 -08:00
Junio C Hamano
a7b5e9141e Merge branch 'cr/doc-checkout-branch' into maint
* cr/doc-checkout-branch:
  Documentation/git-checkout.txt: document 70c9ac2 behavior
  Documentation/git-checkout.txt: clarify usage
2012-12-22 20:38:02 -08:00
Junio C Hamano
2b1965863b Merge branch 'ta/api-index-doc' into maint
* ta/api-index-doc:
  Remove misleading date from api-index-skel.txt
2012-12-22 20:37:42 -08:00
Junio C Hamano
ffcd76bda9 Merge branch 'as/doc-for-devs' into maint
* as/doc-for-devs:
  Documentation: move support for old compilers to CodingGuidelines
  SubmittingPatches: add convention of prefixing commit messages
2012-12-22 20:37:33 -08:00
Junio C Hamano
21b340181b Merge branch 'jc/fetch-tags-doc' into maint
* jc/fetch-tags-doc:
  fetch --tags: clarify documentation
2012-12-22 20:37:22 -08:00
Junio C Hamano
df54d59566 Merge branch 'nd/index-format-doc' into maint
* nd/index-format-doc:
  index-format.txt: clarify what is "invalid"
2012-12-22 20:37:09 -08:00
Junio C Hamano
66afe50b43 Merge branch 'ta/doc-cleanup' into maint
* ta/doc-cleanup:
  Documentation: build html for all files in technical and howto
  Documentation/howto: convert plain text files to asciidoc
  Documentation/technical: convert plain text files to asciidoc
  Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
  Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
  Split over-long synopsis in git-fetch-pack.txt into several lines
2012-12-22 20:35:34 -08:00
Thomas Ackermann
854dfda8be Sort howto documents in howto-index.txt
Howto documents in howto-index.txt were listed in a rather
random order. So better sort them.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-22 20:26:56 -08:00
Junio C Hamano
b10c4add03 Merge branch 'ta/new-command-howto'
* ta/new-command-howto:
  Move ./technical/api-command.txt to ./howto/new-command.txt
2012-12-21 15:19:25 -08:00
Junio C Hamano
814a1924b4 Merge branch 'jc/doc-diff-blobs'
"git diff <blob> <blob>" was not documented and was only hinted as
an extension to "git diff <commit> <commit> -- <pathspec>", but
comparison between two blobs are more special than that.  It does
not take any pathspec to begin with.

* jc/doc-diff-blobs:
  Documentation: Describe "git diff <blob> <blob>" separately
2012-12-21 15:19:13 -08:00
Junio C Hamano
51bf6bea51 Merge branch 'cr/doc-checkout-branch'
Document the magic "git checkout <no-such-branch>" hack to create
local branch out of a remote tracking branch that hasn't been
documented so far.

* cr/doc-checkout-branch:
  Documentation/git-checkout.txt: document 70c9ac2 behavior
  Documentation/git-checkout.txt: clarify usage
2012-12-21 15:19:08 -08:00
Junio C Hamano
6600dcbd30 Merge branch 'ta/api-index-doc'
* ta/api-index-doc:
  Remove misleading date from api-index-skel.txt
2012-12-21 15:19:04 -08:00
Junio C Hamano
53096bf0af Merge branch 'jk/avoid-mailto-invalid-in-doc'
Avoids invalid sample e-mail addresses from becoming mailto links
in the formatted output.

* jk/avoid-mailto-invalid-in-doc:
  Documentation: don't link to example mail addresses
2012-12-21 15:18:57 -08:00
Junio C Hamano
c2c6a70a54 Merge branch 'as/doc-for-devs'
It might be a better idea to move the text the bottom one adds to
the extended description from the quick checklist part.

* as/doc-for-devs:
  Documentation: move support for old compilers to CodingGuidelines
  SubmittingPatches: add convention of prefixing commit messages
2012-12-21 15:18:47 -08:00
Junio C Hamano
73cf1b540e Merge branch 'jc/fetch-tags-doc'
"git fetch --tags" was explained as if it were "git fetch
--no-no-tags", which is not the case, causing confusion.

* jc/fetch-tags-doc:
  fetch --tags: clarify documentation
2012-12-21 15:18:35 -08:00
Junio C Hamano
d34ccd6df7 Merge branch 'nd/index-format-doc'
* nd/index-format-doc:
  index-format.txt: clarify what is "invalid"
2012-12-21 15:18:32 -08:00
Junio C Hamano
80c78e11a0 Merge branch 'sl/git-svn-docs'
* sl/git-svn-docs:
  git-svn: Note about tags.
  git-svn: Expand documentation for --follow-parent
  git-svn: Recommend use of structure options.
  git-svn: Document branches with at-sign(@).
2012-12-21 15:18:27 -08:00
Thomas Ackermann
81670e9bfc Move ./technical/api-command.txt to ./howto/new-command.txt
The contents of this document does not describe any particular API, but
is more about the way to add a new command, which belongs to the "How To"
section of the documentation suite.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-21 10:35:53 -08:00
Jeff King
823ab40fd4 add global --literal-pathspecs option
Git takes pathspec arguments in many places to limit the
scope of an operation. These pathspecs are treated not as
literal paths, but as glob patterns that can be fed to
fnmatch. When a user is giving a specific pattern, this is a
nice feature.

However, when programatically providing pathspecs, it can be
a nuisance. For example, to find the latest revision which
modified "$foo", one can use "git rev-list -- $foo". But if
"$foo" contains glob characters (e.g., "f*"), it will
erroneously match more entries than desired. The caller
needs to quote the characters in $foo, and even then, the
results may not be exactly the same as with a literal
pathspec. For instance, the depth checks in
match_pathspec_depth do not kick in if we match via fnmatch.

This patch introduces a global command-line option (i.e.,
one for "git" itself, not for specific commands) to turn
this behavior off. It also has a matching environment
variable, which can make it easier if you are a script or
porcelain interface that is going to issue many such
commands.

This option cannot turn off globbing for particular
pathspecs. That could eventually be done with a ":(noglob)"
magic pathspec prefix. However, that level of granularity is
more cumbersome to use for many cases, and doing ":(noglob)"
right would mean converting the whole codebase to use
"struct pathspec", as the usual "const char **pathspec"
cannot represent extra per-item flags.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-19 14:58:59 -08:00
Thomas Ackermann
18499ba694 Remove duplicate entry in ./Documentation/Makefile
Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-19 10:24:23 -08:00
W. Trevor King
b928922727 submodule add: If --branch is given, record it in .gitmodules
This allows you to easily record a submodule.<name>.branch option in
.gitmodules when you add a new submodule.  With this patch,

  $ git submodule add -b <branch> <repository> [<path>]
  $ git config -f .gitmodules submodule.<path>.branch <branch>

reduces to

  $ git submodule add -b <branch> <repository> [<path>]

This means that future calls to

  $ git submodule update --remote ...

will get updates from the same branch that you used to initialize the
submodule, which is usually what you want.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-19 09:40:51 -08:00
W. Trevor King
06b1abb5bd submodule update: add --remote for submodule's upstream changes
The current `update` command incorporates the superproject's gitlinked
SHA-1 ($sha1) into the submodule HEAD ($subsha1).  Depending on the
options you use, it may checkout $sha1, rebase the $subsha1 onto
$sha1, or merge $sha1 into $subsha1.  This helps you keep up with
changes in the upstream superproject.

However, it's also useful to stay up to date with changes in the
upstream subproject.  Previous workflows for incorporating such
changes include the ungainly:

  $ git submodule foreach 'git checkout $(git config --file $toplevel/.gitmodules submodule.$name.branch) && git pull'

With this patch, all of the useful functionality for incorporating
superproject changes can be reused to incorporate upstream subproject
updates.  When you specify --remote, the target $sha1 is replaced with
a $sha1 of the submodule's origin/master tracking branch.  If you want
to merge a different tracking branch, you can configure the
`submodule.<name>.branch` option in `.gitmodules`.  You can override
the `.gitmodules` configuration setting for a particular superproject
by configuring the option in that superproject's default configuration
(using the usual configuration hierarchy, e.g. `.git/config`,
`~/.gitconfig`, etc.).

Previous use of submodule.<name>.branch
=======================================

Because we're adding a new configuration option, it's a good idea to
check if anyone else is already using the option.  The foreach-pull
example above was described by Ævar in

  commit f030c96d86
  Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
  Date:   Fri May 21 16:10:10 2010 +0000

    git-submodule foreach: Add $toplevel variable

Gerrit uses the same interpretation for the setting, but because
Gerrit has direct access to the subproject repositories, it updates
the superproject repositories automatically when a subproject changes.
Gerrit also accepts the special value '.', which it expands into the
superproject's branch name.

Although the --remote functionality is using `submodule.<name>.branch`
slightly differently, the effect is the same.  The foreach-pull
example uses the option to record the name of the local branch to
checkout before pulls.  The tracking branch to be pulled is recorded
in `.git/modules/<name>/config`, which was initialized by the module
clone during `submodule add` or `submodule init`.  Because the branch
name stored in `submodule.<name>.branch` was likely the same as the
branch name used during the initial `submodule add`, the same branch
will be pulled in each workflow.

Implementation details
======================

In order to ensure a current tracking branch state, `update --remote`
fetches the submodule's remote repository before calculating the
SHA-1.  However, I didn't change the logic guarding the existing fetch:

  if test -z "$nofetch"
  then
    # Run fetch only if $sha1 isn't present or it
    # is not reachable from a ref.
    (clear_local_git_env; cd "$path" &&
      ( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
       test -z "$rev") || git-fetch)) ||
    die "$(eval_gettext "Unable to fetch in submodule path '\$path'")"
  fi

There will not be a double-fetch, because the new $sha1 determined
after the `--remote` triggered fetch should always exist in the
repository.  If it doesn't, it's because some racy process removed it
from the submodule's repository and we *should* be re-fetching.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-19 09:40:01 -08:00
Junio C Hamano
bd52900df4 Documentation: Describe "git diff <blob> <blob>" separately
As it was not a common operation, it was described as if it is a
side note for the more common two-commit variant, but this mode
behaves very differently, e.g. it does not make any sense to ask
recursive behaviour, or give the command a pathspec.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18 11:35:28 -08:00
Chris Rorvick
00bb4378c7 Documentation/git-checkout.txt: document 70c9ac2 behavior
Document the behavior implemented in 70c9ac2 (DWIM "git checkout
frotz" to "git checkout -b frotz origin/frotz").

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18 11:07:44 -08:00
Chris Rorvick
e1cdf63316 Documentation/git-checkout.txt: clarify usage
The forms of checkout that do not take a path are lumped together in
the DESCRIPTION section, but the description for this group is
dominated by explanation of the -b|-B form.

Split these apart for more clarity.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18 11:04:52 -08:00
Junio C Hamano
b7cd0c9b69 Sync with 'maint' 2012-12-18 10:51:22 -08:00
Sitaram Chamarty
31d66aa408 clarify -M without % symbol in diff-options
Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-18 08:46:15 -08:00
Junio C Hamano
30825178fb log --format: teach %C(auto,black) to respect color config
Traditionally, %C(color attr) always emitted the ANSI color
sequence; it was up to the scripts that wanted to conditionally
color their output to omit %C(...) specifier when they do not want
colors.

Optionally allow "auto," to be prefixed to the color, so that the
output is colored iff we would color regular "log" output
(e.g., taking into account color.* and --color command line
options).

Tests and pretty_context bits by Jeff King <peff@peff.net>.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-17 17:30:04 -08:00
Adam Spiers
a26fd033af Documentation: move support for old compilers to CodingGuidelines
The "Try to be nice to older C compilers" text is clearly a guideline
to be borne in mind whilst coding rather than when submitting patches.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16 18:30:53 -08:00
Adam Spiers
6a5b649883 SubmittingPatches: add convention of prefixing commit messages
Conscientious newcomers to git development will read SubmittingPatches
and CodingGuidelines, but could easily miss the convention of
prefixing commit messages with a single word identifying the file
or area the commit touches.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16 18:30:50 -08:00
John Keeping
f430ed8b99 Documentation: don't link to example mail addresses
Email addresses in documentation are converted into mailto: hyperlinks
in the HTML output and footnotes in man pages.  This isn't desirable for
cases where the address is used as an example and is not valid.

Particularly annoying is the example "jane@laptop.(none)" which appears
in git-shortlog(1) as "jane@laptop[1].(none)", with note 1 saying:

	1. jane@laptop
	   mailto:jane@laptop

Fix this by escaping these email addresses with a leading backslash, to
prevent Asciidoc expanding them as inline macros.

In the case of mailmap.txt, render the address monospaced so that it
matches the block examples surrounding that paragraph.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16 17:59:07 -08:00
Thomas Ackermann
a041c9c752 Remove misleading date from api-index-skel.txt
Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-16 11:57:41 -08:00
Junio C Hamano
2e900297db Git 1.8.1-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-15 11:19:02 -08:00
Thomas Ackermann
fef11965da Renumber list in api-command.txt
Start list with 1 instead of 0; ASCIIDOC will renumber it anyway.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-15 10:46:47 -08:00
Junio C Hamano
f0cb2f137c fetch --tags: clarify documentation
Explain that --tags is just like another explicit refspec on the
command line and as such overrides the default refspecs configured
via the remote.$name.fetch variable.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13 16:19:45 -08:00
Junio C Hamano
790c83cda9 Merge branch 'maint' 2012-12-13 11:13:56 -08:00
Junio C Hamano
538d1239a8 Merge branch 'mh/doc-remote-helpers'
* mh/doc-remote-helpers:
  git-remote-helpers.txt: clarify options & ref list attributes
  git-remote-helpers.txt: clarify command <-> capability correspondences
  git-remote-helpers.txt: rearrange description of capabilities
  git-remote-helpers.txt: minor grammar fix
  git-remote-helpers.txt: document missing capabilities
  git-remote-helpers.txt: document invocation before input format
2012-12-13 11:00:15 -08:00
Manlio Perillo
75940a001a git.txt: add missing info about --git-dir command-line option
Unlike other environment variables (e.g. GIT_WORK_TREE,	GIT_NAMESPACE),
the Documentation/git.txt file did not mention that the GIT_DIR
environment variable can also be set using the --git-dir command line
option.

Signed-off-by: Manlio Perillo <manlio.perillo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13 10:54:01 -08:00
Jeff King
8c473cecfd mailmap: default mailmap.blob in bare repositories
The motivation for mailmap.blob is to let users of bare
repositories use the mailmap feature, as they would not have
a checkout containing the .mailmap file. We can make it even
easier for them by just looking in HEAD:.mailmap by default.

We can't know for sure that this is where they would keep a
mailmap, of course, but it is the best guess (and it matches
the non-bare behavior, which reads from HEAD:.mailmap in the
working tree). If it's missing, git will silently ignore the
setting.

We do not do the same magic in the non-bare case, because:

  1. In the common case, HEAD:.mailmap will be the same as
     the .mailmap in the working tree, which is a no-op.

  2. In the uncommon case, the user has modified .mailmap
     but not yet committed it, and would expect the working
     tree version to take precedence.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13 10:22:13 -08:00
Jeff King
d5422b0c0b mailmap: fix some documentation loose-ends for mailmap.blob
Anywhere we mention mailmap.file, it is probably worth
mentioning mailmap.blob, as well.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13 10:19:26 -08:00
Nguyễn Thái Ngọc Duy
4a6385fe55 index-format.txt: clarify what is "invalid"
A cache-tree entry with a negative entry count is considered invalid
by the current Git; it records that we do not know the object name
of a tree that would result by writing the directory covered by the
cache-tree as a tree object.

Clarify that any entry with a negative entry count is invalid, but
the implementations must write -1 there. This way, we can later
decide to allow writers to use negative values other than -1 to
encode optional information on such invalidated entries without
harming interoperability; we do not know what will be encoded and
how, so we keep these other negative values as reserved for now.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-13 10:12:25 -08:00
Junio C Hamano
24a62db7bb git(1): show link to contributor summary page
We earlier removed a link to list of contributors that pointed to a
defunct page; let's use a working one from Ohloh.net to replace it
instead.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12 11:58:17 -08:00
Jeff King
086109006f mailmap: support reading mailmap from blobs
In a bare repository, there isn't a simple way to respect an
in-tree mailmap without extracting it to a temporary file.
This patch provides a config variable, similar to
mailmap.file, which reads the mailmap from a blob in the
repository.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-12 11:12:35 -08:00
Junio C Hamano
7e0651a630 Sync with 1.8.0.2
* maint:
  Git 1.8.0.2
  Documentation/git-stash.txt: add a missing verb
  git(1): remove a defunct link to "list of authors"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-10 13:07:12 -08:00
Junio C Hamano
3e53891f85 Git 1.8.0.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-10 13:05:47 -08:00
Sébastien Loriot
5badfdcf88 Documentation/git-stash.txt: add a missing verb
Signed-off-by: Sébastien Loriot <sloriot.ml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-10 08:18:25 -08:00
Junio C Hamano
ac046c0e8c git(1): remove a defunct link to "list of authors"
The linked page has not been showing the promised "more complete
list" for more than 6 months by now, and nobody has resurrected
the list there nor elsewhere since then.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-09 00:33:04 -08:00
Junio C Hamano
816f290752 Git 1.8.1-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 15:17:21 -08:00
Junio C Hamano
00704e4ba5 Documentation/diff-config: work around AsciiDoc misfortune
The line that happens to begin with indent followed by "3. " was
interpreted as if it was an enumerated list; just wrap the lines
differently to work it around for now.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 15:15:59 -08:00
Junio C Hamano
5a2c11b6db Merge branch 'maint'
* maint:
  Update draft release notes to 1.8.0.2
2012-12-07 14:16:52 -08:00
Junio C Hamano
a859d3ee57 Update draft release notes to 1.8.0.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 14:16:38 -08:00
Junio C Hamano
f07f4134ae Merge branch 'jc/doc-push-satellite' into maint
* jc/doc-push-satellite:
  Documentation/git-push.txt: clarify the "push from satellite" workflow
2012-12-07 14:11:21 -08:00
Max Horn
9ec8bcda60 git-remote-helpers.txt: clarify options & ref list attributes
The documentation was misleading in that it gave the impression that
'for-push' could be used as a ref attribute in the output of the
'list' command. That is wrong.

Also, explicitly point out the connection between the commands
'list' and 'options' on the one hand, and the sections
'REF LIST ATTRIBUTES' and 'OPTIONS' on the other hand.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:15 -08:00
Max Horn
754cb1aeba git-remote-helpers.txt: clarify command <-> capability correspondences
In particular, document 'list for-push' separately from 'list', as
the former needs only be supported for the push/export
capabilities, and the latter only for fetch/import. Indeed, a
hypothetically 'push-only' helper would only need to support the
former, not the latter.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:15 -08:00
Max Horn
0673bb28d0 git-remote-helpers.txt: rearrange description of capabilities
This also remove some duplication in the descriptions
(e.g. refspec was explained twice with similar level of detail).

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:15 -08:00
Max Horn
b20c457a39 git-remote-helpers.txt: minor grammar fix
Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:15 -08:00
Max Horn
b4b106e5a5 git-remote-helpers.txt: document missing capabilities
Specifically, document the 'export' and '(im|ex)port-marks'
capabilities as well as the export command, which were
undocumented (but in active use).

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:15 -08:00
Max Horn
f829a9eae6 git-remote-helpers.txt: document invocation before input format
In the distant past, the order things were documented was
'Invocation', 'Commands', 'Capabilities', ...

Then it was decided that before giving a list of Commands, there
should be an overall description of the 'Input format', which was
a wise decision. However, this description was put as the very
first thing, with the rationale that any implementor would want
to know that first.

However, it seems an implementor would actually first need to
know how the remote helper will be invoked, so moving
'Invocation' to the front again seems logical. Moreover, we now
don't switch from discussing the input format to the invocation
style and then back to input related stuff.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-07 13:54:14 -08:00
Sebastian Leske
dd465ce66f git-svn: Note about tags.
Document that 'git svn' will import SVN tags as branches.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-05 14:39:55 -08:00
Sebastian Leske
0d35bfe1be git-svn: Expand documentation for --follow-parent
Describe what the option --follow-parent does, and what happens if it is
set or unset.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-05 14:39:55 -08:00
Sebastian Leske
92166fd7b4 git-svn: Recommend use of structure options.
Document that when using git svn, one should usually either use the
directory structure options to import branches as branches, or only
import one subdirectory. The default behaviour of cloning all branches
and tags as subdirectories in the working copy is usually not what the
user wants.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-05 14:39:55 -08:00
Sebastian Leske
7cad29d558 git-svn: Document branches with at-sign(@).
git svn sometimes creates branches with an at-sign in the name
(branchname@revision). These branches confuse many users and it is a FAQ
why they are created. Document when git svn creates them.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-05 14:39:55 -08:00
Junio C Hamano
fb4c62235f Merge branch 'mm/status-push-pull-advise'
* mm/status-push-pull-advise:
  document that statusHints affects git checkout
2012-12-04 13:34:10 -08:00
Matthieu Moy
552755a88b document that statusHints affects git checkout
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-04 07:57:30 -08:00
Junio C Hamano
ee26a6e2b8 Git 1.8.1-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-03 09:49:51 -08:00
Chris Rorvick
b450568209 push: allow already-exists advice to be disabled
Add 'advice.pushAlreadyExists' option to disable the advice shown when
an update is rejected for a reference that is not allowed to update at
all (verses those that are allowed to fast-forward.)

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-03 08:04:09 -08:00
Chris Rorvick
1184564eac push: rename config variable for more general use
The 'pushNonFastForward' advice config can be used to squelch several
instances of push-related advice.  Rename it to 'pushUpdateRejected' to
cover other reject scenarios that are unrelated to fast-forwarding.
Retain the old name for compatibility.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-03 08:04:08 -08:00
Chris Rorvick
40eff17999 push: require force for annotated tags
Do not allow fast-forwarding of references that point to a tag object.
Updating from a tag is potentially destructive since it would likely
leave the tag dangling.  Disallowing updates to a tag also makes sense
semantically and is consistent with the behavior of lightweight tags.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-02 01:44:49 -08:00
Chris Rorvick
dbfeddb12e push: require force for refs under refs/tags/
References are allowed to update from one commit-ish to another if the
former is an ancestor of the latter.  This behavior is oriented to
branches which are expected to move with commits.  Tag references are
expected to be static in a repository, though, thus an update to
something under refs/tags/ should be rejected unless the update is
forced.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-02 01:44:34 -08:00
Junio C Hamano
f94c3251e1 Update draft release notes to 1.8.1 2012-11-29 13:57:09 -08:00
Junio C Hamano
7472ad1dae Merge branch 'jc/doc-push-satellite'
* jc/doc-push-satellite:
  Documentation/git-push.txt: clarify the "push from satellite" workflow
2012-11-29 12:52:54 -08:00
Junio C Hamano
03a23a46c5 Merge branch 'er/doc-add-new-commands'
* er/doc-add-new-commands:
  Documentation: how to add a new command
2012-11-29 12:52:36 -08:00
Junio C Hamano
8a6a6f4259 Merge branch 'maint'
* maint:
  git-fast-import.txt: improve documentation for quoted paths
  git-remote-mediawiki: escape ", \, and LF in file names
2012-11-29 12:21:17 -08:00
Felipe Contreras
fc407f9821 Add new simplified git-remote-testgit
Exercising the python remote helper framework is for another tool and
another test. This is about testing the remote-helper interface.

It's way simpler, it exercises the same features of remote helpers, it's
easy to read and understand, and it doesn't depend on python.

For now let's just copy the old remote-helpers test script, although
some of those tests don't make sense. In addition, this script would be
able to test other features not currently being tested.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-29 12:18:45 -08:00
Matthieu Moy
7c65b2ebb7 git-fast-import.txt: improve documentation for quoted paths
The documentation mentioned only newlines and double quotes as
characters needing escaping, but the backslash also needs it. Also, the
documentation was not clearly saying that double quotes around the file
name were required (double quotes in the examples could be interpreted as
part of the sentence, not part of the actual string).

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-29 11:49:51 -08:00
Junio C Hamano
226dcb5256 Merge branch 'maint' 2012-11-28 13:49:33 -08:00
Junio C Hamano
8f8af9f4d1 Update draft release notes to 1.8.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-28 13:49:10 -08:00
Junio C Hamano
93341d805f Start preparing for 1.8.0.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-28 13:40:02 -08:00
Junio C Hamano
b48990e738 Documentation/git-push.txt: clarify the "push from satellite" workflow
The context of the example to push into refs/remotes/satellite/
hierarchy of the other repository needs to be spelled out explicitly
for the value of this example to be fully appreciated.  Make it so.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27 22:39:08 -08:00
Junio C Hamano
b7973fbbc3 Merge branch 'maint' 2012-11-27 13:29:08 -08:00
Junio C Hamano
a7c940edce Merge branch 'esr/maint-doc-fast-import' into maint
* esr/maint-doc-fast-import:
  doc/fast-import: clarify how content states are built
2012-11-27 13:28:31 -08:00
Junio C Hamano
2207e104ab Merge branch 'wtk/submodule-doc-fixup' into maint
* wtk/submodule-doc-fixup:
  git-submodule: wrap branch option with "<>" in usage strings.
2012-11-27 13:28:18 -08:00
Mark Szepieniec
6b6e063c44 Documentation: improve phrasing in git-push.txt
The current version contains the sentence:

Further suppose that the other person already pushed changes leading to
A back to the original repository you two obtained the original commit
X.

which doesn't parse for me; I've changed it to

Further suppose that the other person already pushed changes leading to
A back to the original repository from which you two obtained the
original commit X.

Signed-off-by: Mark Szepieniec <mszepien@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27 09:12:58 -08:00
Eric S. Raymond
29ed5489af Documentation: how to add a new command
This document contains no new policies or proposals; it attempts to
document established practices and interface requirements.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-26 13:43:21 -08:00
Junio C Hamano
e8a1f5a2ae Update draft release notes to 1.8.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-25 18:52:42 -08:00
Junio C Hamano
be95387af2 Merge branch 'rr/submodule-diff-config'
Allow "git diff --submodule=log" to set to be the default via
configuration.

* rr/submodule-diff-config:
  submodule: display summary header in bold
  diff: rename "set" variable
  diff: introduce diff.submodule configuration variable
  Documentation: move diff.wordRegex from config.txt to diff-config.txt
2012-11-25 18:44:50 -08:00
Junio C Hamano
f9b329a7d1 Sync with 1.8.0.1 2012-11-25 18:40:55 -08:00
Junio C Hamano
ed9fe75513 Git 1.8.0.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-25 18:40:34 -08:00
Junio C Hamano
2d242fb3fc Update draft release notes for 1.8.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-21 13:32:58 -08:00
Junio C Hamano
22d33a20f9 Merge branch 'esr/maint-doc-fast-import'
* esr/maint-doc-fast-import:
  doc/fast-import: clarify how content states are built
2012-11-21 13:32:48 -08:00
Junio C Hamano
681b036fa0 Merge branch 'wtk/submodule-doc-fixup'
* wtk/submodule-doc-fixup:
  git-submodule: wrap branch option with "<>" in usage strings.
2012-11-21 13:25:42 -08:00
Junio C Hamano
3a189da601 Sixth batch for 1.8.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-20 10:46:29 -08:00
Junio C Hamano
b4f35513be Merge branch 'jl/submodule-rm'
* jl/submodule-rm:
  docs: move submodule section
2012-11-20 10:40:31 -08:00
Junio C Hamano
dc998a489a Merge branch 'ta/doc-cleanup'
* ta/doc-cleanup:
  Documentation: build html for all files in technical and howto
  Documentation/howto: convert plain text files to asciidoc
  Documentation/technical: convert plain text files to asciidoc
  Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
  Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
  Split over-long synopsis in git-fetch-pack.txt into several lines
2012-11-20 10:32:58 -08:00
Junio C Hamano
80dfab86cd Sync with maint
* maint:
  Further preparation for 1.8.0.1
2012-11-20 10:16:34 -08:00
Junio C Hamano
1c03999bef Further preparation for 1.8.0.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-20 10:16:14 -08:00
Junio C Hamano
cf48960b6d Merge branch 'mm/maint-doc-commit-edit' into maint
* mm/maint-doc-commit-edit:
  Document 'git commit --no-edit' explicitly
2012-11-20 10:14:55 -08:00
Junio C Hamano
cdcd793213 Merge branch 'as/maint-doc-fix-no-post-rewrite' into maint
* as/maint-doc-fix-no-post-rewrite:
  commit: fixup misplacement of --no-post-rewrite description
2012-11-20 10:14:47 -08:00
Junio C Hamano
f3828dc066 Sync with maint 2012-11-18 19:48:31 -08:00
Junio C Hamano
2808f6abc2 Start preparing for 1.8.0.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-18 19:47:19 -08:00
Junio C Hamano
b98769e06e Merge branch 'po/maint-refs-replace-docs' into maint
The refs/replace hierarchy was not mentioned in the
repository-layout docs.

* po/maint-refs-replace-docs:
  Doc repository-layout: Show refs/replace
2012-11-18 19:34:09 -08:00
Junio C Hamano
78ba7e267c Merge branch 'mm/maint-doc-remote-tracking' into maint
Update "remote tracking branch" in the documentation to
"remote-tracking branch".

* mm/maint-doc-remote-tracking:
  Documentation: remote tracking branch -> remote-tracking branch
2012-11-18 19:33:20 -08:00
Ramkumar Ramachandra
c47ef57caa diff: introduce diff.submodule configuration variable
Introduce a diff.submodule configuration variable corresponding to the
'--submodule' command-line option of 'git diff'.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-18 19:18:13 -08:00
Ramkumar Ramachandra
22bc70fdf9 Documentation: move diff.wordRegex from config.txt to diff-config.txt
19299a8 (Documentation: Move diff.<driver>.* from config.txt to
diff-config.txt, 2011-04-07) moved the diff configuration options to
diff-config.txt, but forgot about diff.wordRegex, which was left
behind in config.txt.  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-18 19:18:13 -08:00
Junio C Hamano
5a90748f28 Start 1.8.1 cycle
Prepare the release notes for the upcoming release, and describe
changes up to the 5th batch we just merged.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-15 11:21:47 -08:00
Junio C Hamano
4ad4fce63a Merge branch 'jc/prettier-pretty-note'
Emit the notes attached to the commit in "format-patch --notes"
output after three-dashes.

* jc/prettier-pretty-note:
  format-patch: add a blank line between notes and diffstat
  Doc User-Manual: Patch cover letter, three dashes, and --notes
  Doc format-patch: clarify --notes use case
  Doc notes: Include the format-patch --notes option
  Doc SubmittingPatches: Mention --notes option after "cover letter"
  Documentation: decribe format-patch --notes
  format-patch --notes: show notes after three-dashes
  format-patch: append --signature after notes
  pretty_print_commit(): do not append notes message
  pretty: prepare notes message at a centralized place
  format_note(): simplify API
  pretty: remove reencode_commit_message()
2012-11-15 10:25:05 -08:00
Junio C Hamano
6050b5bca0 Merge branch 'mh/notes-string-list'
Improve the asymptotic performance of the cat_sort_uniq notes merge
strategy.

* mh/notes-string-list:
  string_list_add_refs_from_colon_sep(): use string_list_split()
  notes: fix handling of colon-separated values
  combine_notes_cat_sort_uniq(): sort and dedup lines all at once
  Initialize sort_uniq_list using named constant
  string_list: add a function string_list_remove_empty_items()
2012-11-15 10:24:53 -08:00
Junio C Hamano
2be3d85a1c Merge branch 'mh/strbuf-split'
Cleanups and documentation for strbuf_split.

* mh/strbuf-split:
  strbuf_split*(): document functions
  strbuf_split*(): rename "delim" parameter to "terminator"
  strbuf_split_buf(): simplify iteration
  strbuf_split_buf(): use ALLOC_GROW()
2012-11-15 10:24:49 -08:00
Junio C Hamano
6b34d6e692 Merge branch 'mm/maint-doc-commit-edit'
* mm/maint-doc-commit-edit:
  Document 'git commit --no-edit' explicitly
2012-11-15 10:24:44 -08:00
Junio C Hamano
80b2234e9b Merge branch 'as/maint-doc-fix-no-post-rewrite'
* as/maint-doc-fix-no-post-rewrite:
  commit: fixup misplacement of --no-post-rewrite description
2012-11-15 10:24:29 -08:00
Junio C Hamano
a2055c28ee Merge branch 'cr/cvsimport-local-zone'
Allows "cvsimport" to read per-author timezone from the author info
file.

* cr/cvsimport-local-zone:
  cvsimport: work around perl tzset issue
  git-cvsimport: allow author-specific timezones
2012-11-15 10:24:09 -08:00
Junio C Hamano
b398fcc262 Merge branch 'jh/symbolic-ref-d'
Add "symbolic-ref -d SYM" to delete a symbolic ref SYM.

It is already possible to remove a symbolic ref with "update-ref -d
--no-deref", but it may be a good addition for completeness.

* jh/symbolic-ref-d:
  git symbolic-ref --delete $symref
2012-11-15 10:23:51 -08:00
Matt Kraai
3469c7ebbf docs: move submodule section
293ab15e ("submodule: teach rm to remove submodules unless they
contain a git directory", 2012-09-26) inserted the "Submodules"
section between a sentence describing a command and the command.  Move
the "Submodules" section further down.

Noticed-by: Horst H. von Brand
Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-14 13:49:53 -08:00
Jeff King
05eda511b3 Merge branch 'km/send-email-compose-encoding'
"git send-email --compose" can let the user create a non-ascii
cover letter message, but there was not a way to mark it with
appropriate content type before sending it out.

Further updates fix subject quoting.

* km/send-email-compose-encoding:
  git-send-email: add rfc2047 quoting for "=?"
  git-send-email: introduce quote_subject()
  git-send-email: skip RFC2047 quoting for ASCII subjects
  git-send-email: use compose-encoding for Subject
  git-send-email: introduce compose-encoding
2012-11-09 12:50:29 -05:00
Jeff King
5f836422ab Merge branch 'nd/attr-match-optim-more'
Start laying the foundation to build the "wildmatch" after we can
agree on its desired semantics.

* nd/attr-match-optim-more:
  attr: more matching optimizations from .gitignore
  gitignore: make pattern parsing code a separate function
  exclude: split pathname matching code into a separate function
  exclude: fix a bug in prefix compare optimization
  exclude: split basename matching code into a separate function
  exclude: stricten a length check in EXC_FLAG_ENDSWITH case
2012-11-09 12:42:25 -05:00
Eric S. Raymond
e70528862f doc/fast-import: clarify how content states are built
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Jeff King <peff@peff.net>
2012-11-08 14:11:53 -05:00
Michael Haggerty
6bb2a1377b string_list: add a function string_list_remove_empty_items()
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Jeff King <peff@peff.net>
2012-11-08 11:34:08 -05:00
Jeff King
f07e5551a8 Merge branch 'tj/maint-doc-commit-sign'
* tj/maint-doc-commit-sign:
  Add -S, --gpg-sign option to manpage of "git commit"
2012-11-04 08:00:47 -05:00
Jeff King
0d2605112e Merge branch 'pp/maint-doc-pager-config'
* pp/maint-doc-pager-config:
  Documentation: improve the example of overriding LESS via core.pager
2012-11-04 08:00:38 -05:00