summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-12-09Merge branch 'jc/spht'Libravatar Junio C Hamano12-111/+641
* jc/spht: Use gitattributes to define per-path whitespace rule core.whitespace: documentation updates. builtin-apply: teach whitespace_rules builtin-apply: rename "whitespace" variables and fix styles core.whitespace: add test for diff whitespace error highlighting git-diff: complain about >=8 consecutive spaces in initial indent War on whitespace: first, a bit of retreat. Conflicts: cache.h config.c diff.c
2007-12-09Merge branch 'pr/mergetool'Libravatar Junio C Hamano1-4/+5
* pr/mergetool: Open external merge tool with original file extensions for all three files
2007-12-09Merge branch 'maint'Libravatar Junio C Hamano1-2/+8
* maint: config.c:store_write_pair(): don't read the byte before a malloc'd buffer.
2007-12-09Re-fix "builtin-commit: fix --signoff"Libravatar Junio C Hamano8-29/+26
An earlier fix to the said commit was incomplete; it mixed up the meaning of the flag parameter passed to the internal fmt_ident() function, so this corrects it. git_author_info() and git_committer_info() can be told to issue a warning when no usable user information is found, and optionally can be told to error out. Operations that actually use the information to record a new commit or a tag will still error out, but the caller to leave reflog record will just silently use bogus user information. Not warning on misconfigured user information while writing a reflog entry is somewhat debatable, but it is probably nicer to the users to silently let it pass, because the only information you are losing is who checked out the branch. * git_author_info() and git_committer_info() used to take 1 (positive int) to error out with a warning on misconfiguration; this is now signalled with a symbolic constant IDENT_ERROR_ON_NO_NAME. * These functions used to take -1 (negative int) to warn but continue; this is now signalled with a symbolic constant IDENT_WARN_ON_NO_NAME. * fmt_ident() function implements the above error reporting behaviour common to git_author_info() and git_committer_info(). A symbolic constant IDENT_NO_DATE can be or'ed in to the flag parameter to make it return only the "Name <email@address.xz>". * fmt_name() is a thin wrapper around fmt_ident() that always passes IDENT_ERROR_ON_NO_NAME and IDENT_NO_DATE. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09Add tests for pre-commit and commit-msg hooksLibravatar Wincent Colaiuta3-1/+153
As desired, these pass for git-commit.sh, fail for builtin-commit (prior to the fixes), and succeeded for builtin-commit (after the fixes). Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09Fix commit-msg hook to allow editingLibravatar Junio C Hamano2-4/+7
The old git-commit.sh script allowed the commit-msg hook to not only prevent a commit from proceding, but also to edit the commit message on the fly and allow it to proceed. So here we teach builtin-commit to do the same. This is based on Wincent's patch, but redone with a clarified logic. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09Documentation: fix --no-verify documentation for "git commit"Libravatar Wincent Colaiuta1-1/+1
The documentation for the --no-verify switch should mention the commit-msg hook, not just the pre-commit hook. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09Allow --no-verify to bypass commit-msg hookLibravatar Wincent Colaiuta1-1/+2
At the moment the --no-verify switch to "git commit" instructs it to skip over the pre-commit hook. Here we teach "git commit --no-verify" to skip over the commit-msg hook as well. This brings the behaviour of builtin-commit back in line with git-commit.sh. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-09ls-remote: resurrect pattern limit supportLibravatar Junio C Hamano1-6/+38
"git ls-remote $remote $name1 $name2..." used to limit the output to refs that end with one of the $name given from the command line, but recent rewrite to C forgot to implement that support. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08config.c:store_write_pair(): don't read the byte before a malloc'd buffer.Libravatar Jim Meyering1-2/+8
Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08shortlog: code restructuring and clean-upLibravatar Junio C Hamano1-103/+62
The code tried to parse and clean-up the author name and the one line information in three places (two callers of insert_author_oneline() and the called function itself), which was a mess. This renames the callee to insert_one_record() and make it responsible for cleaning up the author name and one line information. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08mailmap: fix bogus for() loop that happened to be safe by accidentLibravatar Junio C Hamano1-3/+4
The empty loop pretended to have an empty statement as its body by a phony indentation, but in fact was slurping the next statement into it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08pack-objects: fix threaded load balancingLibravatar Nicolas Pitre1-32/+85
The current method consists of a master thread serving chunks of objects to work threads when they're done with their previous chunk. The issue is to determine the best chunk size: making it too large creates poor load balancing, while making it too small has a negative effect on pack size because of the increased number of chunk boundaries and poor delta window utilization. This patch implements a completely different approach by initially splitting the work in large chunks uniformly amongst all threads, and whenever a thread is done then it steals half of the remaining work from another thread with the largest amount of unprocessed objects. This has the advantage of greatly reducing the number of chunk boundaries with an almost perfect load balancing. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08pack-objects: reverse the delta search sort listLibravatar Nicolas Pitre1-20/+21
It is currently sorted and then walked backward. Not only this doesn't feel natural for my poor brain, but it would make the next patch less obvious as well. So reverse the sort order, and reverse the list walking direction, which effectively produce the exact same end result as before. Also bring the relevant comment nearer the actual code and adjust it accordingly, with minor additional clarifications. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08pack-objects: fix delta cache size accountingLibravatar Nicolas Pitre1-5/+5
The wrong value was substracted from delta_cache_size when replacing a cached delta, as trg_entry->delta_size was used after the old size had been replaced by the new size. Noticed by Linus. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08git-status: documentation improvementsLibravatar Jeff King1-12/+13
This patch is the result of reading over git-status with an editorial eye: - fix a few typo/grammatical errors - mention untracked output - present output types in the order they appear from the command Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08add status.relativePaths config variableLibravatar Jeff King6-2/+52
The output of git-status was recently changed to output relative paths. Setting this variable to false restores the old behavior for any old-timers that prefer it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08wt-status.c:quote_path(): convert empty path to "./"Libravatar Jeff King1-0/+3
Now that we are correctly removing leading prefixes from files in git status, there is a degenerate case: the directory matching the prefix. Because we show only the directory name for a directory that contains only untracked files, it gets collapsed to an empty string. Example: $ git init $ mkdir subdir $ touch subdir/file $ git status ... # Untracked files: # (use "git add <file>..." to include in what will be committed) # # subdir/ So far, so good. $ cd subdir $ git status .... # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Oops, that's a bit confusing. This patch prints './' to show that there is some output. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08git-bisect visualize: work in non-windowed environments betterLibravatar Junio C Hamano2-3/+27
This teaches "git bisect visualize" to be more useful in non-windowed environments. (1) When no option is given, and $DISPLAY is set, it continues to spawn gitk as before; (2) When no option is given, and $DISPLAY is unset, "git log" is run to show the range of commits between the bad one and the good ones; (3) If only "-flag" options are given, "git log <options>" is run. E.g. "git bisect visualize --stat" (4) Otherwise, all of the given options are taken as the initial part of the command line and the commit range expression is given to that command. E.g. "git bisect visualize tig" will run "tig" history viewer to show between the bad one and the good ones. As "visualize" is a bit too long to type, we also give it a shorter synonym "view". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08Teach "git add -i" to colorize whitespace errorsLibravatar Wincent Colaiuta1-39/+34
Rather than replicating the colorization logic of "git diff-files" we rely on "git diff-files" itself. This guarantees consistent colorization in and outside "git add -i". Seeing as speed is not a concern here (the bottleneck is how fast the user can read, not how fast "git diff-files" runs) we do this by actually running it twice, once without color and once with. In this way as the whitespace colorization provided by "git diff-files" evolves (per-path attributes, new classes of whitespace error), "git add -i" will automatically benefit from it and stay in synch. Also, by working with two sets of diff output (an uncolorized one for internal processing and a colorized one for display only) we minimize the risk of regressions because the changes required to implement this are minimally invasive. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-08Let git-help prefer man-pages installed with this version of gitLibravatar Sergei Organov2-1/+26
Prepend $(prefix)/share/man to the MANPATH environment variable before invoking 'man' from help.c:show_man_page(). There may be other git documentation in the user's MANPATH but the user is asking a specific instance of git about its own documentation, so we'd better show the documentation for _that_ instance of git. Signed-off-by: Sergei Organov <osv@javad.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-07Update draft release notes to 1.5.4Libravatar Junio C Hamano2-1/+17
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano9-1057/+1248
* 'master' of git://repo.or.cz/git-gui: Update Hungarian translation. 100% completed. Update ja.po for git-gui git-gui: Improve the application icon on Windows. git-gui: install-sh from automake does not like -m755 git-gui: Reorder msgfmt command-line arguments Update German translation. 100% completed. Update git-gui.pot with latest (few) string additions and changes. git-gui: update it.po and glossary/it.po git-gui: fix a typo in lib/commit.tcl
2007-12-06Merge branch 'mw/cvsserver'Libravatar Junio C Hamano1-7/+26
* mw/cvsserver: git-cvsserver runs hooks/post-update git-cvsserver runs hooks/post-receive
2007-12-06Merge branch 'kh/fetch-optparse'Libravatar Junio C Hamano1-77/+46
* kh/fetch-optparse: Rewrite builtin-fetch option parsing to use parse_options().
2007-12-06Merge branch 'jc/git-log-doc'Libravatar Junio C Hamano4-161/+168
* jc/git-log-doc: Include diff options in the git-log manpage
2007-12-06Merge branch 'jc/addi-color'Libravatar Junio C Hamano10-27/+218
* jc/addi-color: config --get-colorbool: diff.color is a deprecated synonym to color.diff Color support for "git-add -i" git config --get-colorbool
2007-12-06Merge branch 'jc/docmake-perl'Libravatar Junio C Hamano1-3/+6
* jc/docmake-perl: Run the specified perl in Documentation/
2007-12-06Merge branch 'jc/clean-fix'Libravatar Junio C Hamano2-21/+45
* jc/clean-fix: t7300: add test for clean with wildcard pathspec git-clean: Honor pathspec.
2007-12-06autoconf: Add test for OLD_ICONV (squelching compiler warning)Libravatar Jakub Narebski2-0/+23
Update configure.ac (and config.mak.in) to keep up with git development by adding [compile] test whether your library has an old iconv(), where the second (input buffer pointer) parameter is declared with type (const char **) (OLD_ICONV). Test-proposed-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Silence iconv warnings on LeopardLibravatar Wincent Colaiuta1-1/+3
Apple ships a newer version of iconv with Leopard (Mac OS X 10.5/Darwin 9). Ensure that OLD_ICONV is not set on any version of Darwin in the 9.x series; this should be good for at least a couple of years, when Darwin 10 comes out and we can invert the sense of the test to specifically check for Darwin 7 or 8. A more sophisticated and robust check is possible for those who use autoconf, but not everybody does that. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Merge branch 'maint'Libravatar Junio C Hamano2-2/+2
* maint: Change from using email.com to example.com as example domain, as per RFC 2606.
2007-12-06Change from using email.com to example.com as example domain, as per RFC 2606.Libravatar David Symonds2-2/+2
Signed-off-by: David Symonds <dsymonds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06git-status documentation: mention subdirectory behaviourLibravatar Junio C Hamano1-0/+4
Consistently with all other diff oriented commands, we have given paths relative to the work tree root in git-status output for a long time. This documents the recent behaviour change, as people's eyes (and worse yet, scripts, although scripts should not parse "git status" output) may depend on the old behaviour. In the longer run, giving a --full-name option to git-diff Porcelain similar to what ls-files has, and change the default for git-diff Porcelain to show relative paths may be a good thing to do, in order to hide the oddballness of this git-status behaviour, but that would have a rather large impact to established expectation by existing users. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06do not discard status in fetch_refs_via_pack()Libravatar Junio C Hamano1-1/+1
The code calls fetch_pack() to get the list of refs it fetched, and discards refs and always returns 0 to signal success. But builtin-fetch-pack.c::fetch_pack() has error cases. The function returns NULL if error is detected (shallow-support side seems to choose to die but I suspect that is easily fixable to error out as well). Make fetch_refs_via_pack() propagate that error to the caller. Acked-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06for-each-ref: Fix quoting style constants.Libravatar Johannes Sixt2-3/+42
for-each-ref can accept only one quoting style. For this reason it uses OPT_BIT for the quoting style switches so that it is easy to check for more than one bit being set. However, not all symbolic constants were actually single bit values. In particular: $ git for-each-ref --python error: more than one quoting style ? This fixes it. While we are here, let's also remove the space before the question mark. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06hg-to-git: handle an empty dir in hg.Libravatar Junio C Hamano1-1/+1
Mark Drago had a subversion repository which was then converted to hg and now is moving in to git. The first commit in the svn repo was just the creation of the empty directory. This made its way in to the hg repository fine, but converting from hg to git would cause an error. The problem was that hg-to-git.py tries to commit the change, git-commit fails, and then hg-to-git.py tries to checkout the new revision and that fails (because it was not created). This may have only caused an error because it was the first commit in the repository. If an empty directory was added in the middle of the repo somewhere things might have worked out fine. This patch will use the new --allow-empty option to git-commit to record such an "empty" commit, to reproduce the history recorded in hg more faithfully. Tested-by: Mark Drago <markdrago@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-06Use gitattributes to define per-path whitespace ruleLibravatar Junio C Hamano10-74/+233
The `core.whitespace` configuration variable allows you to define what `diff` and `apply` should consider whitespace errors for all paths in the project (See gitlink:git-config[1]). This attribute gives you finer control per path. For example, if you have these in the .gitattributes: frotz whitespace nitfol -whitespace xyzzy whitespace=-trailing all types of whitespace problems known to git are noticed in path 'frotz' (i.e. diff shows them in diff.whitespace color, and apply warns about them), no whitespace problem is noticed in path 'nitfol', and the default types of whitespace problems except "trailing whitespace" are noticed for path 'xyzzy'. A project with mixed Python and C might want to have: *.c whitespace *.py whitespace=-indent-with-non-tab in its toplevel .gitattributes file. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05config --get-colorbool: diff.color is a deprecated synonym to color.diffLibravatar Junio C Hamano1-2/+16
The applications can ask for color.diff but the configuration of old timer users can still instruct it to use color with diff.color this way. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05t7300: add test for clean with wildcard pathspecLibravatar Jeff King1-0/+14
Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Open external merge tool with original file extensions for all three filesLibravatar Pini Reznik1-4/+5
Before this change, conflicted files were open in external merge tool with temporary filenames like REMOTE.$$ and LOCAL.$$. This way meld was unable to recognize these files and syntax highlighting feature was unusable. Help such merge tools by giving temporar files the same extension as the original. Signed-off-by: Pini Reznik <pinir@expand.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05git-clean: Honor pathspec.Libravatar Junio C Hamano1-21/+31
git-clean "*.rej" should attempt to look at only paths that match pattern "*.rej", but rewrite to C broke it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Color support for "git-add -i"Libravatar Junio C Hamano3-20/+146
This is mostly lifted from earlier series by Dan Zwell, but updated to use "git config --get-color" and "git config --get-colorbool" to make it simpler and more consistent with commands written in C. A new configuration color.interactive variable is like color.diff and color.status, and controls if "git-add -i" uses color. A set of configuration variables, color.interactive.<slot>, are used to define what color is used for the prompt, header, and help text. For perl scripts, Git.pm provides $repo->get_color() method, which takes the slot name and the default color, and returns the terminal escape sequence to color the output text. $repo->get_colorbool() method can be used to check if color is set to be used for a given operation. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05git config --get-colorboolLibravatar Junio C Hamano7-7/+58
This adds an option to help scripts find out color settings from the configuration file. git config --get-colorbool color.diff inspects color.diff variable, and exits with status 0 (i.e. success) if color is to be used. It exits with status 1 otherwise. If a script wants "true"/"false" answer to the standard output of the command, it can pass an additional boolean parameter to its command line, telling if its standard output is a terminal, like this: git config --get-colorbool color.diff true When called like this, the command outputs "true" to its standard output if color is to be used (i.e. "color.diff" says "always", "auto", or "true"), and "false" otherwise. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Documentation: color.* = true means "auto"Libravatar Junio C Hamano1-7/+7
We forgot to document the earlier sanity-fix. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Merge branch 'maint'Libravatar Junio C Hamano4-13/+86
* maint: git-am -i: report rewritten title git grep shows the same hit repeatedly for unmerged paths Do check_repository_format() early (re-fix) Do check_repository_format() early Add missing inside_work_tree setting in setup_git_directory_gently
2007-12-05git-am -i: report rewritten titleLibravatar Junio C Hamano1-0/+5
Jeff Garzik noticed that "git am -i" reports the applied patch with the title before the user edited it. This was confusing. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05git grep shows the same hit repeatedly for unmerged pathsLibravatar Junio C Hamano1-6/+6
When the index is unmerged, e.g. $ git ls-files -u 100644 faf413748eb6ccb15161a212156c5e348302b1b6 1 setup.c 100644 145eca50f41d811c4c8fcb21ed2604e6b2971aba 2 setup.c 100644 cb9558c49b6027bf225ba2a6154c4d2a52bcdbe2 3 setup.c running "git grep" for work tree files repeats hits for each unmerged stage. $ git grep -n -e setup_work_tree -- '*.[ch]' setup.c:209:void setup_work_tree(void) setup.c:209:void setup_work_tree(void) setup.c:209:void setup_work_tree(void) This should fix it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-12-05Update Hungarian translation. 100% completed.Libravatar Miklos Vajna1-320/+362
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-12-05Update ja.po for git-guiLibravatar しらいしななこ1-189/+229
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>