9203 Commits

Author SHA1 Message Date
Junio C Hamano
1b9fa0e811 Merge branch 'jn/notes-doc' into maint
* jn/notes-doc:
  Documentation/notes: nitpicks
  Documentation/notes: clean up description of rewriting configuration
  Documentation/notes: simplify treatment of default display refs
  Documentation/log: add a CONFIGURATION section
  Documentation/notes: simplify treatment of default notes ref
  Documentation/notes: add configuration section
  Documentation/notes: describe content of notes blobs
  Documentation/notes: document format of notes trees
2010-06-21 05:39:16 -07:00
Junio C Hamano
6f79d66891 Merge branch 'ab/test-cleanup' into maint
* ab/test-cleanup:
  Turn setup code in t2007-checkout-symlink.sh into a test
  Move t6000lib.sh to lib-*
2010-06-21 05:39:02 -07:00
Junio C Hamano
e1ba0f6340 Merge branch 'bg/apply-blank-trailing-context' into maint
* bg/apply-blank-trailing-context:
  apply: Allow blank *trailing* context lines to match beyond EOF
2010-06-21 05:38:36 -07:00
Clément Poulain
34bb92eca4 t/t8007: test textconv support for cat-file
Test the correct functionning of textconv with cat-file <sha1:blob>
and cat-file HEAD^ <file>. Test the case when no driver is specified

Signed-off-by: Clément Poulain <clement.poulain@ensimag.imag.fr>
Signed-off-by: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Signed-off-by: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-18 12:57:47 -07:00
Junio C Hamano
5977744d04 Merge branch 'cc/maint-diff-CC-binary'
* cc/maint-diff-CC-binary:
  diff: fix "git show -C -C" output when renaming a binary file

Conflicts:
	diff.c
2010-06-18 11:16:57 -07:00
Junio C Hamano
e09151281d Merge branch 'cb/ls-files-cdup'
* cb/ls-files-cdup:
  ls-files: allow relative pathspec
  quote.c: separate quoting and relative path generation
2010-06-18 11:16:56 -07:00
Junio C Hamano
f159bdd48d Merge branch 'jc/t9129-any-utf8'
* jc/t9129-any-utf8:
  t9129: fix UTF-8 locale detection
2010-06-18 11:16:56 -07:00
Junio C Hamano
0f0169d153 Merge branch 'jn/rebase-cmdline-fix'
* jn/rebase-cmdline-fix:
  rebase: improve error message when upstream argument is missing
2010-06-18 11:16:56 -07:00
Junio C Hamano
18fd805583 Merge branch 'jh/diff-index-line-abbrev'
* jh/diff-index-line-abbrev:
  diff.c: Ensure "index $from..$to" line contains unambiguous SHA1s

Conflicts:
	diff.c
2010-06-18 11:16:56 -07:00
Junio C Hamano
880bd9d080 Merge branch 'mg/status-b'
* mg/status-b:
  Documentation+t5708: document and test status -s -b
  Show branch information in short output of git status
2010-06-18 11:16:55 -07:00
Junio C Hamano
7c1b228d26 Merge branch 'jn/gitweb-plackup'
* jn/gitweb-plackup:
  git-instaweb: Add support for running gitweb via 'plackup'
  git-instaweb: Wait for server to start before running web browser
  git-instaweb: Remove pidfile after stopping web server
  git-instaweb: Configure it to work with new gitweb structure
  git-instaweb: Put httpd logs in a "$httpd_only" subdirectory
  gitweb: Set default destination directory for installing gitweb in Makefile
  gitweb: Move static files into seperate subdirectory
2010-06-18 11:16:55 -07:00
Junio C Hamano
bcacc0ebdb Merge branch 'jk/url-decode'
* jk/url-decode:
  decode file:// and ssh:// URLs
  make url-related functions reusable
2010-06-18 11:16:55 -07:00
Junio C Hamano
1c5d6b2a40 Merge branch 'jn/remote-set-branches'
* jn/remote-set-branches:
  Add git remote set-branches

