Commit Graph

6593 Commits

Author SHA1 Message Date
Junio C Hamano
caae319e49 Document file-glob for "git checkout -- '*.c'"
Just like we give a similar example in "git add" documentation.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-04 08:36:33 -07:00
Junio C Hamano
a2e78c2d87 The third batch for 1.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-03 16:23:44 -07:00
Junio C Hamano
81dbbf7240 Merge branch 'sz/submodule-force-update'
"git submodule update --force" used to leave the working tree of the
submodule intact when there were local changes.  It is more intiutive
to make "--force" a sign to run "checkout -f" to overwrite them.

* sz/submodule-force-update:
  Make 'git submodule update --force' always check out submodules.
2012-09-03 15:54:18 -07:00
Junio C Hamano
19801d6a27 Merge branch 'jc/daemon-access-hook'
Allow an external command to tell git-daemon to decline service
based on the client address, repository path, etc.

* jc/daemon-access-hook:
  daemon: --access-hook option
2012-09-03 15:54:03 -07:00
Junio C Hamano
831287d37c Merge branch 'cw/cherry-pick-allow-empty-message'
"git cherry-pick" by default stops when it sees a commit without any
log message.  The "--allow-empty-message" option can be used to
silently proceed.

* cw/cherry-pick-allow-empty-message:
  cherry-pick: add --allow-empty-message option
2012-09-03 15:53:37 -07:00
Junio C Hamano
3e06f5ff38 Merge branch 'jc/maint-config-exit-status'
The exit status code from "git config" was way overspecified while
being incorrect.  Update the implementation to give the documented
status for a case that was documented, and introduce a new code for
"all other errors".

* jc/maint-config-exit-status:
  config: "git config baa" should exit with status 1
2012-09-03 15:53:07 -07:00
Jeff King
fe4a0a2888 argv-array: add pop function
Sometimes we build a set of similar command lines, differing
only in the final arguments (e.g., "fetch --multiple"). To
use argv_array for this, you have to either push the same
set of elements repeatedly, or break the abstraction by
manually manipulating the array's internal members.

Instead, let's provide a sanctioned "pop" function to remove
elements from the end.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-02 21:10:01 -07:00
Junio C Hamano
5907cda1b2 merge-base: "--is-ancestor A B"
In many scripted Porcelain commands, we find this idiom:

    if test "$(git rev-parse --verify A)" = "$(git merge-base A B)"
    then
    	... A is an ancestor of B ...
    fi

But you do not have to compute exact merge-base only to see if A is
an ancestor of B.  Give them a more direct way to use the underlying
machinery.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-31 11:45:33 -07:00
Martin von Zweigbergk
ca92e59e30 teach log --no-walk=unsorted, which avoids sorting
When 'git log' is passed the --no-walk option, no revision walk takes
place, naturally. Perhaps somewhat surprisingly, however, the provided
revisions still get sorted by commit date. So e.g 'git log --no-walk
HEAD HEAD~1' and 'git log --no-walk HEAD~1 HEAD' give the same result
(unless the two revisions share the commit date, in which case they
will retain the order given on the command line). As the commit that
introduced --no-walk (8e64006 (Teach revision machinery about
--no-walk, 2007-07-24)) points out, the sorting is intentional, to
allow things like

 git log --abbrev-commit --pretty=oneline --decorate --all --no-walk

to show all refs in order by commit date.

But there are also other cases where the sorting is not wanted, such
as

 <command producing revisions in order> |
       git log --oneline --no-walk --stdin

To accomodate both cases, leave the decision of whether or not to sort
up to the caller, by allowing --no-walk={sorted,unsorted}, defaulting
to 'sorted' for backward-compatibility reasons.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-30 12:26:50 -07:00
Carlos Martín Nieto
b84869ef14 branch: add --unset-upstream option
We have ways of setting the upstream information, but if we want to
unset it, we need to resort to modifying the configuration manually.

Teach branch an --unset-upstream option that unsets this information.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-30 12:07:28 -07:00
Junio C Hamano
16d26b168b Latter half of the second batch for 1.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-29 15:00:30 -07:00
Junio C Hamano
9a245ac2d3 Merge branch 'mh/maint-config-doc-proxy-command'
* mh/maint-config-doc-proxy-command:
  git-config doc: unconfuse an example
  git-config.txt: fix example
2012-08-29 14:50:31 -07:00
Junio C Hamano
31e0100e89 First half of the second batch for 1.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-27 12:10:07 -07:00
Junio C Hamano
8ebae4a552 Merge branch 'jk/docs-docbook-monospace-display'
The documentation in the TeXinfo format was using indented output
for materials meant to be examples that are better typeset in
monospace.

* jk/docs-docbook-monospace-display:
  docs: monospace listings in docbook output
2012-08-27 11:55:28 -07:00
Junio C Hamano
de54ef2724 Merge branch 'da/difftool-updates'
"git difftool --dir-diff" learned to use symbolic links to prepare
temporary copy of the working tree when available.

* da/difftool-updates:
  difftool: silence warning
  Add Code Compare v2.80.4 as a merge / diff tool for Windows
  mergetool,difftool: Document --tool-help consistently
  difftool: Disable --symlinks on cygwin
  difftool: Handle compare() returning -1
  difftool: Wrap long lines for readability
  difftool: Check all return codes from compare()
  difftool: Handle finding mergetools/ in a path with spaces
  difftool: Use symlinks when diffing against the worktree
  difftool: Call the temp directory "git-difftool"
  difftool: Move option values into a hash
  difftool: Eliminate global variables
  difftool: Simplify print_tool_help()
2012-08-27 11:55:17 -07:00
Junio C Hamano
445d2c51a4 Merge branch 'js/grep-patterntype-config'
"grep" learned to use a non-standard pattern type by default if a
configuration variable tells it to.

* js/grep-patterntype-config:
  grep: add a grep.patternType configuration setting
2012-08-27 11:55:09 -07:00
Nguyễn Thái Ngọc Duy
1452bd64f1 branch -v: align even when branch names are in UTF-8
Branch names are usually in ASCII so they are not the problem. The
problem most likely comes from "(no branch)" translation, which is
in UTF-8 and makes display-width calculation just wrong.  Clarify
this by renaming the field "len" in struct ref_item to "width", as
it stores the display-width and is used to compute the width of the
screen needed to show the names of all the branches, and compute the
display width using utf8_strwidth(), not byte-length with strlen().

