summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-06-09git-send-email.perl: improve detection of MIME encoded-wordsLibravatar Brandon Casey1-1/+9
According to rfc2047, an encoded word has the following form: encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" charset = token encoding = token token = <Any CHAR except SPACE, CTLs, and especials> especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / " <"> / "/" / "[" / "]" / "?" / "." / "=" encoded-text = <Any printable ASCII character other than "?" or SPACE> And rfc822 defines CHARs and CTLs as: CHAR = <any ASCII character> ; ( 0-177, 0.-127.) CTL = <any ASCII control ; ( 0- 37, 0.- 31.) character and DEL> ; ( 177, 127.) The original code only detected rfc2047 encoded strings when the charset was UTF-8. This patch generalizes the matching expression and breaks the check for an rfc2047 encoded string into its own function. There's no real functional change, since any properly rfc2047 encoded string would have fallen through the remaining 'if' statements and been returned unchanged. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-07symlinks.c: small style cleanupLibravatar Kjetil Barvik1-4/+2
Add {}-braces around an else-part, where the if-part already has {}-braces. And, also remove some unnecessary "return;"-statements at the end of "void foo()"-functions. Signed-off-by: Kjetil Barvik <barvik@broadpark.no> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-07Makefile: test-parse-options depends on parse-options.hLibravatar Junio C Hamano1-0/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-06Merge branch 'maint'Libravatar Junio C Hamano4-6/+18
* maint: Documentation: refer to gitworkflows(7) from tutorial and git(1) daemon: Strictly parse the "extra arg" part of the command
2009-06-06Documentation: refer to gitworkflows(7) from tutorial and git(1)Libravatar Thomas Rast2-1/+8
Add references to the gitworkflows(7) manpage added in f948dd8 (Documentation: add manpage about workflows, 2008-10-19) to both gittutorial(1) and git(1), so that new users might actually discover and read it. Noticed by Randal L. Schwartz. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-06daemon: Strictly parse the "extra arg" part of the commandLibravatar Shawn O. Pearce2-5/+10
Since 1.4.4.5 (49ba83fb67 "Add virtualization support to git-daemon") git daemon enters an infinite loop and never terminates if a client hides any extra arguments in the initial request line which is not exactly "\0host=blah\0". Since that change, a client must never insert additional extra arguments, or attempt to use any argument other than "host=", as any daemon will get stuck parsing the request line and will never complete the request. Since the client can't tell if the daemon is patched or not, it is not possible to know if additional extra args might actually be able to be safely requested. If we ever need to extend the git daemon protocol to support a new feature, we may have to do something like this to the exchange: # If both support git:// v2 # C: 000cgit://v2 S: 0010ok host user C: 0018host git.kernel.org C: 0027git-upload-pack /pub/linux-2.6.git S: ...git-upload-pack header... # If client supports git:// v2, server does not: # C: 000cgit://v2 S: <EOF> C: 003bgit-upload-pack /pub/linux-2.6.git\0host=git.kernel.org\0 S: ...git-upload-pack header... This requires the client to create two TCP connections to talk to an older git daemon, however all daemons since the introduction of daemon.c will safely reject the unknown "git://v2" command request, so the client can quite easily determine the server supports an older protocol. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03Documentation/git.txt: update links to release notesLibravatar Junio C Hamano1-1/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03Merge branch 'maint' to sync with 1.6.3.2Libravatar Junio C Hamano2-8/+10
2009-06-03GIT 1.6.3.2Libravatar Junio C Hamano2-8/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03Show presence of stashed changes in bash prompt.Libravatar Daniel Trstenjak1-2/+10
Add a '$' in the __git_ps1 output to show stashed changes are present, when GIT_PS1_SHOWSTASHSTATE is set to a nonempty value. The code for checking if the stash has entries is taken from 'git-stash.sh'. Signed-off-by: Daniel Trstenjak <daniel.trstenjak@online.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03grep: fix empty word-regexp matchesLibravatar René Scharfe1-1/+5
The command "git grep -w ''" dies as soon as it encounters an empty line, reporting (wrongly) that "regexp returned nonsense". The first hunk of this patch relaxes the sanity check that is responsible for that, allowing matches to start at the end. The second hunk complements it by making sure that empty matches are rejected if -w was specified, as they are not really words. GNU grep does the same: $ echo foo | grep -c '' 1 $ echo foo | grep -c -w '' 0 Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03Merge branch 'da/pretty-tempname'Libravatar Junio C Hamano10-1/+177
* da/pretty-tempname: diff: generate pretty filenames in prep_temp_blob() compat: add a basename() compatibility function compat: add a mkstemps() compatibility function Conflicts: Makefile
2009-06-03Clean up and simplify rev_compare_tree()Libravatar Linus Torvalds2-23/+15
This simplifies the logic of rev_compare_tree() by removing a special case. It does so by turning the special case of finding a diff to be "all new files" into a more generic case of "all new" vs "all removed" vs "mixed changes", so now the code is actually more powerful and more generic, and the added symmetry actually makes it simpler too. This makes no changes to any existing behavior, but apart from the simplification it does make it possible to some day care about whether all changes were just deletions if we want to. Which we may well want to for merge handling. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03Merge branch 'maint'Libravatar Junio C Hamano7-39/+82
* maint: blame: correctly handle a path that used to be a directory add -i: do not dump patch during application Update draft release notes for 1.6.3.2 grep: fix colouring of matches with zero length Documentation: teach stash/pop workflow instead of stash/apply Change xdl_merge to generate output even for null merges t6023: merge-file fails to output anything for a degenerate merge
2009-06-03blame: correctly handle a path that used to be a directoryLibravatar Junio C Hamano2-8/+33
When trying to see if the same path exists in the parent, we ran "diff-tree" with pathspec set to the path we are interested in with the parent, and expect either to have exactly one resulting filepair (either "changed from the parent", "created when there was none") or nothing (when there is no change from the parent). If the path used to be a directory, however, we will also see unbounded number of entries that talk about the files that used to exist underneath the directory in question. Correctly pick only the entry that describes the path we are interested in in such a case (namely, the creation of the path as a regular file). Noticed by Ben Willard. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-03add -i: do not dump patch during applicationLibravatar Thomas Rast1-1/+0
Remove a debugging print that snuck in at 7a26e65 (Revert "git-add--interactive: remove hunk coalescing", 2009-05-16). Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-02Update draft release notes for 1.6.3.2Libravatar Junio C Hamano1-14/+26
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-02Merge branch 'cb/maint-1.6.0-xdl-merge-fix' into maintLibravatar Junio C Hamano2-16/+21
* cb/maint-1.6.0-xdl-merge-fix: Change xdl_merge to generate output even for null merges t6023: merge-file fails to output anything for a degenerate merge Conflicts: xdiff/xmerge.c
2009-06-02Merge branch 'rs/maint-grep-word-regexp-fix' into maintLibravatar Junio C Hamano2-1/+11
* rs/maint-grep-word-regexp-fix: grep: fix colouring of matches with zero length grep: fix word-regexp at the beginning of lines
2009-06-02Merge branch 'sb/maint-1.6.2-opt-filename-fix' into maintLibravatar Junio C Hamano6-0/+93
* sb/maint-1.6.2-opt-filename-fix: apply, fmt-merge-msg: use relative filenames commit: -F overrides -t
2009-06-02Merge branch 'jc/maint-add-p-coalesce-fix' into maintLibravatar Junio C Hamano2-1/+133
* jc/maint-add-p-coalesce-fix: t3701: ensure correctly set up repository after skipped tests Revert "git-add--interactive: remove hunk coalescing" Splitting a hunk that adds a line at the top fails in "add -p"
2009-06-02Merge branch 'tr/maint-doc-stash-pop' into maintLibravatar Junio C Hamano2-16/+18
* tr/maint-doc-stash-pop: Documentation: teach stash/pop workflow instead of stash/apply
2009-06-01test-lib: fix http exit codesLibravatar Clemens Buchacher1-2/+4
Previously, die() would report the exit code of stop_httpd. Instead, save and reset the exit code before dying. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-01test-lib: allow exit trap to be used for cleanup by testsLibravatar Clemens Buchacher1-7/+14
Exit trap should not be removed in case tests require cleanup code. This is especially important if tests are executed with the --immediate option. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-01test-lib: fail if invalid options are passedLibravatar Clemens Buchacher1-1/+1
Previously, unknown options would be ignored, including any subsequent valid options. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-01grep: fix colouring of matches with zero lengthLibravatar René Scharfe1-0/+2
If a zero-length match is encountered, break out of loop and show the rest of the line uncoloured. Otherwise we'd be looping forever, trying to make progress by advancing the pointer by zero characters. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-01git-show-branch.txt: document --date-order optionLibravatar Stephen Boyd1-3/+9
Copy the description of date-order from rev-list-options.txt, and then reword it to be commit specific. While we're at it, put <rev> <glob>... on a new line to not exceed 80 characters. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31diff: generate pretty filenames in prep_temp_blob()Libravatar David Aguilar4-1/+38
Naturally, prep_temp_blob() did not care about filenames. As a result, GIT_EXTERNAL_DIFF and textconv generated filenames such as ".diff_XXXXXX". This modifies prep_temp_blob() to generate user-friendly filenames when creating temporary files. Diffing "name.ext" now generates "XXXXXX_name.ext". Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31compat: add a basename() compatibility functionLibravatar David Aguilar5-0/+37
Some systems such as Windows lack libgen.h so provide a basename() implementation for cross-platform use. This introduces the NO_LIBGEN_H construct to the Makefile and autoconf scripts. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31compat: add a mkstemps() compatibility functionLibravatar David Aguilar5-0/+102
mkstemps() is a BSD extension so provide an implementation for cross-platform use. Signed-off-by: David Aguilar <davvid@gmail.com> Tested-by: Johannes Sixt <j6t@kdbg.org> (Windows) Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31Merge branch 'sb/opt-filename'Libravatar Junio C Hamano52-96/+144
* sb/opt-filename: parse-opts: add OPT_FILENAME and transition builtins parse-opts: prepare for OPT_FILENAME Conflicts: builtin-log.c
2009-05-31Merge branch 'jc/solaris-0811'Libravatar Junio C Hamano2-1/+5
* jc/solaris-0811: OpenSolaris 200811 (SunOS 5.11) does not want OLD_ICONV Teach Solaris that _XOPEN_SOURCE=600 really menas XPG6
2009-05-31Merge branch 'sb/show-branch-parse-options'Libravatar Junio C Hamano3-71/+84
* sb/show-branch-parse-options: show-branch: migrate to parse-options API parse-options: add PARSE_OPT_LITERAL_ARGHELP for complicated argh's Conflicts: parse-options.h
2009-05-31Merge branch 'mm/apply-double-slash'Libravatar Junio C Hamano1-6/+20
* mm/apply-double-slash: apply: handle filenames with double slashes better
2009-05-31Merge branch 'sb/format-patch-parseopt'Libravatar Junio C Hamano1-100/+160
* sb/format-patch-parseopt: format-patch: migrate to parse-options API Conflicts: builtin-log.c
2009-05-31Merge branch 'jc/mktree'Libravatar Junio C Hamano7-135/+280
* jc/mktree: mktree: validate entry type in input mktree --batch: build more than one tree object mktree --missing: updated usage message and man page mktree --missing: allow missing objects t1010: add mktree test mktree: do not barf on a submodule commit builtin-mktree.c: use a helper function to handle one line of input mktree: use parse-options build-in git-mktree
2009-05-31Merge branch 'ew/svn-test-and-old-i18n'Libravatar Junio C Hamano17-93/+91
* ew/svn-test-and-old-i18n: t8005: fix typo, it's ISO-8859-5, not KOI8-R t8005: convert CP1251 character set to ISO8859-5 t8005: use more portable character encoding names t5100: use ancient encoding syntax for backwards compatibility t9301: use ISO8859-1 rather than ISO-8859-1 t3901: Use ISO8859-1 instead of ISO-8859-1 for backward compatibility t3901: avoid negation on right hand side of '|' builtin-mailinfo.c: use "ISO8859-1" instead of "latin1" as fallback encoding builtin-mailinfo.c: compare character encodings case insensitively Use 'UTF-8' rather than 'utf-8' everywhere for backward compatibility t3900: use ancient iconv names for backward compatibility
2009-05-31Merge branch 'mw/send-email'Libravatar Junio C Hamano2-20/+27
* mw/send-email: send-email: Remove superfluous `my $editor = ...' send-email: 'References:' should only reference what is sent send-email: Handle "GIT:" rather than "GIT: " during --compose Docs: send-email: --smtp-server-port can take symbolic ports Docs: send-email: Refer to CONFIGURATION section for sendemail.multiedit Docs: send-email: Put options back into alphabetical order
2009-05-31Merge branch 'cc/bisect' (early part)Libravatar Junio C Hamano4-55/+59
* 'cc/bisect' (early part): bisect: check ancestors without forking a "git rev-list" process commit: add function to unparse a commit and its parents bisect: rework some rev related functions to make them more reusable
2009-05-31git-add: no need for -f when resolving a conflict in already tracked pathLibravatar Jeff King2-1/+13
When a path F that matches ignore pattern has a conflict, "git add F" insisted the -f option be given, which did not make sense. It would have required -f when the path was originally added, but when resolving a conflict, it already is tracked. So this should work (and does): $ echo file >.gitignore $ echo content >file $ git add -f file ;# need -f because we are adding new path $ echo more content >>file $ git add file ;# don't need -f; it is not actually an "other" file This is handled under the hood by the COLLECT_IGNORED option to read_directory. When that code finds an ignored file, it checks the index to make sure it is not actually a tracked file. However, the test it uses does not take into account unmerged entries, and considers them to still be ignored. "git ls-files" uses a more elaborate test and gets the right answer and the same test should be used here. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31config.txt: document add.ignore-errorsLibravatar Stephen Boyd1-0/+5
Use the description of "--ignore-errors" from git-add.txt as inspiration. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31bash: remove always true if statement from __git_ps1()Libravatar SZEDER Gábor1-6/+4
The recent commits 8763dbb1 (completion: fix PS1 display during a merge on detached HEAD, 2009-05-16), ff790b6a (completion: simplify "current branch" in __git_ps1(), 2009-05-10), and d7107ca6 (completion: fix PS1 display during an AM on detached HEAD, 2009-05-26) ensure that the branch name in __git_ps1() is always set to something sensible. Therefore, the condition for checking the non-empty branch name is always fulfilled, and can be removed. 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-05-31git-apply(1): Clarify that one can select where to apply the patchLibravatar Björn Steinbrink1-1/+1
The patch can be applied to the work tree, the index or both, but the short description made it look like it's always applied to both. Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-31http-push: reuse existing is_null_refLibravatar Clemens Buchacher1-16/+5
Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-30t9139 uses ancient, backwards-compatible iconv namesLibravatar Eric Wong17-93/+91
This resolves a semantic conflicts early to work with 5ae93df (t3900: use ancient iconv names for backward compatibility, 2009-05-18). Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-30Merge git://git.bogomips.org/git-svnLibravatar Junio C Hamano2-3/+61
* git://git.bogomips.org/git-svn: git-svn: refuse to dcommit non-UTF-8 messages
2009-05-30Documentation: teach stash/pop workflow instead of stash/applyLibravatar Thomas Rast2-16/+18
Recent discussion on the list showed some comments in favour of a stash/pop workflow: http://marc.info/?l=git&m=124234911423358&w=2 http://marc.info/?l=git&m=124235348327711&w=2 Change the stash documentation and examples to document pop in its own right (and apply in terms of pop), and use stash/pop in the examples. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-29Merge branch 'sb/maint-1.6.2-opt-filename-fix'Libravatar Junio C Hamano6-0/+93
* sb/maint-1.6.2-opt-filename-fix: apply, fmt-merge-msg: use relative filenames commit: -F overrides -t
2009-05-29Merge branch 'jc/maint-add-p-coalesce-fix'Libravatar Junio C Hamano2-1/+133
* jc/maint-add-p-coalesce-fix: t3701: ensure correctly set up repository after skipped tests Revert "git-add--interactive: remove hunk coalescing" Splitting a hunk that adds a line at the top fails in "add -p"
2009-05-29Merge branch 'rs/maint-grep-word-regexp-fix'Libravatar Junio C Hamano2-1/+9
* rs/maint-grep-word-regexp-fix: grep: fix word-regexp at the beginning of lines