Conflicts:
	builtin/remote.c
2010-06-18 11:16:55 -07:00
Junio C Hamano
199d4c0d43 Merge branch 'rc/ls-remote-default'
* rc/ls-remote-default:
  ls-remote: print URL when no repo is specified
2010-06-18 11:16:54 -07:00
Junio C Hamano
6c6f87842b Merge branch 'hg/id-munging'
* hg/id-munging:
  convert: Keep foreign $Id$ on checkout.
  convert: Safer handling of $Id$ contraction.
2010-06-18 11:16:54 -07:00
Junio C Hamano
8642abc764 Merge branch 'tc/merge-m-log'
* tc/merge-m-log:
  merge: --log appends shortlog to message if specified
  fmt-merge-msg: add function to append shortlog only
  fmt-merge-msg: refactor merge title formatting
  fmt-merge-msg: minor refactor of fmt_merge_msg()
  merge: rename variable
  merge: update comment
  t7604-merge-custom-message: show that --log doesn't append to -m
  t7604-merge-custom-message: shift expected output creation

Conflicts:
	builtin.h
2010-06-18 11:16:54 -07:00
Axel Bonnet
37d29e1051 t/t8006: test textconv support for blame
Test the correct functionning of textconv with blame <file> and blame HEAD^ <file>.
Test the case when no driver is specified.

Signed-off-by: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Signed-off-by: Clément Poulain <clement.poulain@ensimag.imag.fr>
Signed-off-by: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-18 09:41:29 -07:00
Thomas Rast
3cae7e5b2b send-email: ask about and declare 8bit mails
git-send-email passes on an 8bit mail as-is even if it does not
declare a content-type.  Because the user can edit email between
format-patch and send-email, such invalid mails are unfortunately not
very hard to come by.

Make git-send-email stop and ask about the encoding to use if it
encounters any such mail.  Also provide a configuration setting to
permanently configure an encoding.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-18 08:47:32 -07:00
Junio C Hamano
91788cf26e Merge branch 'cb/maint-stash-orphaned-file' into maint
* cb/maint-stash-orphaned-file:
  stash tests: stash can lose data in a file removed from the index
  stash: Don't overwrite files that have gone from the index
2010-06-16 16:23:48 -07:00
Junio C Hamano
2b7d947b8f Merge branch 'mg/advice-statushints' into maint
* mg/advice-statushints:
  wt-status: take advice.statusHints seriously
  t7508: test advice.statusHints
2010-06-16 16:23:42 -07:00
Junio C Hamano
e1c07fa8b1 Merge branch 'jn/maint-bundle' into maint
* jn/maint-bundle:
  fix "bundle --stdin" segfault
  t5704 (bundle): add tests for bundle --stdin
2010-06-16 16:23:22 -07:00
Junio C Hamano
82df0ef1c3 Merge branch 'jn/t7006-fixup' into maint
* jn/t7006-fixup:
  t7006: guard cleanup with test_expect_success
2010-06-16 16:22:57 -07:00
Junio C Hamano
799c34449e Merge branch 'jn/shortlog' into maint
* jn/shortlog:
  pretty: Respect --abbrev option
  shortlog: Document and test --format option
  t4201 (shortlog): Test output format with multiple authors
  t4201 (shortlog): guard setup with test_expect_success
  Documentation/shortlog: scripted users should not rely on implicit HEAD
2010-06-16 16:22:51 -07:00
Junio C Hamano
161cbf0b8e Merge branch 'sp/maint-dumb-http-pack-reidx' into maint
* sp/maint-dumb-http-pack-reidx:
  http.c::new_http_pack_request: do away with the temp variable filename
  http-fetch: Use temporary files for pack-*.idx until verified
  http-fetch: Use index-pack rather than verify-pack to check packs
  Allow parse_pack_index on temporary files
  Extract verify_pack_index for reuse from verify_pack
  Introduce close_pack_index to permit replacement
  http.c: Remove unnecessary strdup of sha1_to_hex result
  http.c: Don't store destination name in request structures
  http.c: Drop useless != NULL test in finish_http_pack_request
  http.c: Tiny refactoring of finish_http_pack_request
  t5550-http-fetch: Use subshell for repository operations
  http.c: Remove bad free of static block
