summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)AuthorFilesLines
2013-02-07upload-pack: optionally allow fetching from the tips of hidden refsLibravatar Junio C Hamano1-1/+7
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-07upload/receive-pack: allow hiding ref hierarchiesLibravatar Junio C Hamano1-0/+23
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-01-18Merge git://bogomips.org/git-svnLibravatar Junio C Hamano1-0/+10
* 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-18Update draft release notes to 1.8.2Libravatar Junio C Hamano1-0/+8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-18Merge branch 'ss/help-htmlpath-config-doc'Libravatar Junio C Hamano1-0/+6
Add missing doc. * ss/help-htmlpath-config-doc: config.txt: Document help.htmlpath config parameter
2013-01-18Merge branch 'pe/doc-email-env-is-trumped-by-config'Libravatar Junio C Hamano1-2/+2
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-17git-svn: teach find-rev to find near matchesLibravatar John Keeping1-0/+10
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-15config.txt: Document help.htmlpath config parameterLibravatar Sebastian Staudt1-0/+6
Signed-off-by: Sebastian Staudt <koraktor@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14Sync with 1.8.1.1Libravatar Junio C Hamano2-1/+53
2013-01-14Update draft release notes to 1.8.2Libravatar Junio C Hamano1-0/+12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14Git 1.8.1.1Libravatar Junio C Hamano2-1/+53
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14Merge branch 'jk/unify-exit-code-by-receiving-signal' into maintLibravatar Junio C Hamano1-4/+2
* jk/unify-exit-code-by-receiving-signal: run-command: encode signal death as a positive integer
2013-01-14Merge branch 'jn/xml-depends-on-asciidoc-conf' into maintLibravatar Junio C Hamano1-5/+3
* jn/xml-depends-on-asciidoc-conf: docs: manpage XML depends on asciidoc.conf
2013-01-14Merge branch 'jk/maint-fast-import-doc-reorder' into maintLibravatar Junio C Hamano1-46/+52
* jk/maint-fast-import-doc-reorder: git-fast-import(1): reorganise options git-fast-import(1): combine documentation of --[no-]relative-marks
2013-01-14Merge branch 'jk/shortlog-no-wrap-doc' into maintLibravatar Junio C Hamano1-0/+3
* jk/shortlog-no-wrap-doc: git-shortlog(1): document behaviour of zero-width wrap
2013-01-14Merge branch 'jk/maint-fast-import-doc-dedup-done' into maintLibravatar Junio C Hamano1-5/+2
* jk/maint-fast-import-doc-dedup-done: git-fast-import(1): remove duplicate '--done' option
2013-01-14Merge branch 'mk/maint-graph-infinity-loop' into maintLibravatar Junio C Hamano1-5/+5
* mk/maint-graph-infinity-loop: graph.c: infinite loop in git whatchanged --graph -m
2013-01-11Update draft release notes to 1.8.2Libravatar Junio C Hamano1-0/+15
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-11Merge branch 'jk/maint-fast-import-doc-reorder'Libravatar Junio C Hamano1-46/+52
* jk/maint-fast-import-doc-reorder: git-fast-import(1): reorganise options git-fast-import(1): combine documentation of --[no-]relative-marks
2013-01-11Merge branch 'jk/shortlog-no-wrap-doc'Libravatar Junio C Hamano1-0/+3
* jk/shortlog-no-wrap-doc: git-shortlog(1): document behaviour of zero-width wrap
2013-01-11Merge branch 'jn/xml-depends-on-asciidoc-conf'Libravatar Junio C Hamano1-5/+3
* jn/xml-depends-on-asciidoc-conf: docs: manpage XML depends on asciidoc.conf
2013-01-11Merge branch 'jk/unify-exit-code-by-receiving-signal'Libravatar Junio C Hamano1-4/+2
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-11Merge branch 'jc/format-patch-reroll'Libravatar Junio C Hamano1-1/+10
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-11Merge branch 'as/api-allocation-doc' into maintLibravatar Junio C Hamano1-6/+8
* as/api-allocation-doc: api-allocation-growing.txt: encourage better variable naming
2013-01-11Merge branch 'jc/submittingpatches' into maintLibravatar Junio C Hamano1-84/+91
* 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-11Merge branch 'kb/maint-bundle-doc' into maintLibravatar Junio C Hamano1-5/+4
* kb/maint-bundle-doc: Documentation: full-ness of a bundle is significant for cloning Documentation: correct example restore from bundle
2013-01-11Merge branch 'jn/warn-on-inaccessible-loosen' into maintLibravatar Junio C Hamano2-0/+12
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-10Merge branch 'maint'Libravatar Junio C Hamano1-0/+36
* maint: Prepare for 1.8.1.1 Makefile: detect when PYTHON_PATH changes (cherry-picked)
2013-01-10Update draft release notes to 1.8.2Libravatar Junio C Hamano1-0/+30
2013-01-10Prepare for 1.8.1.1Libravatar Junio C Hamano1-0/+36
2013-01-10Merge branch 'ta/remove-stale-translated-tut' into maintLibravatar Junio C Hamano1-675/+0
* ta/remove-stale-translated-tut: Remove Documentation/pt_BR/gittutorial.txt
2013-01-10Merge branch 'as/api-allocation-doc'Libravatar Junio C Hamano1-6/+8
* as/api-allocation-doc: api-allocation-growing.txt: encourage better variable naming
2013-01-10Merge branch 'as/dir-c-cleanup'Libravatar Junio C Hamano1-9/+12
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-10Merge branch 'nd/wildmatch'Libravatar Junio C Hamano1-0/+19
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-10git-commit-tree(1): correct description of defaultsLibravatar Peter Eisentraut1-2/+2
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-09git-fast-import(1): reorganise optionsLibravatar John Keeping1-39/+47
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-09git-fast-import(1): combine documentation of --[no-]relative-marksLibravatar John Keeping1-6/+4
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-09git-shortlog(1): document behaviour of zero-width wrapLibravatar John Keeping1-0/+3
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-09Update draft release notes to 1.8.2Libravatar Junio C Hamano1-11/+53
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09Merge branch 'nd/maint-branch-desc-doc'Libravatar Junio C Hamano1-0/+6
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-09Merge branch 'jc/submittingpatches'Libravatar Junio C Hamano1-84/+91
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-09Merge branch 'er/stop-recommending-parsecvs'Libravatar Junio C Hamano1-4/+2
Stop recommending a defunct third-party software. * er/stop-recommending-parsecvs: Remove the suggestion to use parsecvs, which is currently broken.
2013-01-08Merge branch 'kb/maint-bundle-doc'Libravatar Junio C Hamano1-5/+4
* kb/maint-bundle-doc: Documentation: full-ness of a bundle is significant for cloning Documentation: correct example restore from bundle
2013-01-08Merge branch 'ta/remove-stale-translated-tut'Libravatar Junio C Hamano1-675/+0
Remove a translation of a document that was left stale. * ta/remove-stale-translated-tut: Remove Documentation/pt_BR/gittutorial.txt
2013-01-08Merge branch 'jk/maint-fast-import-doc-dedup-done'Libravatar Junio C Hamano1-5/+2
* jk/maint-fast-import-doc-dedup-done: git-fast-import(1): remove duplicate '--done' option
2013-01-08git-fast-import(1): remove duplicate '--done' optionLibravatar John Keeping1-5/+2
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-06Merge branch 'jn/warn-on-inaccessible-loosen'Libravatar Junio C Hamano2-0/+12
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-06api-allocation-growing.txt: encourage better variable namingLibravatar Adam Spiers1-6/+8
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-06docs: manpage XML depends on asciidoc.confLibravatar Jonathan Nieder1-5/+3
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-06run-command: encode signal death as a positive integerLibravatar Jeff King1-4/+2
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>