Update document to mention the fact that we may want ref names in
UTF-8. Encodings that produce invalid UTF-8 are safe as utf8_strwidth()
falls back to strlen(). The ones that incidentally produce valid UTF-8
sequences will cause misalignment.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-27 11:42:28 -07:00
Junio C Hamano
45aaf0310f doc: "git checkout -b/-B/--orphan" always takes a branch name
While the synopsis section makes it clear that the new branch name
is the parameter to these flags, the option description did not.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-26 11:40:08 -07:00
Junio C Hamano
efa646213a Merge branch 'maint'
* maint:
  Prepare for 1.7.11.6
  Make the ciabot scripts completely self-configuring in the normal case.
  Improved documentation for the ciabot scripts.
2012-08-24 13:13:53 -07:00
Junio C Hamano
871e293c9a Merge branch 'maint-1.7.11' into maint
* maint-1.7.11:
  Prepare for 1.7.11.6
  Make the ciabot scripts completely self-configuring in the normal case.
  Improved documentation for the ciabot scripts.
  man: git pull -r is a short for --rebase
  gitcli: describe abbreviation of long options
  rev-list docs: clarify --topo-order description
  Documentation/CodingGuidelines: spell out more shell guidelines
  Documentation: do not mention .git/refs/* directories
  tests: Introduce test_seq
2012-08-24 12:34:19 -07:00
Junio C Hamano
b52183179b Prepare for 1.7.11.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-24 12:33:31 -07:00
Junio C Hamano
1103996ea4 Merge branch 'mv/pull-r-for-rebase' into maint-1.7.11
A minor documentation update.

* mv/pull-r-for-rebase:
  man: git pull -r is a short for --rebase
2012-08-24 12:05:47 -07:00
Junio C Hamano
bdb30339f6 Merge branch 'jc/maint-abbrev-option-cli' into maint-1.7.11
We did not document that many commands take unique prefix
abbreviations of long options (e.g. "--option" may be the only flag
that the command accepts that begin with "--opt", in which case you
can give "--opt") anywhere easy to find for new people.

* jc/maint-abbrev-option-cli:
  gitcli: describe abbreviation of long options
2012-08-24 12:05:44 -07:00
Junio C Hamano
7939a33425 Merge branch 'jc/maint-rev-list-topo-doc' into maint-1.7.11
It was unclear what "--topo-order" was really about in the
documentation. It is not just about "children before parent", but
also about "don't mix lineages".

* jc/maint-rev-list-topo-doc:
  rev-list docs: clarify --topo-order description
2012-08-24 12:05:40 -07:00
Junio C Hamano
9dd8175be6 Merge branch 'hv/coding-guidelines' into maint-1.7.11
In earlier days, "imitate the style in the neibouring code" was
sufficient to keep the coherent style, but over time some parts of
the codebase have drifted enough to make it ineffective.

* hv/coding-guidelines:
  Documentation/CodingGuidelines: spell out more shell guidelines
2012-08-24 12:05:35 -07:00
Junio C Hamano
74b819aa31 Merge branch 'jc/tag-doc' into maint-1.7.11
Our documentation used to assume having files in .git/refs/*
directories was the only to have branches and tags, but that is not
true for quite some time.

* jc/tag-doc:
  Documentation: do not mention .git/refs/* directories
2012-08-24 12:05:30 -07:00
Stefan Zager
01d4721565 Make 'git submodule update --force' always check out submodules.
Currently, it will only do a checkout if the sha1 registered in the containing
repository doesn't match the HEAD of the submodule, regardless of whether the
submodule is dirty.  As discussed on the mailing list, the '--force' flag is a
strong indicator that the state of the submodule is suspect, and should be reset
to HEAD.

Signed-off-by: Stefan Zager <szager@google.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-24 09:00:43 -07:00
Junio C Hamano
003c84f6d2 specifying ranges: we did not mean to make ".." an empty set
Either end of revision range operator can be omitted to default to HEAD,
as in "origin.." (what did I do since I forked) or "..origin" (what did
they do since I forked).  But the current parser interprets ".."  as an
empty range "HEAD..HEAD", and worse yet, because ".." does exist on the
filesystem, we get this annoying output:

  $ cd Documentation/howto
  $ git log .. ;# give me recent commits that touch Documentation/ area.
  fatal: ambiguous argument '..': both revision and filename
  Use '--' to separate filenames from revisions

Surely we could say "git log ../" or even "git log -- .." to disambiguate,
but we shouldn't have to.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-23 14:37:49 -07:00
Carlos Martín Nieto
6183d826ba branch: introduce --set-upstream-to
The existing --set-uptream option can cause confusion, as it uses the
usual branch convention of assuming a starting point of HEAD if none
is specified, causing

    git branch --set-upstream origin/master

to create a new local branch 'origin/master' that tracks the current
branch. As --set-upstream already exists, we can't simply change its
behaviour. To work around this, introduce --set-upstream-to which
accepts a compulsory argument indicating what the new upstream branch
should be and one optinal argument indicating which branch to change,
defaulting to HEAD.

The new options allows us to type

    git branch --set-upstream-to origin/master

to set the current branch's upstream to be origin's master.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-23 14:18:02 -07:00
Junio C Hamano
851f7e689e Kick off cycle towards 1.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-22 11:54:47 -07:00
Junio C Hamano
ac26684984 Merge branch 'jc/doc-git-updates'
A minor documentation update.

* jc/doc-git-updates:
  Documentation: update the introductory section
2012-08-22 11:53:36 -07:00
Junio C Hamano
88cec243a3 Merge branch 'mv/pull-r-for-rebase'
A minor documentation update.

* mv/pull-r-for-rebase:
  man: git pull -r is a short for --rebase
2012-08-22 11:53:31 -07:00
Junio C Hamano
210106b425 Merge branch 'jc/maint-abbrev-option-cli'
We did not document that many commands take unique prefix
abbreviations of long options (e.g. "--option" may be the only flag
that the command accepts that begin with "--opt", in which case you
can give "--opt") anywhere easy to find for new people.

* jc/maint-abbrev-option-cli:
  gitcli: describe abbreviation of long options
2012-08-22 11:53:25 -07:00
Junio C Hamano
4def968e14 Merge branch 'jc/maint-rev-list-topo-doc'
It was unclear what "--topo-order" was really about in the
documentation. It is not just about "children before parent", but
also about "don't mix lineages".

* jc/maint-rev-list-topo-doc:
  rev-list docs: clarify --topo-order description
2012-08-22 11:53:20 -07:00
Junio C Hamano
769e2506d9 Merge branch 'hv/coding-guidelines'
In earlier days, "imitate the style in the neibouring code" was
sufficient to keep the coherent style, but over time some parts of
the codebase have drifted enough to make it ineffective.

* hv/coding-guidelines:
  Documentation/CodingGuidelines: spell out more shell guidelines
2012-08-22 11:53:07 -07:00
Junio C Hamano
cf8b350da8 Merge branch 'jk/check-docs-update'
Simplify "make check-docs" implementation and update its coverage.

* jk/check-docs-update:
  check-docs: get documented command list from Makefile
  check-docs: drop git-help special-case
  check-docs: list git-gui as a command
  check-docs: factor out command-list
  command-list: mention git-credential-* helpers
  command-list: add git-sh-i18n
  check-docs: update non-command documentation list
  check-docs: mention gitweb specially
2012-08-22 11:53:01 -07:00
Junio C Hamano
7e0c2036b4 Merge branch 'jc/tag-doc'
Our documentation used to assume having files in .git/refs/*
directories was the only to have branches and tags, but that is not
true for quite some time.

* jc/tag-doc:
  Documentation: do not mention .git/refs/* directories
2012-08-22 11:52:55 -07:00
Eric S. Raymond
3266de1074 fast-import: document the --done option
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-22 11:15:16 -07:00
Junio C Hamano
889d35899b Git 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-19 17:02:11 -07:00
Junio C Hamano
d1e1fe7569 git-config doc: unconfuse an example
One fictitious command "proxy-command" is enclosed inside a double
quote pair, while another fictitious command "default-proxy" is not
in the example, but the quoting does not change anything in the pair
of examples.  Remove the quotes to avoid unnecessary confusion.

Noticed by Michael Haggerty.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-18 16:39:35 -07:00
Michael Haggerty
d0714cc87b git-config.txt: fix example
The "--add" option is required to add a new value to a multivalued
configuration entry.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-18 13:44:58 -07:00
Junio C Hamano
91e4bfe96f Merge branch 'jc/doc-git-updates' (early part)
* 'jc/doc-git-updates' (early part):
  Documentation: update URL for formatted pages
2012-08-17 13:27:10 -07:00
Junio C Hamano
7687ae98e0 Documentation: update the introductory section
The second paragraph in the git(1) description section were meant to
guide people who are not ready to dive into this page away from here.
Referring migrating CVS users to another page before they get
acquainted with Git was somewhat out of place.  Move the reference to
the "FURTHER DOCUMENTATION" section and push that section down.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-17 13:26:20 -07:00
Junio C Hamano
c70c09b6fc Documentation: update URL for formatted pages
The one at kernel.org has not been updated for quite a while and
can no longer be called "the latest".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-17 13:25:43 -07:00
Miklos Vajna
d9aa361043 man: git pull -r is a short for --rebase
Letting the "--rebase" option squat on the short-and-sweet single
letter option "-r" was an unintended accident and was not even
documented, but the short option seems to be already used in the
wild. Let's document it so that other options that begin with "r"
would not be tempted to steal it.

Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-17 00:26:52 -07:00
Junio C Hamano
9c81990bdd gitcli: describe abbreviation of long options
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-16 23:16:28 -07:00
Junio C Hamano
2a9a19e1b1 Git 1.7.12-rc3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15 13:46:16 -07:00
Junio C Hamano
47e32d071e Sync with 1.7.11.5 2012-08-15 13:41:17 -07:00
Junio C Hamano
cd7c0be19f Git 1.7.11.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15 13:39:53 -07:00
Junio C Hamano
3f0350ccd5 rev-list docs: clarify --topo-order description
It was unclear what "--topo-order" was really about in the
documentation.  It is not just about "children before parent", but
also about "don't mix lineages".

Reword the description for both "--date-order" and "--topo-order",
and add an illustration to it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15 13:04:20 -07:00
Junio C Hamano
93741e4a91 daemon: --access-hook option
The --access-hook option to "git daemon" specifies an external
command to be run every time a client connects, with

 - service name (e.g. "upload-pack", etc.),
 - path to the repository,
 - hostname (%H),
 - canonical hostname (%CH),
 - ip address (%IP),
 - tcp port (%P)

as its command line arguments.  The external command can decide to
decline the service by exiting with a non-zero status (or to allow it
by exiting with a zero status).  It can also look at the $REMOTE_ADDR
and $REMOTE_PORT environment variables to learn about the requestor
when making this decision.

The external command can optionally write a single line to its
standard output to be sent to the requestor as an error message when
it declines the service.

Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15 11:01:55 -07:00
Heiko Voigt
03b05c7db5 Documentation/CodingGuidelines: spell out more shell guidelines
In earlier days, "imitate the style in the neibouring code" was
sufficient to keep the coherent style, but over time some parts of
the codebase have drifted enough to make it ineffective.

Spell some of the guidelines out.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-15 11:00:39 -07:00
David Aguilar
7a30747fba mergetool,difftool: Document --tool-help consistently
Add an entry for --tool-help to the mergetool documentation.

Move --tool-help in the difftool documentation so that it is
listed immediately after --tool so that it is easier to find.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-10 08:07:41 -07:00
Jeff King
5fafce0b78 check-docs: get documented command list from Makefile
The current code tries to get a list of documented commands
by doing "ls Documentation/git*txt" and culling a bunch of
special cases from the result. Looking for "git-*.txt" would
be more accurate, but would miss a few commands like
"gitweb" and "gitk".

Fortunately, Documentation/Makefile already knows what this
list is, so we can just ask it. Annoyingly, we still have to
post-process its output a little, since make will print
extra cruft like "GIT-VERSION-FILE is up to date" to stdout.

Now that our list is accurate, we can remove all of the ugly
special-cases.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08 14:32:17 -07:00
Jeff King
c6632eba5a command-list: mention git-credential-* helpers
These commands were never added to the command-list. Adding
them makes "make check-docs" run without complaint.
While we're at it, let's capitalize the first letter of
their one-line summaries to match the rest of the git
manpages.

The credential-cache--daemon command is somewhat special. It
is already ignored by check-docs because it contains a "--",
marking it as a non-interesting implementation detail. It
is, in fact, documented, but since the documentation
basically just redirects you to a more appropriate command
anyway, let's explicitly omit it so it is not mentioned in
git(1).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08 12:11:54 -07:00
Matthieu Moy
fa0aad4ff5 Documentation: list git-credential in plumbing commands
Commit e30b2feb1b (Jun 24 2012, add 'git credential' plumbing command)
forgot to add git-credential to command-list.txt, hence the command was
not appearing in the documentation, making it hard for users to discover
it.

While we're there, capitalize the description line for git-crendential
for consistency with other commands.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-08 09:59:17 -07:00
Jeff King
c2a7f5d438 docs: monospace listings in docbook output
When asciidoc converts a listing block like:

----------------------
$ git log --merge
----------------------

it marks it to be displayed in a monospace font. This works
fine when generating HTML output. However, when generating
docbook output, we override the expansion of a listingblock
to work around bugs in some versions of the docbook
toolchain. Our override did not mark the listingblock with
the "monospaced" class.

The main output that uses docbook as an intermediate format
is the manpages. We didn't notice any issue there because
the monospaced class seems to be ignored when generating
roff from the docbook manpages.

However, when generating texinfo to make info pages, docbook
does respect this class. The resulting texinfo output
properly uses "@example" blocks to display the listing in
this case. Besides possibly looking prettier in some texinfo
backends,  one important effect is that the monospace font
suppresses texinfo's expansion of "--" and "---" into
en-dashes and em-dashes.  With the current code, the example
above ends up looking like "git log -merge", which is
confusing and wrong.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-07 14:30:52 -07:00
Junio C Hamano
e15c16de39 Git 1.7.12-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-07 10:39:34 -07:00
Junio C Hamano
b1d9b1d0f1 Drop 1.7.11.x items from 1.7.12 release notes
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06 15:58:38 -07:00
Junio C Hamano
9ffdd46ae4 Sync with maint 2012-08-06 15:53:33 -07:00
Junio C Hamano
b17a01df49 Prepare for 1.7.11.5
Hopefully that will be the final 1.7.11.x maintenance release.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06 15:51:58 -07:00
Junio C Hamano
c2e585f530 Merge branch 'ms/daemon-doc-typo' into maint
* ms/daemon-doc-typo:
  Documentation/git-daemon: add missing word
2012-08-06 15:39:16 -07:00
Junio C Hamano
809b262543 Merge branch 'rr/doc-commit' into maint
* rr/doc-commit:
  commit: document a couple of options
2012-08-06 15:37:09 -07:00
Štěpán Němec
7615cb005b doc: A few minor copy edits.
- (glossary) the quotes around the Wikipedia URL prevented its
  linkification in frontends that support it; remove them

- (manual) newer version (SHA-1) == following, older == preceding, not
  the other way around

- trivial typo and wording fixes

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06 15:34:20 -07:00
Junio C Hamano
eb536007df Merge branch 'mh/maint-revisions-doc' into maint
* mh/maint-revisions-doc:
  Enumerate revision range specifiers in the documentation
  Make <refname> documentation more consistent.
2012-08-06 15:30:57 -07:00
Junio C Hamano
f52a386ef2 Merge branch 'jc/mergetool-tool-help' into maint
* jc/mergetool-tool-help:
  mergetool: support --tool-help option like difftool does
2012-08-06 15:30:18 -07:00
Junio C Hamano
831e61f80f Documentation: do not mention .git/refs/* directories
It is an implementation detail that a new tag is created by adding a
file in the .git/refs/tags directory.  The only thing the user needs
to know is that a "git tag" creates a ref in the refs/tags namespace,
and without "-f", it does not overwrite an existing tag.

Inspired by a report from 乙酸鋰 <ch3cooli@gmail.com>; I think I
caught all the existing mention in Documentation/ directory in the
tip of 1.7.9.X maintenance track, but we may have added new ones
since then.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06 14:04:16 -07:00
Chris Webb
4bee958479 cherry-pick: add --allow-empty-message option
Scripts such as "git rebase -i" cannot currently cherry-pick commits
which have an empty commit message, as git cherry-pick calls git
commit without the --allow-empty-message option.

Add an --allow-empty-message option to git cherry-pick which is passed
through to git commit, so this behaviour can be overridden.

Signed-off-by: Chris Webb <chris@arachsys.com>
Reviewed-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-06 09:59:53 -07:00
J Smith
84befcd0a4 grep: add a grep.patternType configuration setting
The grep.extendedRegexp configuration setting enables the -E flag on grep
by default but there are no equivalents for the -G, -F and -P flags.

Rather than adding an additional setting for grep.fooRegexp for current
and future pattern matching options, add a grep.patternType setting that
can accept appropriate values for modifying the default grep pattern
matching behavior. The current values are "basic", "extended", "fixed",
"perl" and "default" for setting -G, -E, -F, -P and the default behavior
respectively.

When grep.patternType is set to a value other than "default", the
grep.extendedRegexp setting is ignored. The value of "default" restores
the current default behavior, including the grep.extendedRegexp
behavior.

Signed-off-by: J Smith <dark.panda@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-08-03 09:58:02 -07:00
Junio C Hamano
3b2d763db0 Git 1.7.12-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-30 13:20:00 -07:00
Junio C Hamano
9c9b9ede90 Sync with 1.7.11.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-30 13:18:18 -07:00
Junio C Hamano
0e4c8822e9 Git 1.7.11.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-30 13:16:51 -07:00
Junio C Hamano
f17adbce64 Merge branch 'jk/maint-commit-document-editmsg' into maint
"$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
message user edits was not documented.

* jk/maint-commit-document-editmsg:
  commit: document the temporary commit message file
2012-07-30 13:05:36 -07:00
Junio C Hamano
2e3710bdf9 Merge branch 'kk/maint-commit-tree' into maint
"git commit-tree" learned a more natural "-p <parent> <tree>" order
of arguments long time ago, but recently forgot it by mistake.

* kk/maint-commit-tree:
  Revert "git-commit-tree(1): update synopsis"
  commit-tree: resurrect command line parsing updates
2012-07-30 13:05:13 -07:00
Junio C Hamano
9b67f560f4 Merge branch 'pg/maint-1.7.9-am-where-is-patch' into maint
When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

* pg/maint-1.7.9-am-where-is-patch:
  am: indicate where a failed patch is to be found
2012-07-30 13:04:39 -07:00
Junio C Hamano
9409c7a5b3 config: "git config baa" should exit with status 1
We instead failed with an undocumented exit status 255.
Also define a "catch-all" status and document it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-30 08:51:26 -07:00
Junio C Hamano
9e2116adbe Update draft release notes to 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-27 22:25:19 -07:00
Junio C Hamano
b00445bc34 Merge branch 'mh/maint-revisions-doc'
* mh/maint-revisions-doc:
  Enumerate revision range specifiers in the documentation
  Make <refname> documentation more consistent.
2012-07-25 15:46:06 -07:00
Junio C Hamano
ca5ee2d1fb Enumerate revision range specifiers in the documentation
It was a bit hard to learn how <rev>^@, <rev>^! and various other
forms of range specifiers are used, because they were discussed
mostly in the prose part of the documentation, unlike various forms
of extended SHA-1 expressions that are listed in an enumerated list.

Also add a few more examples showing use of <rev>, <rev>..<rev> and
<rev>^! forms, stolen from a patch by Max Horn.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-24 15:03:50 -07:00
Junio C Hamano
476109fa4c Update draft release notes to 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-24 14:08:43 -07:00
Junio C Hamano
cf7864837c Merge branch 'jc/mergetool-tool-help'
"git mergetool" did not support --tool-help option to give the list
of supported backends, like "git difftool" does.

* jc/mergetool-tool-help:
  mergetool: support --tool-help option like difftool does
2012-07-24 14:05:26 -07:00
Junio C Hamano
9c3f19fdfd Merge branch 'jk/maint-commit-document-editmsg'
Document $GIT_DIR/COMMIT_EDITMSG file.

* jk/maint-commit-document-editmsg:
  commit: document the temporary commit message file
2012-07-24 14:05:23 -07:00
Junio C Hamano
ccc1188fa3 Git 1.7.12-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-23 21:02:06 -07:00
Junio C Hamano
a7fe78a895 Merge branch 'kk/maint-commit-tree'
* kk/maint-commit-tree:
  Revert "git-commit-tree(1): update synopsis"
  commit-tree: resurrect command line parsing updates
2012-07-23 20:55:54 -07:00
Junio C Hamano
9837911c13 Merge branch 'jk/mediawiki-credential'
* jk/mediawiki-credential:
  mw-to-git: use git-credential's URL parser
  credential: convert "url" attribute into its parsed subparts
  mw-to-git: check blank credential attributes via length
  docs/credential: minor clarity fixups
2012-07-23 20:55:33 -07:00
Junio C Hamano
90683976ce Merge branch 'sn/doc-typofix'
* sn/doc-typofix:
  doc: A few minor copy edits.
2012-07-23 20:55:22 -07:00
Jeff King
41f597d9bb commit: document the temporary commit message file
We do not document COMMIT_EDITMSG at all, but users may want
to know about it for two reasons:

  1. They may want to tell their editor to configure itself
     for formatting a commit message.

  2. If a commit is aborted by an error, the user may want
     to recover the commit message they typed.

Let's put a note in git-commit(1).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-23 15:10:36 -07:00
Junio C Hamano
109859e274 mergetool: support --tool-help option like difftool does
This way we do not have to risk the list of tools going out of sync
between the implementation and the documentation.

In the same spirit as bf73fc2 (difftool: print list of valid tools
with '--tool-help', 2012-03-29), trim the list of merge backends in
the documentation.  We do not want to have a complete list of valid
tools; we only want a list to help people guess what kind of things
the tools do to be specified there, and refer them to --tool-help
for a complete list.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-23 14:42:39 -07:00
David Aguilar
1f22934575 difftool: Use symlinks when diffing against the worktree
Teach difftool's --dir-diff mode to use symlinks to represent
files from the working copy, and make it the default behavior
for the non-Windows platforms.

Using symlinks is simpler and safer since we do not need to
worry about copying files back into the worktree.
The old behavior is still available as --no-symlinks.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-23 09:35:53 -07:00
Junio C Hamano
e771946915 Update draft release notes to 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-22 13:20:24 -07:00
Junio C Hamano
4a5b324031 Sync with 1.7.11.3 2012-07-22 13:08:22 -07:00
Junio C Hamano
e6dfbcf12b Git 1.7.11.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-22 13:07:40 -07:00
Junio C Hamano
80ee1e0469 Merge branch 'pg/maint-1.7.9-am-where-is-patch'
When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

* pg/maint-1.7.9-am-where-is-patch:
  am: indicate where a failed patch is to be found
2012-07-22 12:56:02 -07:00
Junio C Hamano
9cbd27b19a Merge branch 'ms/daemon-doc-typo'
* ms/daemon-doc-typo:
  Documentation/git-daemon: add missing word
2012-07-22 12:55:41 -07:00
Junio C Hamano
0958a24d73 Merge branch 'jc/sha1-name-more'
Teaches the object name parser things like a "git describe" output
is always a commit object, "A" in "git log A" must be a committish,
and "A" and "B" in "git log A...B" both must be committish, etc., to
prolong the lifetime of abbreviated object names.

* jc/sha1-name-more: (27 commits)
  t1512: match the "other" object names
  t1512: ignore whitespaces in wc -l output
  rev-parse --disambiguate=<prefix>
  rev-parse: A and B in "rev-parse A..B" refer to committish
  reset: the command takes committish
  commit-tree: the command wants a tree and commits
  apply: --build-fake-ancestor expects blobs
  sha1_name.c: add support for disambiguating other types
  revision.c: the "log" family, except for "show", takes committish
  revision.c: allow handle_revision_arg() to take other flags
  sha1_name.c: introduce get_sha1_committish()
  sha1_name.c: teach lookup context to get_sha1_with_context()
  sha1_name.c: many short names can only be committish
  sha1_name.c: get_sha1_1() takes lookup flags
  sha1_name.c: get_describe_name() by definition groks only commits
  sha1_name.c: teach get_short_sha1() a commit-only option
  sha1_name.c: allow get_short_sha1() to take other flags
  get_sha1(): fix error status regression
  sha1_name.c: restructure disambiguation of short names
  sha1_name.c: correct misnamed "canonical" and "res"
  ...
2012-07-22 12:55:07 -07:00
Jeff King
9c183a7072 credential: convert "url" attribute into its parsed subparts
The git-credential command requires that you feed it a
broken-down credential, which means that the client needs to
parse a URL itself. Since we have our own URL-parsing
routines, we can easily allow the caller to just give us the
URL as-is, saving them some code.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-18 13:26:58 -07:00
Jeff King
3e5f29e896 docs/credential: minor clarity fixups
The text in git-credential(1) was copied from
technical/api-credentials, so it still talks about the
input/output format as coming from git to the helper. Since
the surrounding text already indicates that this format is
used for reading and writing with git credential, we can
just remove the extraneous confusing bits.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-18 13:26:48 -07:00
Junio C Hamano
4b7518a4aa Revert "git-commit-tree(1): update synopsis"
This reverts commit d28436736a, which
was done without realizing that the updated command line argument
order was lost by mistake.
2012-07-17 13:11:03 -07:00
Michael Schubert
c6056fbc61 Documentation/git-daemon: add missing word
Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-16 09:39:24 -07:00
Junio C Hamano
31c79549b8 Update draft release notes for 7th batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-15 21:46:26 -07:00
Junio C Hamano
f247b10aa0 Merge branch 'jc/apply-3way'
"git apply" learned to wiggle the base version and perform three-way
merge when a patch does not exactly apply to the version you have.

* jc/apply-3way:
  apply: tests for the --3way option
  apply: document --3way option
  apply: allow rerere() to work on --3way results
  apply: register conflicted stages to the index
  apply: --3way with add/add conflict
  apply: move verify_index_match() higher
  apply: plug the three-way merge logic in
  apply: fall back on three-way merge
  apply: accept -3/--3way command line option
  apply: move "already exists" logic to check_to_create()
  apply: move check_to_create_blob() closer to its sole caller
  apply: further split load_preimage()
  apply: refactor "previous patch" logic
  apply: split load_preimage() helper function out
  apply: factor out checkout_target() helper function
  apply: refactor read_file_or_gitlink()
  apply: clear_image() clears things a bit more
  apply: a bit more comments on PATH_TO_BE_DELETED
  apply: fix an incomplete comment in check_patch()
2012-07-15 21:38:51 -07:00
Junio C Hamano
0cd993a778 Merge branch 'cw/rebase-i-root'
"git rebase [-i] --root $tip" can now be used to rewrite all the
history down to the root.

* cw/rebase-i-root:
  t3404: make test 57 work with dash and others
  Add tests for rebase -i --root without --onto
  rebase -i: support --root without --onto
2012-07-15 21:38:42 -07:00
Junio C Hamano
77f3591dbb Merge branch 'pw/git-p4-move'
* pw/git-p4-move:
  git p4: add support for 'p4 move' in P4Submit
  git p4: refactor diffOpts calculation
2012-07-15 21:38:32 -07:00
Štěpán Němec
edfbbf7eea doc: A few minor copy edits.
- (glossary) the quotes around the Wikipedia URL prevented its
  linkification in frontends that support it; remove them

- (manual) newer version (SHA-1) == following, older == preceding, not
  the other way around

- trivial typo and wording fixes

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-14 22:32:28 -07:00
Paul Gortmaker
14bf2d58bc am: indicate where a failed patch is to be found
If "git am" fails to apply something, the end user may need to know
where to find the patch that failed to apply, so that the user can
do other things (e.g. trying "GNU patch" on it, running "diffstat"
to see what it tried to change, etc.)  The input to "am" may have
contained more than one patch, or the message may have been MIME
encoded, and knowing what the user fed to "am" does not help very
much for this purpose.

Also introduce advice.amworkdir configuration to allow people who
learned where to look to squelch this message.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-13 16:02:48 -07:00
Junio C Hamano
48c42ff662 Sixth batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-13 15:48:50 -07:00
Junio C Hamano
b856ad623e Merge branch 'tb/sanitize-decomposed-utf-8-pathname'
Teaches git to normalize pathnames read from readdir(3) and all
arguments from the command line into precomposed UTF-8 (assuming
that they come as decomposed UTF-8) to work around issues on Mac OS.

I think there still are other places that need conversion
(e.g. paths that are read from stdin for some commands), but this
should be a good first step in the right direction.

* tb/sanitize-decomposed-utf-8-pathname:
  git on Mac OS and precomposed unicode
2012-07-13 15:37:51 -07:00
Junio C Hamano
2b53359290 Reduce draft release notes to 1.7.12
Many "fixes since 1.7.11" items are now in the maintenance track

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-11 13:48:57 -07:00
Junio C Hamano
d5c771e234 Sync with 1.7.11.2 2012-07-11 13:00:51 -07:00
Junio C Hamano
8d141a1d56 Git 1.7.11.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-11 12:59:41 -07:00
Junio C Hamano
a0ceb72f38 Merge branch 'cn/cherry-pick-range-docs' into maint
The documentation for "git cherry-pick A B..C" was misleading.

* cn/cherry-pick-range-docs:
  git-cherry-pick.txt: clarify the use of revision range notation
  Documentation: --no-walk is no-op if range is specified
2012-07-11 12:45:34 -07:00
Junio C Hamano
957d74062c rev-parse --disambiguate=<prefix>
The new option allows you to feed an ambiguous prefix and enumerate
all the objects that share it as a prefix of their object names.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 16:42:23 -07:00
Junio C Hamano
78fb67f31e apply: document --3way option
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:40:03 -07:00
Junio C Hamano
2a4dd9333b Fifth batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 09:49:44 -07:00
Junio C Hamano
ee02c2ab37 Merge branch 'mm/credential-plumbing'
Expose the credential API to scripted Porcelain writers.

* mm/credential-plumbing:
  git-remote-mediawiki: update comments to reflect credential support
  git-remote-mediawiki: add credential support
  git credential fill: output the whole 'struct credential'
  add 'git credential' plumbing command
2012-07-09 09:01:45 -07:00
Junio C Hamano
d02d7ac303 Merge branch 'mm/config-xdg'
Teach git to read various information from $XDG_CONFIG_HOME/git/ to allow
the user to avoid cluttering $HOME.

* mm/config-xdg:
  config: write to $XDG_CONFIG_HOME/git/config file when appropriate
  Let core.attributesfile default to $XDG_CONFIG_HOME/git/attributes
  Let core.excludesfile default to $XDG_CONFIG_HOME/git/ignore
  config: read (but not write) from $XDG_CONFIG_HOME/git/config file
2012-07-09 09:00:36 -07:00
Torsten Bögershausen
76759c7dff git on Mac OS and precomposed unicode
Mac OS X mangles file names containing unicode on file systems HFS+,
VFAT or SAMBA.  When a file using unicode code points outside ASCII
is created on a HFS+ drive, the file name is converted into
decomposed unicode and written to disk. No conversion is done if
the file name is already decomposed unicode.

Calling open("\xc3\x84", ...) with a precomposed "Ä" yields the same
result as open("\x41\xcc\x88",...) with a decomposed "Ä".

As a consequence, readdir() returns the file names in decomposed
unicode, even if the user expects precomposed unicode.  Unlike on
HFS+, Mac OS X stores files on a VFAT drive (e.g. an USB drive) in
precomposed unicode, but readdir() still returns file names in
decomposed unicode.  When a git repository is stored on a network
share using SAMBA, file names are send over the wire and written to
disk on the remote system in precomposed unicode, but Mac OS X
readdir() returns decomposed unicode to be compatible with its
behaviour on HFS+ and VFAT.

The unicode decomposition causes many problems:

- The names "git add" and other commands get from the end user may
  often be precomposed form (the decomposed form is not easily input
  from the keyboard), but when the commands read from the filesystem
  to see what it is going to update the index with already is on the
  filesystem, readdir() will give decomposed form, which is different.

- Similarly "git log", "git mv" and all other commands that need to
  compare pathnames found on the command line (often but not always
  precomposed form; a command line input resulting from globbing may
  be in decomposed) with pathnames found in the tree objects (should
  be precomposed form to be compatible with other systems and for
  consistency in general).

- The same for names stored in the index, which should be
  precomposed, that may need to be compared with the names read from
  readdir().

NFS mounted from Linux is fully transparent and does not suffer from
the above.

As Mac OS X treats precomposed and decomposed file names as equal,
we can

 - wrap readdir() on Mac OS X to return the precomposed form, and

 - normalize decomposed form given from the command line also to the
   precomposed form,

to ensure that all pathnames used in Git are always in the
precomposed form.  This behaviour can be requested by setting
"core.precomposedunicode" configuration variable to true.

The code in compat/precomposed_utf8.c implements basically 4 new
functions: precomposed_utf8_opendir(), precomposed_utf8_readdir(),
precomposed_utf8_closedir() and precompose_argv().  The first three
are to wrap opendir(3), readdir(3), and closedir(3) functions.

The argv[] conversion allows to use the TAB filename completion done
by the shell on command line.  It tolerates other tools which use
readdir() to feed decomposed file names into git.

When creating a new git repository with "git init" or "git clone",
"core.precomposedunicode" will be set "false".

The user needs to activate this feature manually.  She typically
sets core.precomposedunicode to "true" on HFS and VFAT, or file
systems mounted via SAMBA.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-08 22:03:46 -07:00
Max Horn
89ce391b8e Make <refname> documentation more consistent.
Formerly, the documentation for <refname> would occasionally say
<name> instead of <refname>. Now it uniformly uses <refname>.

Signed-off-by: Max Horn <max@quendi.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-05 23:59:30 -07:00
Gary Gibbons
84cb00036f git p4: refactor diffOpts calculation
P4Submit.applyCommit()

To avoid recalculating the same diffOpts for each commit, move it
out of applyCommit() and into the top-level run().  Also fix a bug
in that code which interpreted the value of detectRenames as a
string rather than as a boolean.

[pw: fix documentation, rearrange code a bit]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-05 23:23:28 -07:00
Junio C Hamano
8228a23b35 Fourth batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-04 23:48:37 -07:00
Andreas Schwab
b12905140a Fix formatting in git-config(1)
This fixes two formatting bugs in the git-config documentation:

- in the column.ui entry don't indent the last paragraph so that it isn't
  formatted as a literal paragraph
- in the push.default entry separate the last paragraph from the
  nested list.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-03 12:13:19 -07:00
Junio C Hamano
e7b44f182b Third batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-28 15:35:37 -07:00
Junio C Hamano
30e8e6fdea Merge branch 'lk/more-helpful-status-hints'
Give finer classification to various states of paths in conflicted
state and offer advice messages in the "git status" output.
2012-06-28 15:20:35 -07:00
Junio C Hamano
fbc9724188 Merge branch 'lk/rebase-i-x'
Teach "-x <cmd>" to "rebase -i" to insert "exec <cmd>" after each
commit in the resulting history.
2012-06-28 15:20:23 -07:00
Chris Webb
df5df20c13 rebase -i: support --root without --onto
Allow --root to be specified to rebase -i without --onto, making it
possible to edit and re-order all commits right back to the root(s).

If there is a conflict to be resolved when applying the first change,
the user will expect a sane index and working tree to get sensible
behaviour from git-diff and friends, so create a sentinel commit with an
empty tree to rebase onto. Automatically squash the sentinel with any
commits rebased directly onto it, so they end up as root commits in
their own right and retain their authorship and commit message.

Implicitly use rebase -i for non-interactive rebase of --root without
an --onto argument now that rebase -i can correctly do this.

Signed-off-by: Chris Webb <chris@arachsys.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-26 15:08:10 -07:00
Matthieu Moy
2d6dc182b8 git credential fill: output the whole 'struct credential'
Instead of outputing only the username and password, print all the
attributes, even those that already appeared in the input.

This is closer to what the C API does, and allows one to take the exact
output of "git credential fill" as input to "git credential approve" or
"git credential reject".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 11:56:24 -07:00
Javier Roucher Iglesias
e30b2feb1b add 'git credential' plumbing command
The credential API is in C, and not available to scripting languages.
Expose the functionalities of the API by wrapping them into a new
plumbing command "git credentials".

In other words, replace the internal "test-credential" by an official Git
command.

Most documentation writen by: Jeff King <peff@peff.net>
Signed-off-by: Pavel Volek <Pavel.Volek@ensimag.imag.fr>
Signed-off-by: Kim Thuat Nguyen <Kim-Thuat.Nguyen@ensimag.imag.fr>
Signed-off-by: Javier Roucher Iglesias <Javier.Roucher-Iglesias@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 11:55:51 -07:00
Junio C Hamano
bc9e7dd41f Second batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 11:31:07 -07:00
Junio C Hamano
a913b56fcb Merge branch 'cn/cherry-pick-range-docs'
The command line argument of "git cherry-pick maint master..next" is
just an ordinary revision range, which is unintuitive and at least
deserves documentation.

* cn/cherry-pick-range-docs:
  git-cherry-pick.txt: clarify the use of revision range notation
  Documentation: --no-walk is no-op if range is specified
2012-06-25 11:25:38 -07:00
Junio C Hamano
45362148fa Merge branch 'rr/doc-commit'
* rr/doc-commit:
  commit: document a couple of options
2012-06-25 11:24:42 -07:00
Junio C Hamano
10fcd5194f Merge branch 'jk/no-more-asciidoc7'
We no longer use AsciiDoc7 syntax in our documentation and favor a
more modern style.

* jk/no-more-asciidoc7:
  docs: drop antique comment from Makefile
  docs: drop asciidoc7compatible flag
2012-06-25 11:24:10 -07:00
Huynh Khoi Nguyen Nguyen
0e8593dc5b config: write to $XDG_CONFIG_HOME/git/config file when appropriate
Teach git to write to $XDG_CONFIG_HOME/git/config if

 - it already exists,
 - $HOME/.gitconfig file doesn't, and
 - The --global option is used.

Otherwise, write to $HOME/.gitconfig when the --global option is
given, as before.

If the user doesn't create $XDG_CONFIG_HOME/git/config, there is
absolutely no change. Users can use this new file only if they want.

If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/config
will be used.

Advice for users who often come back to an old version of Git: you
shouldn't create this file.

Signed-off-by: Huynh Khoi Nguyen Nguyen <Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>
Signed-off-by: Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>
Signed-off-by: Franck Jonas <Franck.Jonas@ensimag.imag.fr>
Signed-off-by: Lucien Kong <Lucien.Kong@ensimag.imag.fr>
Signed-off-by: Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 09:06:15 -07:00
Huynh Khoi Nguyen Nguyen
684e40f657 Let core.attributesfile default to $XDG_CONFIG_HOME/git/attributes
This gives the default value for the core.attributesfile variable
following the exact same logic of the previous change for the
core.excludesfile setting.

Signed-off-by: Huynh Khoi Nguyen Nguyen <Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>
Signed-off-by: Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>
Signed-off-by: Franck Jonas <Franck.Jonas@ensimag.imag.fr>
Signed-off-by: Lucien Kong <Lucien.Kong@ensimag.imag.fr>
Signed-off-by: Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 09:06:15 -07:00
Huynh Khoi Nguyen Nguyen
dc79687e0b Let core.excludesfile default to $XDG_CONFIG_HOME/git/ignore
To use the feature of core.excludesfile, the user needs:

 1. to create such a file,

 2. and add configuration variable to point at it.

Instead, we can make this a one-step process by choosing a default value
which points to a filename in the user's $HOME, that is unlikely to
already exist on the system, and only use the presence of the file as a
cue that the user wants to use that feature.

And we use "${XDG_CONFIG_HOME:-$HOME/.config/git}/ignore" as such a
file, in the same directory as the newly added configuration file
("${XDG_CONFIG_HOME:-$HOME/.config/git}/config).  The use of this
directory is in line with XDG specification as a location to store
such application specific files.

Signed-off-by: Huynh Khoi Nguyen Nguyen <Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>
Signed-off-by: Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>
Signed-off-by: Franck Jonas <Franck.Jonas@ensimag.imag.fr>
Signed-off-by: Lucien Kong <Lucien.Kong@ensimag.imag.fr>
Signed-off-by: Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 09:06:15 -07:00
Huynh Khoi Nguyen Nguyen
21cf322791 config: read (but not write) from $XDG_CONFIG_HOME/git/config file
Teach git to read the "gitconfig" information from a new location,
$XDG_CONFIG_HOME/git/config; this allows the user to avoid
cluttering $HOME with many per-application configuration files.

In the order of reading, this file comes between the global
configuration file (typically $HOME/.gitconfig) and the system wide
configuration file (typically /etc/gitconfig).

We do not write to this new location (yet).

If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/config
will be used. This is in line with XDG specification.

If the new file does not exist, the behavior is unchanged.

Signed-off-by: Huynh Khoi Nguyen Nguyen <Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>
Signed-off-by: Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>
Signed-off-by: Franck Jonas <Franck.Jonas@ensimag.imag.fr>
Signed-off-by: Lucien Kong <Lucien.Kong@ensimag.imag.fr>
Signed-off-by: Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-25 09:05:55 -07:00
Junio C Hamano
f71be5cc06 Merge branch 'maint'
* maint:
  Documentation: Fix misspellings
2012-06-22 14:35:57 -07:00
Leila Muhtasib
8d8136c37a Documentation: Fix misspellings
Signed-off-by: Leila Muhtasib <muhtasib@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-22 14:25:04 -07:00
Junio C Hamano
0e18bef7e6 Sync with 1.7.11.1 2012-06-21 14:52:23 -07:00
Junio C Hamano
157a282401 The first batch for 1.7.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-21 14:51:39 -07:00
Junio C Hamano
0e64a95ae5 Git 1.7.11.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-21 14:43:59 -07:00
Junio C Hamano
486fcbc458 Merge branch 'jk/clone-local'
"git clone --local $path" started its life as an experiment to
optionally use link/copy when cloning a repository on the disk, but
we didn't deprecate it after we made the option a no-op to always
use the optimization.

The command learns "--no-local" option to turn this off, as a more
explicit alternative over use of file:// URL.

* jk/clone-local:
  clone: allow --no-local to turn off local optimizations
  docs/clone: mention that --local may be ignored
2012-06-21 14:41:53 -07:00
Jeff King
60475183c0 docs: always define git-relative-html-prefix attribute
Commit fe77b41 introduced a new attribute to let the linkgit macro
create cross-directory HTML references from the technical/ and howto/
subdirectories back to the main documentation. We define that attribute
to "../" on the command-line when building inside those subdirectories,
and otherwise leave it unset under the assumption that it would default
to being blank.  Instead, asciidoc omits the link entirely, leading to
broken documentation. Fix this by defining git-relative-html-prefix to
blank in asciidoc.conf (and an instance on the command-line, when
present, will override it).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-20 23:35:08 -07:00
Junio C Hamano
d28436736a git-commit-tree(1): update synopsis
Even with many new kinds of options, the command still takes the
single <tree> as the first argument.

Probably we would want to update the command to allow it to take
<tree>-ish at the end for consistency.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-19 11:36:57 -07:00
Miklos Vajna
b4ab1980da Documentation: spelling fixes
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-19 11:35:19 -07:00
Junio C Hamano
0ce2e396ee Git 1.7.11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-17 14:07:15 -07:00
Junio C Hamano
a890c998de Sync with 1.7.10.5 2012-06-17 14:05:53 -07:00
Junio C Hamano
785ee4960c Git 1.7.10.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-17 14:04:15 -07:00
Carlos Martín Nieto
b98878edef git-cherry-pick.txt: clarify the use of revision range notation
When given a set of commits, cherry-pick will apply the changes for
all of them. Specifying a simple range will also work as expected.

This can lead the user to think that

    git cherry-pick A B..C

may apply A and then B..C, but that is not what happens.

Instead the revs are given to a single invocation of rev-list, which
will consider A and C as positive revs and B as a negative one.  The
commit A will not be used if it is an ancestor of B.

Add a note about this and add an example with this particular
syntax, which has shown up on the list a few times.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-15 10:56:13 -07:00
Carlos Martín Nieto
42939f1a24 Documentation: --no-walk is no-op if range is specified
The existing description can be misleading and cause the reader to
think that --no-walk will do something if they specify a range in the
command line instead of a set of revs.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-15 10:41:37 -07:00
Lucien Kong
83c750acde wt-status.*: better advices for git status added
This patch provides new informative help messages in the display of
'git status' (at the top) during conflicts, rebase, am, bisect or
cherry-pick process.

The new messages are not shown when using options such as -s or
--porcelain. The messages about the current situation of the user are
always displayed but the advices on what the user needs to do in order
to resume a rebase/bisect/am/commit after resolving conflicts can be
hidden by setting advice.statushints to 'false' in the config file.

Thus, information about the updated advice.statushints key are added
in Documentation/config.txt.

Also, the test t7060-wt-status.sh is now working with the new help
messages. Tests about suggestions of "git rm" are also added.

Signed-off-by: Lucien Kong <Lucien.Kong@ensimag.imag.fr>
Signed-off-by: Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>
Signed-off-by: Franck Jonas <Franck.Jonas@ensimag.imag.fr>
Signed-off-by: Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>
Signed-off-by: Huynh Khoi Nguyen Nguyen <Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-06-14 10:15:19 -07:00