2010-06-16 16:21:30 -07:00
Junio C Hamano
f62e53c897 Merge branch 'sp/maint-describe-tiebreak-with-tagger-date' into maint
* sp/maint-describe-tiebreak-with-tagger-date:
  describe: Break annotated tag ties by tagger date
  tag.c: Parse tagger date (if present)
  tag.c: Refactor parse_tag_buffer to be saner to program
  tag.h: Remove unused signature field
  tag.c: Correct indentation
2010-06-16 16:21:15 -07:00
Junio C Hamano
4dd4a09eac Merge branch 'rc/maint-curl-helper' into maint
* rc/maint-curl-helper:
  remote-curl: ensure that URLs have a trailing slash
  http: make end_url_with_slash() public
  t5541-http-push: add test for URLs with trailing slash

Conflicts:
	remote-curl.c
2010-06-16 16:19:43 -07:00
Junio C Hamano
755f0e36bc Merge branch 'hg/maint-attr-fix' into maint
* hg/maint-attr-fix:
  attr: Expand macros immediately when encountered.
  attr: Allow multiple changes to an attribute on the same line.
  attr: Fixed debug output for macro expansion.
2010-06-16 16:17:54 -07:00
Junio C Hamano
6e10b9c999 Merge branch 'mh/status-optionally-refresh' into maint
* mh/status-optionally-refresh:
  t7508: add a test for "git status" in a read-only repository
  git status: refresh the index if possible
  t7508: add test for "git status" refreshing the index
2010-06-16 16:16:40 -07:00
Michael J Gruber
7b88176e9b pretty: Introduce ' ' modifier to add space if non-empty
We have the '+' modifiier which helps combine format specifiers which
may possibly be empty, e.g. '%s%+b%n'.

Introduce an analogous ' ' (space) modifier which adds a space before
non-empty items. This helps assemble "one line type" format specifiers.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-16 14:45:09 -07:00
Stephen Boyd
6622d9c710 format-patch: Add a signature option (--signature)
By default, git uses the version string as the signature for all
patches output by format-patch. Many employers (mine included)
require the use of a signature on all outgoing mails. In a
format-patch | send-email workflow there isn't an easy way to modify
the signature without breaking the pipe and manually replacing the
version string with the signature required. Instead of doing all that
work, add an option (--signature) and a config variable
(format.signature) to replace the default git version signature when
formatting patches.

This does modify the original behavior of format-patch a bit. First
off the version string is now placed in the cover letter by default.
Secondly, once the configuration variable format.signature is added
to the .config file there is no way to revert back to the default
git version signature. Instead, specifying the --no-signature option
will remove the signature from the patches entirely.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-16 10:08:59 -07:00
Jay Soffian
43c23251f9 am: use get_author_ident_from_commit instead of mailinfo when rebasing
In certain situations, commit authorship can consist of an invalid
e-mail address. For example, this is the case when working with git svn
repos where the author email has had the svn repo UUID appended such as:

 author@example.com <author@example.com@deadbeef-dead-beef-dead-beefdeadbeef>

Given such an address, mailinfo extracts the authorship incorrectly as
it assumes a valid domain. However, when rebasing the original
authorship should be preserved irrespective of its validity as an email
address.

Using get_author_ident_from_commit instead of mailinfo when rebasing
preserves the original authorship.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-16 10:00:58 -07:00
Jonathan Nieder
18c8ff4610 t3508 (cherry-pick): futureproof against unmerged files
Each of the tests in t3508 begins by navigating to a sane state:

	git checkout master &&
	git reset --hard $commit

If a previous test left unmerged files around, they are untouched and
the checkout fails, causing later tests to fail, too.  This is not a
problem in practice because no test except the final one produces
unmerged files.

