summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-01-10start_command: report child process setup errors to the parent's stderrLibravatar Johannes Sixt1-3/+43
When the child process's environment is set up in start_command(), error messages were written to wherever the parent redirected the child's stderr channel. However, even if the parent redirected the child's stderr, errors during this setup process, including the exec itself, are usually an indication of a problem in the parent's environment. Therefore, the error messages should go to the parent's stderr. Redirection of the child's error messages is usually only used to redirect hook error messages during client-server exchanges. In these cases, hook setup errors could be regarded as information leak. This patch makes a copy of stderr if necessary and uses a special die routine that is used for all die() calls in the child that sends the errors messages to the parent's stderr. The trace call that reported a failed execvp is removed (because it writes to stderr) and replaced by die_errno() with special treatment of ENOENT. The improvement in the error message can be seen with this sequence: mkdir .git/hooks/pre-commit git commit Previously, the error message was error: cannot run .git/hooks/pre-commit: No such file or directory and now it is fatal: cannot exec '.git/hooks/pre-commit': Permission denied Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-09Reset possible helper before reusing remote structureLibravatar Ilari Liusvaara1-0/+3
If one had multiple URLs configured for remote with previous one having forced helper but the subsequent one not, like: url = foo::bar://baz url = ssh://example/example.git Then the subsequent URL is passed to foo helper, which isn't correct. Fix it to be parsed normally by resetting foreign VCS name before parsing the URL protocol. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-28Remove special casing of http, https and ftpLibravatar Ilari Liusvaara3-10/+29
HTTP, HTTPS and FTP are no longer special to transport code. Also add support for FTPS (curl supports it so it is easy). Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-28Support remote archive from all smart transportsLibravatar Ilari Liusvaara4-7/+55
Previously, remote archive required internal (non remote-helper) smart transport. Extend the remote archive to also support smart transports implemented by remote helpers. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-28Support remote helpers implementing smart transportsLibravatar Ilari Liusvaara2-7/+142
Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-09Support taking over transportsLibravatar Ilari Liusvaara3-6/+66
Add support for taking over transports that turn out to be smart. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-09Refactor git transport options parsingLibravatar Ilari Liusvaara2-31/+62
Refactor the transport options parsing so that protocols that aren't directly smart transports (file://, git://, ssh:// & co) can record the smart transport options for the case if it turns that transport can actually be smart. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-09Pass unknown protocols to external protocol handlersLibravatar Ilari Liusvaara2-16/+72
Change URL handling to allow external protocol handlers to implement new protocols without the '::' syntax if helper name does not conflict with any built-in protocol. foo:// now invokes git-remote-foo with foo:// as the URL. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-09Support mandatory capabilitiesLibravatar Ilari Liusvaara2-7/+23
Add support for marking capability as mandatory for hosting git version to understand. This is useful for helpers which require various types of assistance from main git binary. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-09Add remote helper debug modeLibravatar Ilari Liusvaara1-25/+69
Remote helpers deadlock easily, so support debug mode which shows the interaction steps. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-06Merge branch 'master' into il/vcs-helperLibravatar Junio C Hamano308-2343/+14152
* master: (334 commits) bash: update 'git commit' completion Git 1.6.5.5 Fix diff -B/--dirstat miscounting of newly added contents reset: improve worktree safety valves Documentation: Avoid use of xmlto --stringparam archive: clarify description of path parameter rerere: don't segfault on failure to open rr-cache Prepare for 1.6.5.5 gitweb: Describe (possible) gitweb.js minification in gitweb/README Documentation: xmlto 0.0.18 does not know --stringparam Fix crasher on encountering SHA1-like non-note in notes tree t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-' t4201: use ISO8859-1 rather than ISO-8859-1 Git 1.6.5.4 Unconditionally set man.base.url.for.relative.links Documentation/Makefile: allow man.base.url.for.relative.link to be set from Make Git 1.6.6-rc1 git-pull.sh: Fix call to git-merge for new command format Prepare for 1.6.5.4 merge: do not add standard message when message is given with -m option ... Conflicts: Documentation/git-remote-helpers.txt Makefile builtin-ls-remote.c builtin-push.c transport-helper.c Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05bash: update 'git commit' completionLibravatar SZEDER Gábor1-1/+21
I just wanted to add the recently learnt '--reset-author' option, but then noticed that there are many more options missing. This patch adds support for all of 'git commit's options, except '--allow-empty', because it is primarily there for foreign scm interfaces. Furthermore, this patch also adds support for completing the arguments of those options that take a non-filename argument: valid modes are offered for '--cleanup' and '--untracked-files', while refs for '--reuse-message' and '--reedit-message', because these two take a commit as argument. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05Sync with 1.6.5.5Libravatar Junio C Hamano10-22/+80
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05Git 1.6.5.5Libravatar Junio C Hamano4-5/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05Fix diff -B/--dirstat miscounting of newly added contentsLibravatar Linus Torvalds1-1/+10
What used to happen is that diffcore_count_changes() simply ignored any hashes in the destination that didn't match hashes in the source. EXCEPT if the source hash didn't exist at all, in which case it would count _one_ destination hash that happened to have the "next" hash value. As a consequence, newly added material was often undercounted, making output from --dirstat and "complete rewrite" detection used by -B unrelialble. This changes it so that: - whenever it bypasses a destination hash (because it doesn't match a source), it counts the bytes associated with that as "literal added" - at the end (once we have used up all the source hashes), we do the same thing with the remaining destination hashes. - when hashes do match, and we use the difference in counts as a value, we also use up that destination hash entry (the 'd++'). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05reset: improve worktree safety valvesLibravatar Jeff King2-5/+33
The existing code checked to make sure we were not in a bare repository when doing a hard reset. However, we should take this one step further, and make sure we are in a worktree. Otherwise, we can end up munging files inside of '.git'. Furthermore, we should do the same check for --merge resets, which have the same properties. Actually, a merge reset of HEAD^ would already complain, since further down in the code we want a worktree. However, it is nicer to check up-front; then we are sure we cover all cases ("git reset --merge" would run, even though it wasn't doing anything) and we can give a more specific message. Add tests to t7103 to cover these cases and some missing ones. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-05Documentation: Avoid use of xmlto --stringparamLibravatar Todd Zullinger3-11/+23
The --stringparam option is not available on older xmlto versions. Instead, set man.base.url.for.relative.links via a .xsl file. Older docbook versions will ignore this without causing grief to users of older xmlto versions. Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-04archive: clarify description of path parameterLibravatar René Scharfe1-2/+3
Mention that path parameters are based on the current working directory. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> -- Documentation/git-archive.txt | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-04rerere: don't segfault on failure to open rr-cacheLibravatar Jeff King1-0/+2
The rr-cache directory should always exist if we are doing garbage collection (earlier code paths check this explicitly), but we may not necessarily succeed in opening it (for example, due to permissions problems). In that case, we should print an error message rather than simply segfaulting. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03builtin-push: don't access freed transport->urlLibravatar Tay Ray Chuan1-2/+3
Move the failed push message to before transport_disconnect() so that it doesn't access transport->url after transport has been free()'d (in transport_disconnect()). Additionally, make the failed push message more accurate by moving it before transport_disconnect(), so that it doesn't report errors due to a failed disconnect. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Acked-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Merge branch 'maint'Libravatar Junio C Hamano3-2/+53
* maint: Prepare for 1.6.5.5 Documentation: xmlto 0.0.18 does not know --stringparam t4201: use ISO8859-1 rather than ISO-8859-1
2009-12-03Prepare for 1.6.5.5Libravatar Junio C Hamano1-0/+44
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Merge branch 'uk/maint-shortlog-encoding' into maintLibravatar Junio C Hamano2-9/+39
* uk/maint-shortlog-encoding: t4201: use ISO8859-1 rather than ISO-8859-1 shortlog: respect commit encoding
2009-12-03Merge branch 'fc/maint-format-patch-pathspec-dashes' into maintLibravatar Junio C Hamano2-1/+7
* fc/maint-format-patch-pathspec-dashes: format-patch: add test for parsing of "--" format-patch: fix parsing of "--" on the command line
2009-12-03Merge branch 'ap/maint-merge-strategy-list-fix' into maintLibravatar Junio C Hamano1-1/+1
* ap/maint-merge-strategy-list-fix: builtin-merge.c: call exclude_cmds() correctly.
2009-12-03Merge branch 'jc/maint-am-keep' into maintLibravatar Junio C Hamano1-5/+6
* jc/maint-am-keep: Remove dead code from "git am"
2009-12-03Merge branch 'rs/work-around-grep-opt-insanity' into maintLibravatar Junio C Hamano9-25/+32
* rs/work-around-grep-opt-insanity: Protect scripted Porcelains from GREP_OPTIONS insanity mergetool--lib: simplify guess_merge_tool()
2009-12-03Merge branch 'rj/maint-cygwin-count-objects' into maintLibravatar Junio C Hamano1-0/+1
* rj/maint-cygwin-count-objects: git-count-objects: Fix a disk-space under-estimate on Cygwin
2009-12-03Merge branch 'mm/maint-hint-failed-merge' into maintLibravatar Junio C Hamano5-3/+32
* mm/maint-hint-failed-merge: user-manual: Document that "git merge" doesn't like uncommited changes. merge-recursive: point the user to commit when file would be overwritten.
2009-12-03Merge branch 'th/maint-remote-update-help-string' into maintLibravatar Junio C Hamano1-1/+1
* th/maint-remote-update-help-string: Update 'git remote update' usage string to match man page.
2009-12-03Merge branch 'rj/maint-t9700' into maintLibravatar Junio C Hamano1-1/+1
* rj/maint-t9700: t9700-perl-git.sh: Fix a test failure on Cygwin
2009-12-03Merge branch 'ls/maint-mailinfo-no-inbody' into maintLibravatar Junio C Hamano16-5/+122
* ls/maint-mailinfo-no-inbody: git am/mailinfo: Don't look at in-body headers when rebasing
2009-12-03Merge branch 'mo/maint-crlf-doc' into maintLibravatar Junio C Hamano1-3/+4
* mo/maint-crlf-doc: core.autocrlf documentation: mention the crlf attribute
2009-12-03Merge branch 'th/remote-usage' into maintLibravatar Junio C Hamano2-21/+52
* th/remote-usage: git remote: Separate usage strings for subcommands
2009-12-03Merge branch 'pb/maint-use-custom-perl' into maintLibravatar Junio C Hamano4-4/+5
* pb/maint-use-custom-perl: Make sure $PERL_PATH is defined when the test suite is run.
2009-12-03Merge branch 'mm/config-pathname-tilde-expand' into maintLibravatar Junio C Hamano5-37/+69
* mm/config-pathname-tilde-expand: Documentation: avoid xmlto input error expand_user_path: expand ~ to $HOME, not to the actual homedir. Expand ~ and ~user in core.excludesfile, commit.template
2009-12-03Merge branch 'bc/grep-i-F' into maintLibravatar Junio C Hamano4-6/+27
* bc/grep-i-F: grep: Allow case insensitive search of fixed-strings
2009-12-03Merge branch 'jk/maint-break-rename-reduce-memory' into maintLibravatar Junio C Hamano2-3/+10
* jk/maint-break-rename-reduce-memory: diffcore-rename: reduce memory footprint by freeing blob data early diffcore-break: save cnt_data for other phases diffcore-break: free filespec data as we go
2009-12-03Merge branch 'rj/maint-simplify-cygwin-makefile' into maintLibravatar Junio C Hamano1-4/+2
* rj/maint-simplify-cygwin-makefile: Makefile: merge two Cygwin configuration sections into one
2009-12-03Merge branch 'rg/doc-workflow' into maintLibravatar Junio C Hamano1-0/+115
* rg/doc-workflow: Add branch management for releases to gitworkflows
2009-12-03Merge branch 'np/maint-sideband-favor-status' into maintLibravatar Junio C Hamano2-23/+23
* np/maint-sideband-favor-status: give priority to progress messages
2009-12-03gitweb: Describe (possible) gitweb.js minification in gitweb/READMELibravatar Jakub Narebski1-1/+2
Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Documentation: xmlto 0.0.18 does not know --stringparamLibravatar Junio C Hamano1-0/+7
Newer DocBook stylesheets want man.base.url.for.relative.links parameter set when formatting manpages with external references to turn them into full URLs, and leave a helpful "you should set this parameter" message in the output. Earlier we added the MAN_BASE_URL make variable to specify the value for it. When MAN_BASE_URL is not given, it ought to be safe to set the parameter to empty; it would result in an empty leading path for older stylesheets that ignore the parameter, and newer ones would produce the same "relative URL" without the message. Unfortunately, older xmlto (at least version 0.0.18 released in early 2004 that comes with RHEL/CentOS 5) does not understand the --stringparam command line option, so we cannot add the parameter definition unconditionally to the command line. Work it around by passing the parameter only when set. If you do not have a suitable URL prefix, you can pass a quoted empty string to it, like so: $ make MAN_BASE_URL='""' Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Fix crasher on encountering SHA1-like non-note in notes treeLibravatar Johan Herland2-0/+174
When loading a notes tree, the code primarily looks for SHA1-like paths whose total length (discounting directory separators) are 40 chars (interpreted as valid note entries) or less (interpreted as subtree entries that may in turn contain note entries when unpacked). However, there is an additional condition that must hold for valid subtree entries: They must be _tree_ objects (duh). This patch adds an appropriate test for this condition, thereby fixing the crash that occured when passing a non-tree object to the tree-walk API. The patch also adds another selftest verifying correct behaviour of non-notes in note trees. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'Libravatar Brandon Casey1-1/+1
The '--no-chain-reply-to' option is a Getopt::Long boolean option. The '--no-' prefix (as in --no-chain-reply-to) for boolean options is not supported in Getopt::Long version 2.32 which was released with Perl 5.8.0. This version only supports '--no' as in '--nochain-reply-to'. More recent versions of Getopt::Long, such as version 2.34, support either prefix. So use the older form in the tests. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03t4201: use ISO8859-1 rather than ISO-8859-1Libravatar Brandon Casey1-2/+2
Some ancient platforms do not have an extensive list of alternate names for character encodings. For example, Solaris 7 and IRIX 6.5 do not know that ISO-8859-1 is the same as ISO8859-1. Modern platforms do know this, so use the older name. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Merge in 1.6.5.4Libravatar Junio C Hamano2-3/+7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Git 1.6.5.4Libravatar Junio C Hamano2-2/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Unconditionally set man.base.url.for.relative.linksLibravatar Junio C Hamano1-2/+5
Even setting it to empty is better than leaving it unset as it prevents the warning cruft from appearing in the output. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-12-03Merge branch 'maint'Libravatar Junio C Hamano1-0/+4