But as a futureproofing measure, it is still best to avoid the problem
with 'checkout -f'.  In particular, this is needed for new tests to be
added to the end of the script.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-14 10:32:02 -07:00
Brandon Casey
23b093ee08 Remove python 2.5'isms
The following python 2.5 features were worked around:

    * the sha module is used as a fallback when the hashlib module is
      not available
    * the 'any' built-in method was replaced with a 'for' loop
    * a conditional expression was replaced with an 'if' statement
    * the subprocess.check_call method was replaced by a call to
      subprocess.Popen followed by a call to subprocess.wait with a
      check of its return status

These changes allow the python infrastructure to be used with python 2.4
which is distributed with RedHat's RHEL 5, for example.

t5800 was updated to check for python >= 2.4 to reflect these changes.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 20:02:50 -07:00
Junio C Hamano
a5080d8e10 Merge branch 'ab/cvsserver'
* ab/cvsserver:
  git-cvsserver: test for pserver authentication support
  git-cvsserver: document making a password without htpasswd
  git-cvsserver: Improved error handling for pserver
  git-cvsserver: indent & clean up authdb code
  git-cvsserver: use a password file cvsserver pserver
  git-cvsserver: authentication support for pserver
2010-06-13 11:22:42 -07:00
Junio C Hamano
2d4fef9b86 Merge branch 'mg/notes-dry-run'
* mg/notes-dry-run:
  notes: dry-run and verbose options for prune
2010-06-13 11:22:39 -07:00
Junio C Hamano
004ae6cbd0 Merge branch 'jn/fsck-ident'
* jn/fsck-ident:
  fsck: fix bogus commit header check
2010-06-13 11:22:09 -07:00
Junio C Hamano
08b56871ff Merge branch 'ab/submodule-foreach-toplevel'
* ab/submodule-foreach-toplevel:
  git-submodule foreach: Add $toplevel variable
2010-06-13 11:21:49 -07:00
Junio C Hamano
534930807c Merge branch 'rs/grep-binary'
* rs/grep-binary:
  grep: support NUL chars in search strings for -F
  grep: use REG_STARTEND for all matching if available
  grep: continue case insensitive fixed string search after NUL chars
  grep: use memmem() for fixed string search
  grep: --name-only over binary
  grep: --count over binary
  grep: grep: refactor handling of binary mode options
  grep: add test script for binary file handling
2010-06-13 11:21:44 -07:00
Junio C Hamano
a26df4cd2f Merge branch 'jn/gitweb-syntax-highlight'
* jn/gitweb-syntax-highlight:
  gitweb: Refactor syntax highlighting support
  gitweb: Syntax highlighting support
2010-06-13 11:21:37 -07:00
Junio C Hamano
40e9b27dec Merge branch 'cb/assume-unchanged-fix'
* cb/assume-unchanged-fix:
  Documentation: git-add does not update files marked "assume unchanged"
  do not overwrite files marked "assume unchanged"
2010-06-13 11:21:11 -07:00
Junio C Hamano
95e42a64a9 Merge branch 'jn/notes-doc'
* jn/notes-doc:
  Documentation/notes: nitpicks
  Documentation/notes: clean up description of rewriting configuration
  Documentation/notes: simplify treatment of default display refs
  Documentation/log: add a CONFIGURATION section
  Documentation/notes: simplify treatment of default notes ref
  Documentation/notes: add configuration section
  Documentation/notes: describe content of notes blobs
  Documentation/notes: document format of notes trees
2010-06-13 11:21:06 -07:00
Junio C Hamano
ce987457ca Merge branch 'wp/pretty-enhancement'
* wp/pretty-enhancement:
  pretty: initialize new cmt_fmt_map to 0
  pretty: add aliases for pretty formats
  pretty: add infrastructure for commit format aliases
  pretty: make it easier to add new formats
2010-06-13 11:21:00 -07:00
Junio C Hamano
a9f80f3dd4 Merge branch 'ab/test-cleanup'
* ab/test-cleanup:
  Turn setup code in t2007-checkout-symlink.sh into a test
  Move t6000lib.sh to lib-*
2010-06-13 11:20:57 -07:00
Junio C Hamano
de8c359786 Merge branch 'jn/maint-amend-missing-name'
* jn/maint-amend-missing-name:
  commit --amend: cope with missing display name
2010-06-13 11:20:52 -07:00
Christian Couder
643cb5f7c9 commit: use value of GIT_REFLOG_ACTION env variable as reflog message
The environment variable GIT_REFLOG_ACTION was used by git-commit.sh,
but when it was converted to a builtin
(f5bbc3225c4b073a7ff3218164a0c820299bc9c6, Port git commit to C,
Nov 8 2007) this was lost.

Let's use it again as it is more user friendly when reverting or
cherry-picking to see "revert" or "cherry-pick" in the reflog rather
than to just see "commit".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 09:42:38 -07:00
Tay Ray Chuan
a45e1a87ad commit::print_summary(): don't use format_commit_message()
This attempts to fix a regression in git-commit, where non-abbreviated
SHA-1s were printed in the summary.

One possible fix would be to set ctx.abbrev to DEFAULT_ABBREV in the
`if` block, where format_commit_message() is used.

Instead, we do away with the format_commit_message() codeblock
altogether, replacing it with a re-run of log_tree_commit().

We re-run log_tree_commit() with rev.always_show_header set, to force
the invocation of show_log(). The effect of this flag can be seen from
this excerpt from log-tree.c:560, the only area that
rev.always_show_header is checked:

	shown = log_tree_diff(opt, commit, &log);
	if (!shown && opt->loginfo && opt->always_show_header) {
		log.parent = NULL;
		show_log(opt);
		shown = 1;
	}

We also set rev.use_terminator, so that a newline is appended at the end
of the log message. Note that callers in builtin/log.c that also set
rev.always_show_header don't have to set rev.use_terminator, but still
get a newline, because they are wrapped in a pager.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 09:38:43 -07:00
Thomas Rast
47e9cd28f8 parseopt: wrap rev-parse --parseopt usage for eval consumption
9c7304e (print the usage string on stdout instead of stderr,
2010-05-17) broke rev-parse --parseopt: when run with -h, the usage
notice on stdout ended up in the shell eval.

Wrap the usage in a cat <<\EOF ... EOF block when printing to stdout.
I do not expect any usage lines to ever start with EOF so this
shouldn't be an undue burden.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 09:38:14 -07:00
Johannes Schindelin
0af88c15e2 grep -O: allow optional argument specifying the pager (or editor)
Suppose you want to edit all files that contain a specific search term.
Of course, you can do something totally trivial such as

	git grep -z -e <term> | xargs -0r vi +/<term>

but maybe you are happy that the same will be achieved by

	git grep -Ovi <term>

now.

[jn: rebased and added tests]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 09:16:50 -07:00
Johannes Schindelin
678e484b7d grep: Add the option '--open-files-in-pager'
This adds an option to open the matching files in the pager, and if the
pager happens to be "less" (or "vi") and there is only one grep pattern,
it also jumps to the first match right away.

The short option was chose as '-O' to avoid clashes with GNU grep's
options (as suggested by Junio).

So, 'git grep -O abc' is a short form for 'less +/abc $(grep -l abc)'
except that it works also with spaces in file names, and it does not
start the pager if there was no matching file.

[jn: rebased and added tests; with error handling fix from Junio
squashed in]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-13 09:16:38 -07:00
Thomas Rast
f69c501832 rev-list: introduce --count option
Add a --count option that, instead of actually listing the commits,
merely counts them.

This is mostly geared towards script use, and to this end it acts
specially when used with --left-right: it outputs the left and right
counts separately.  Previously, scripts would have to run a shell loop
or small inline script over to achieve the same.  (Without
--left-right, a simple |wc -l does the job.)

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-12 09:39:06 -07:00