Code

git.git
14 years agoMerge branch 'jk/maint-push-tracking-wo-remote'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'jk/maint-push-tracking-wo-remote'

* jk/maint-push-tracking-wo-remote:
  push: fix segfault for odd config

14 years agoMerge branch 'jc/fetch-param'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'jc/fetch-param'

* jc/fetch-param:
  fetch --all/--multiple: keep all the fetched branch information
  builtin-fetch --all/--multi: propagate options correctly
  t5521: fix and modernize

14 years agoMerge branch 'il/loosen-remote-helper-names'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'il/loosen-remote-helper-names'

* il/loosen-remote-helper-names:
  Allow '+', '-' and '.' in remote helper names

14 years agoMerge branch 'nd/root-git'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'nd/root-git'

* nd/root-git:
  Add test for using Git at root of file system
  Support working directory located at root
  Move offset_1st_component() to path.c
  init-db, rev-parse --git-dir: do not append redundant slash
  make_absolute_path(): Do not append redundant slash

Conflicts:
setup.c
sha1_file.c

14 years agoMerge branch 'js/runtime-prefix-trace-not-warn'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'js/runtime-prefix-trace-not-warn'

* js/runtime-prefix-trace-not-warn:
  Print RUNTIME_PREFIX warning only when GIT_TRACE is set

14 years agoMerge branch 'mm/mkstemps-mode-for-packfiles'
Junio C Hamano [Sun, 7 Mar 2010 20:47:14 +0000 (12:47 -0800)]
Merge branch 'mm/mkstemps-mode-for-packfiles'

* mm/mkstemps-mode-for-packfiles:
  Use git_mkstemp_mode instead of plain mkstemp to create object files
  git_mkstemps_mode: don't set errno to EINVAL on exit.
  Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.
  git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.
  Move gitmkstemps to path.c
  Add a testcase for ACL with restrictive umask.

14 years agoMerge branch 'jk/maint-add--interactive-delete'
Junio C Hamano [Sun, 7 Mar 2010 20:47:14 +0000 (12:47 -0800)]
Merge branch 'jk/maint-add--interactive-delete'

* jk/maint-add--interactive-delete:
  add-interactive: fix bogus diff header line ordering

14 years agoMerge branch 'jc/maint-fix-mailinfo-strip'
Junio C Hamano [Sun, 7 Mar 2010 20:47:14 +0000 (12:47 -0800)]
Merge branch 'jc/maint-fix-mailinfo-strip'

* jc/maint-fix-mailinfo-strip:
  mailinfo: do not strip leading spaces even for a header line

14 years agoSync with 1.7.0.2
Junio C Hamano [Sun, 7 Mar 2010 19:09:47 +0000 (11:09 -0800)]
Sync with 1.7.0.2

14 years agoGit 1.7.0.2 v1.7.0.2
Junio C Hamano [Sun, 7 Mar 2010 19:07:51 +0000 (11:07 -0800)]
Git 1.7.0.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agounset GREP_OPTIONS in test-lib.sh
Bert Wesarg [Wed, 18 Nov 2009 16:15:19 +0000 (17:15 +0100)]
unset GREP_OPTIONS in test-lib.sh

I used to set GREP_OPTIONS to exclude *.orig and *.rej files. But with this
the test t4252-am-options.sh fails because it calls grep with a .rej file:

    grep "@@ -1,3 +1,3 @@" file-2.rej

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 7 Mar 2010 08:02:15 +0000 (00:02 -0800)]
Merge branch 'maint'

* maint:
  stash: suggest the correct command line for unknown options.
  t7406: Fix submodule init config tests

14 years agostash: suggest the correct command line for unknown options.
Matthieu Moy [Fri, 5 Mar 2010 18:43:23 +0000 (19:43 +0100)]
stash: suggest the correct command line for unknown options.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7406: Fix submodule init config tests
Stephen Boyd [Fri, 5 Mar 2010 08:20:38 +0000 (00:20 -0800)]
t7406: Fix submodule init config tests

These tests have been broken since they were introduced in commits
ca2cedb (git-submodule: add support for --rebase., 2009-04-24) and
42b4917 (git-submodule: add support for --merge., 2009-06-03).
'git submodule init' expects the submodules to exist in the index.
In this case, the submodules don't exist and therefore looking for
the submodules will always fail. To make matters worse, git submodule
fails visibly to the user by saying:

error: pathspec 'rebasing' did not match any file(s) known to git.
Did you forget to 'git add'?

but doesn't return an error code. This allows the test to fail silently.
Fix it by adding the submodules first.

Cc: Johan Herland <johan@herland.net>
Cc: Peter Hutterer <peter.hutterer@who-t.net>
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-svn: make git svn --version work again
Michael J Gruber [Thu, 4 Mar 2010 10:23:53 +0000 (11:23 +0100)]
git-svn: make git svn --version work again

by requesting SVN::Core which is needed for the svn version.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agoRevert "git-svn: always initialize with core.autocrlf=false"
Erik Faye-Lund [Wed, 3 Mar 2010 20:10:23 +0000 (21:10 +0100)]
Revert "git-svn: always initialize with core.autocrlf=false"

git-svn rebase used to have issues with CRLF conversion. Since these issues
have been fixed, we can safely revert the work-around that disables CRLF
conversion.

This reverts commit d3c9634eacdcaa71cbd69a160e6f4e80ddb7ab63.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogit-svn: support fetch with autocrlf on
Erik Faye-Lund [Wed, 3 Mar 2010 20:10:22 +0000 (21:10 +0100)]
git-svn: support fetch with autocrlf on

Before commit d3c9634e, performing a "git svn rebase" that fetched a
change containing CRLFs corrupted the git-svn meta-data. This was
worked around in d3c9634e by setting core.autocrlf to "false" in the
per-repo config when initing the clone. However, if the config
variable was later changed, the corruption would still occur.

This patch tries to fix it while allowing core.autocrlf to be
enabled, by disabling filters when when hashing.

git-svn is currently the only call-site for hash_and_insert_object
(apart from the test-suite), so changing it should be safe.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agohash-object: support --stdin-paths with --no-filters
Erik Faye-Lund [Wed, 3 Mar 2010 20:10:21 +0000 (21:10 +0100)]
hash-object: support --stdin-paths with --no-filters

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 5 Mar 2010 06:39:54 +0000 (22:39 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.7.0.2
  Remove extra '-' from git-am(1)

14 years agoUpdate draft release notes to 1.7.0.2
Junio C Hamano [Fri, 5 Mar 2010 06:39:38 +0000 (22:39 -0800)]
Update draft release notes to 1.7.0.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jn/gitweb-config-error-die' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:27:12 +0000 (22:27 -0800)]
Merge branch 'jn/gitweb-config-error-die' into maint

* jn/gitweb-config-error-die:
  gitweb: Die if there are parsing errors in config file

14 years agoMerge branch 'jn/maint-fix-pager' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:27:04 +0000 (22:27 -0800)]
Merge branch 'jn/maint-fix-pager' into maint

* jn/maint-fix-pager:
  tests: Fix race condition in t7006-pager
  t7006-pager: if stdout is not a terminal, make a new one
  tests: Add tests for automatic use of pager
  am: Fix launching of pager
  git svn: Fix launching of pager
  git.1: Clarify the behavior of the --paginate option
  Make 'git var GIT_PAGER' always print the configured pager
  Fix 'git var' usage synopsis

14 years agoMerge branch 'tr/maint-cherry-pick-list' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:26:44 +0000 (22:26 -0800)]
Merge branch 'tr/maint-cherry-pick-list' into maint

* tr/maint-cherry-pick-list:
  cherry_pick_list: quit early if one side is empty

14 years agoMerge branch 'ld/maint-diff-quiet-w' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:26:39 +0000 (22:26 -0800)]
Merge branch 'ld/maint-diff-quiet-w' into maint

* ld/maint-diff-quiet-w:
  git-diff: add a test for git diff --quiet -w
  git diff --quiet -w: check and report the status

14 years agoMerge branch 'rs/optim-text-wrap' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:26:33 +0000 (22:26 -0800)]
Merge branch 'rs/optim-text-wrap' into maint

* rs/optim-text-wrap:
  utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()
  utf8.c: remove strbuf_write()
  utf8.c: remove print_spaces()
  utf8.c: remove print_wrapped_text()

14 years agoMerge branch 'dp/read-not-mmap-small-loose-object' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:26:17 +0000 (22:26 -0800)]
Merge branch 'dp/read-not-mmap-small-loose-object' into maint

* dp/read-not-mmap-small-loose-object:
  hash-object: don't use mmap() for small files

14 years agoMerge branch 'np/compress-loose-object-memsave' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:26:05 +0000 (22:26 -0800)]
Merge branch 'np/compress-loose-object-memsave' into maint

* np/compress-loose-object-memsave:
  sha1_file: be paranoid when creating loose objects
  sha1_file: don't malloc the whole compressed result when writing out objects

14 years agoMerge branch 'jc/maint-status-preload' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:25:45 +0000 (22:25 -0800)]
Merge branch 'jc/maint-status-preload' into maint

* jc/maint-status-preload:
  status: preload index to optimize lstat(2) calls

14 years agoMerge branch 'gf/maint-sh-setup-nongit-ok' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:25:37 +0000 (22:25 -0800)]
Merge branch 'gf/maint-sh-setup-nongit-ok' into maint

* gf/maint-sh-setup-nongit-ok:
  require_work_tree broken with NONGIT_OK

14 years agoMerge branch 'cc/maint-bisect-paths' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:25:23 +0000 (22:25 -0800)]
Merge branch 'cc/maint-bisect-paths' into maint

* cc/maint-bisect-paths:
  bisect: error out when passing bad path parameters

14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Fri, 5 Mar 2010 06:24:25 +0000 (22:24 -0800)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  Remove extra '-' from git-am(1)

14 years agoMerge branch 'maint-1.6.5' into maint-1.6.6
Junio C Hamano [Fri, 5 Mar 2010 06:24:19 +0000 (22:24 -0800)]
Merge branch 'maint-1.6.5' into maint-1.6.6

* maint-1.6.5:
  Remove extra '-' from git-am(1)

14 years agoRemove extra '-' from git-am(1)
Michal Sojka [Thu, 4 Mar 2010 12:08:28 +0000 (13:08 +0100)]
Remove extra '-' from git-am(1)

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot9119-git-svn-info.sh: test with svn 1.6.* as well
Michael J Gruber [Wed, 3 Mar 2010 20:34:32 +0000 (21:34 +0100)]
t9119-git-svn-info.sh: test with svn 1.6.* as well

All tests in t9119 were disabled for subversion versions other than
1.[45].*. Make the test script run with subversion 1.[456].*.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogit-svn: req_svn when needed
Michael J Gruber [Wed, 3 Mar 2010 20:34:31 +0000 (21:34 +0100)]
git-svn: req_svn when needed

The delayed loading of SVN missed a place where SVN::Core is used. Make
sure to load the package before trying to use it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 3 Mar 2010 22:56:13 +0000 (14:56 -0800)]
Merge branch 'maint'

* maint:
  Start preparing for 1.7.0.2

Conflicts:
RelNotes

14 years agoMerge branch 'jh/maint-submodule-status-in-void' (early part)
Junio C Hamano [Wed, 3 Mar 2010 22:50:22 +0000 (14:50 -0800)]
Merge branch 'jh/maint-submodule-status-in-void' (early part)

* 'jh/maint-submodule-status-in-void' (early part):
  submodule summary: do not shift a non-existent positional variable

14 years agosubmodule summary: do not shift a non-existent positional variable
Jeff King [Wed, 3 Mar 2010 22:19:09 +0000 (14:19 -0800)]
submodule summary: do not shift a non-existent positional variable

When "git submodule summary" is run without any argument, we default to
compare the state of index with the HEAD, but tried to shift out $1 that
does not exist (and worse yet, we didn't use it).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoStart preparing for 1.7.0.2
Junio C Hamano [Wed, 3 Mar 2010 07:11:36 +0000 (23:11 -0800)]
Start preparing for 1.7.0.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'tc/maint-transport-ls-remote-with-void' into maint
Junio C Hamano [Wed, 3 Mar 2010 06:55:22 +0000 (22:55 -0800)]
Merge branch 'tc/maint-transport-ls-remote-with-void' into maint

* tc/maint-transport-ls-remote-with-void:
  transport: add got_remote_refs flag

14 years agoMerge branch 'hm/maint-imap-send-crlf' into maint
Junio C Hamano [Wed, 3 Mar 2010 06:55:03 +0000 (22:55 -0800)]
Merge branch 'hm/maint-imap-send-crlf' into maint

* hm/maint-imap-send-crlf:
  git-imap-send: Convert LF to CRLF before storing patch to draft box

14 years agoMerge branch 'sp/maint-push-sideband' into maint
Junio C Hamano [Wed, 3 Mar 2010 06:54:50 +0000 (22:54 -0800)]
Merge branch 'sp/maint-push-sideband' into maint

* sp/maint-push-sideband:
  receive-pack: Send internal errors over side-band #2
  t5401: Use a bare repository for the remote peer
  receive-pack: Send hook output over side band #2
  receive-pack: Wrap status reports inside side-band-64k
  receive-pack: Refactor how capabilities are shown to the client
  send-pack: demultiplex a sideband stream with status data
  run-command: support custom fd-set in async
  run-command: Allow stderr to be a caller supplied pipe

Conflicts:
builtin-receive-pack.c
run-command.c
t/t5401-update-hooks.sh

14 years agoMerge branch 'jc/maint-fix-test-perm' into maint
Junio C Hamano [Wed, 3 Mar 2010 06:38:02 +0000 (22:38 -0800)]
Merge branch 'jc/maint-fix-test-perm' into maint

* jc/maint-fix-test-perm:
  lib-patch-mode.sh: Fix permission
  t6000lib: Fix permission

14 years agoMerge branch 'np/fast-import-idx-v2' into maint
Junio C Hamano [Wed, 3 Mar 2010 06:28:49 +0000 (22:28 -0800)]
Merge branch 'np/fast-import-idx-v2' into maint

* np/fast-import-idx-v2:
  fast-import: use the diff_delta() max_delta_size argument
  fast-import: honor pack.indexversion and pack.packsizelimit config vars
  fast-import: make default pack size unlimited
  fast-import: use write_idx_file() instead of custom code
  fast-import: use sha1write() for pack data
  fast-import: start using struct pack_idx_entry

14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 2 Mar 2010 20:44:16 +0000 (12:44 -0800)]
Merge branch 'maint'

* maint:
  gitweb: Fix project-specific feature override behavior
  gitweb multiple project roots documentation

14 years agoMerge branch 'jn/maint-fix-pager'
Junio C Hamano [Tue, 2 Mar 2010 20:44:11 +0000 (12:44 -0800)]
Merge branch 'jn/maint-fix-pager'

* jn/maint-fix-pager:
  tests: Fix race condition in t7006-pager
  t7006-pager: if stdout is not a terminal, make a new one
  tests: Add tests for automatic use of pager
  am: Fix launching of pager
  git svn: Fix launching of pager
  git.1: Clarify the behavior of the --paginate option
  Make 'git var GIT_PAGER' always print the configured pager
  Fix 'git var' usage synopsis

14 years agoMerge branch 'ml/encode-header-refactor'
Junio C Hamano [Tue, 2 Mar 2010 20:44:11 +0000 (12:44 -0800)]
Merge branch 'ml/encode-header-refactor'

* ml/encode-header-refactor:
  move encode_in_pack_object_header() to a better place
  refactor duplicated encode_header in pack-objects and fast-import

14 years agoMerge branch 'jn/gitweb-config-error-die'
Junio C Hamano [Tue, 2 Mar 2010 20:44:11 +0000 (12:44 -0800)]
Merge branch 'jn/gitweb-config-error-die'

* jn/gitweb-config-error-die:
  gitweb: Die if there are parsing errors in config file

14 years agoMerge branch 'jc/for-each-ref'
Junio C Hamano [Tue, 2 Mar 2010 20:44:10 +0000 (12:44 -0800)]
Merge branch 'jc/for-each-ref'

* jc/for-each-ref:
  for-each-ref --format='%(flag)'
  for-each-ref --format='%(symref) %(symref:short)'
  builtin-for-each-ref.c: check if we need to peel onion while parsing the format
  builtin-for-each-ref.c: comment fixes

14 years agoMerge branch 'ld/maint-diff-quiet-w'
Junio C Hamano [Tue, 2 Mar 2010 20:44:10 +0000 (12:44 -0800)]
Merge branch 'ld/maint-diff-quiet-w'

* ld/maint-diff-quiet-w:
  git-diff: add a test for git diff --quiet -w
  git diff --quiet -w: check and report the status

14 years agoMerge branch 'tr/maint-cherry-pick-list'
Junio C Hamano [Tue, 2 Mar 2010 20:44:10 +0000 (12:44 -0800)]
Merge branch 'tr/maint-cherry-pick-list'

* tr/maint-cherry-pick-list:
  cherry_pick_list: quit early if one side is empty

14 years agoMerge branch 'rs/optim-text-wrap'
Junio C Hamano [Tue, 2 Mar 2010 20:44:10 +0000 (12:44 -0800)]
Merge branch 'rs/optim-text-wrap'

* rs/optim-text-wrap:
  utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()
  utf8.c: remove strbuf_write()
  utf8.c: remove print_spaces()
  utf8.c: remove print_wrapped_text()

14 years agoMerge branch 'ml/send-pack-transport-refactor'
Junio C Hamano [Tue, 2 Mar 2010 20:44:09 +0000 (12:44 -0800)]
Merge branch 'ml/send-pack-transport-refactor'

* ml/send-pack-transport-refactor:
  refactor duplicated code in builtin-send-pack.c and transport.c

14 years agoMerge branch 'ml/fill-mm-refactor'
Junio C Hamano [Tue, 2 Mar 2010 20:44:09 +0000 (12:44 -0800)]
Merge branch 'ml/fill-mm-refactor'

* ml/fill-mm-refactor:
  refactor duplicated fill_mm() in checkout and merge-recursive

14 years agoMerge branch 'ml/connect-refactor'
Junio C Hamano [Tue, 2 Mar 2010 20:44:09 +0000 (12:44 -0800)]
Merge branch 'ml/connect-refactor'

* ml/connect-refactor:
  connect.c: move duplicated code to a new function 'get_host_and_port'

14 years agoMerge branch 'np/compress-loose-object-memsave'
Junio C Hamano [Tue, 2 Mar 2010 20:44:09 +0000 (12:44 -0800)]
Merge branch 'np/compress-loose-object-memsave'

* np/compress-loose-object-memsave:
  sha1_file: be paranoid when creating loose objects
  sha1_file: don't malloc the whole compressed result when writing out objects

14 years agoMerge branch 'dp/read-not-mmap-small-loose-object'
Junio C Hamano [Tue, 2 Mar 2010 20:44:08 +0000 (12:44 -0800)]
Merge branch 'dp/read-not-mmap-small-loose-object'

* dp/read-not-mmap-small-loose-object:
  hash-object: don't use mmap() for small files

14 years agoMerge branch 'jn/makedepend'
Junio C Hamano [Tue, 2 Mar 2010 20:44:08 +0000 (12:44 -0800)]
Merge branch 'jn/makedepend'

* jn/makedepend:
  Makefile: clarify definition of TEST_OBJS
  Makefile: always remove .depend directories on 'make clean'
  Makefile: tuck away generated makefile fragments in .depend
  Teach Makefile to check header dependencies
  Makefile: list standalone program object files in PROGRAM_OBJS
  Makefile: lazily compute header dependencies
  Makefile: list generated object files in OBJECTS
  Makefile: disable default implicit rules
  Makefile: rearrange dependency rules
  Makefile: transport.o depends on branch.h now
  Makefile: drop dependency on $(wildcard */*.h)
  Makefile: clean up http-walker.o dependency rules
  Makefile: remove wt-status.h from LIB_H
  Makefile: make sure test helpers are rebuilt when headers change
  Makefile: add missing header file dependencies

Conflicts:
Makefile

14 years agoMerge branch 'jc/maint-status-preload'
Junio C Hamano [Tue, 2 Mar 2010 20:44:07 +0000 (12:44 -0800)]
Merge branch 'jc/maint-status-preload'

* jc/maint-status-preload:
  status: preload index to optimize lstat(2) calls

14 years agoMerge branch 'gf/maint-sh-setup-nongit-ok'
Junio C Hamano [Tue, 2 Mar 2010 20:44:07 +0000 (12:44 -0800)]
Merge branch 'gf/maint-sh-setup-nongit-ok'

* gf/maint-sh-setup-nongit-ok:
  require_work_tree broken with NONGIT_OK

14 years agoMerge branch 'jh/maint-submodule-status-in-void'
Junio C Hamano [Tue, 2 Mar 2010 20:44:07 +0000 (12:44 -0800)]
Merge branch 'jh/maint-submodule-status-in-void'

* jh/maint-submodule-status-in-void:
  submodule summary: Don't barf when invoked in an empty repo

14 years agoMerge branch 'hm/imap-send-cram-md5'
Junio C Hamano [Tue, 2 Mar 2010 20:44:06 +0000 (12:44 -0800)]
Merge branch 'hm/imap-send-cram-md5'

* hm/imap-send-cram-md5:
  imap-send: support CRAM-MD5 authentication

14 years agoMerge branch 'ml/color-when'
Junio C Hamano [Tue, 2 Mar 2010 20:44:06 +0000 (12:44 -0800)]
Merge branch 'ml/color-when'

* ml/color-when:
  Add an optional argument for --color options

14 years agoMerge branch 'ac/cvsimport-revision-mapping'
Junio C Hamano [Tue, 2 Mar 2010 20:44:06 +0000 (12:44 -0800)]
Merge branch 'ac/cvsimport-revision-mapping'

* ac/cvsimport-revision-mapping:
  cvsimport: new -R option: generate .git/cvs-revisions mapping

14 years agoMerge branch 'jc/grep-author-all-match-implicit'
Junio C Hamano [Tue, 2 Mar 2010 20:44:06 +0000 (12:44 -0800)]
Merge branch 'jc/grep-author-all-match-implicit'

* jc/grep-author-all-match-implicit:
  "log --author=me --grep=it" should find intersection, not union

14 years agofallback SSH_ASKPASS when GIT_ASKPASS not set
Frank Li [Tue, 2 Mar 2010 11:52:11 +0000 (19:52 +0800)]
fallback SSH_ASKPASS when GIT_ASKPASS not set

If GIT_ASKPASS is not set and SSH_ASKPASS set, GIT_ASKPASS will
use SSH_ASKPASS.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: Fix project-specific feature override behavior
Jakub Narebski [Mon, 1 Mar 2010 21:51:34 +0000 (22:51 +0100)]
gitweb: Fix project-specific feature override behavior

This commit fixes a bug in processing project-specific override in
a situation when there is no project, e.g. for the projects list page.

When 'snapshot' feature had project specific config override enabled
by putting
  $feature{'snapshot'}{'override'} = 1;

(or equivalent) in $GITWEB_CONFIG, and when viewing toplevel gitweb
page, which means the projects list page (to be more exact this
happens for any project-less action), gitweb would put the following
Perl warnings in error log:

  gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2065.
  fatal: error processing config file(s)
  gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2221.
  gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2218.

The problem is in the following fragment of code:

  # path to the current git repository
  our $git_dir;
  $git_dir = "$projectroot/$project" if $project;

  # list of supported snapshot formats
  our @snapshot_fmts = gitweb_get_feature('snapshot');
  @snapshot_fmts = filter_snapshot_fmts(@snapshot_fmts);

For the toplevel gitweb page, which is the list of projects, $project is not
defined, therefore neither is $git_dir.  gitweb_get_feature() subroutine
calls git_get_project_config() if project specific override is turned
on... but we don't have project here.

Those errors mentioned above occur in the following fragment of code in
git_get_project_config():

   # get config
   if (!defined $config_file ||
       $config_file ne "$git_dir/config") {
   %config = git_parse_project_config('gitweb');
   $config_file = "$git_dir/config";
   }

git_parse_project_config() calls git_cmd() which has '--git-dir='.$git_dir

There are (at least) three possible solutions:
1. Harden gitweb_get_feature() so that it doesn't call
   git_get_project_config() if $project (and therefore $git_dir) is not
   defined; there is no project for project specific config.
2. Harden git_get_project_config() like you did in your fix, returning early
   if $git_dir is not defined.
3. Harden git_cmd() so that it doesn't add "--git-dir=$git_dir" if $git_dir
   is not defined, and change git_get_project_config() so that it doesn't
   even try to access $git_dir if it is not defined.

This commit implements both 1.) and 2.), i.e. gitweb_get_feature() doesn't
call project-specific override if $git_dir is not defined (if there is no
project), and git_get_project_config() returns early if $git_dir is not
defined.

Add a test for this bug to t/t9500-gitweb-standalone-no-errors.sh test.

Reported-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb multiple project roots documentation
Sylvain Rabot [Tue, 2 Mar 2010 00:04:57 +0000 (01:04 +0100)]
gitweb multiple project roots documentation

This commit adds in the gitweb/README file a description of how to use gitweb
with several project roots using apache virtualhost rewrite rules.

Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cc/maint-bisect-paths'
Junio C Hamano [Mon, 1 Mar 2010 09:09:21 +0000 (01:09 -0800)]
Merge branch 'cc/maint-bisect-paths'

* cc/maint-bisect-paths:
  bisect: error out when passing bad path parameters

14 years agobisect: error out when passing bad path parameters
Christian Couder [Sun, 28 Feb 2010 22:19:09 +0000 (23:19 +0100)]
bisect: error out when passing bad path parameters

As reported by Mark Lodato, "git bisect", when it was started with
path parameters that match no commit was kind of working without
taking account of path parameters and was reporting something like:

Bisecting: -1 revisions left to test after this (roughly 0 steps)

It is more correct and safer to just error out in this case, before
displaying the revisions left, so this patch does just that.

Note that this bug is very old, it exists at least since v1.5.5.
And it is possible to detect that case earlier in the bisect
algorithm, but it is not clear that it would be an improvement to
error out earlier, on the contrary it may change the behavior of
"git rev-list --bisect-all" for example, which is currently correct.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 28 Feb 2010 19:41:57 +0000 (11:41 -0800)]
Merge branch 'maint'

* maint:
  Git 1.7.0.1
  Remove reference to GREP_COLORS from documentation
  sha1_name: fix segfault caused by invalid index access

14 years agoGit 1.7.0.1 v1.7.0.1
Junio C Hamano [Sun, 28 Feb 2010 19:41:24 +0000 (11:41 -0800)]
Git 1.7.0.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoRemove reference to GREP_COLORS from documentation
Mark Lodato [Sat, 27 Feb 2010 04:57:48 +0000 (23:57 -0500)]
Remove reference to GREP_COLORS from documentation

There is no longer support for external grep, as per bbc09c2 (grep: rip
out support for external grep, 2010-01-12), so remove the reference to it
from the documentation.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: clarify definition of TEST_OBJS
Jonathan Nieder [Sun, 28 Feb 2010 09:11:55 +0000 (03:11 -0600)]
Makefile: clarify definition of TEST_OBJS

The definition of TEST_OBJS in commit daa99a91 (Makefile: make sure
test helpers are rebuilt when headers change, 2010-01-26) moved a use
of $X to before the platform-specific section where it gets defined.
There are at least two ways to fix that:

 - Change the definition of TEST_OBJS to use the = delayed
   evaluation operator.  This way, one need not worry about $(X)
   needing to be defined before TEST_OBJS is set.

 - Move the definition of TEST_OBJS to below the definition of $X.

Carry out the second.  The later site of definition makes the code more
readable, since now a reader only has to look down one line to see what
TEST_OBJS is meant to be used for.

Oddly enough, with or without this change the behavior of the Makefile
is the same.  Since TEST_PROGRAMS is defined with delayed evaluation,
the value of

 TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))

is independent of the value of $X when it is evaluated: the $X in the
pattern and the $X in $(TEST_PROGRAMS) will simply always cancel out.
Make sure $X has the expected expansion anyway to make the code and
the reader’s sanity more robust in the face of future changes.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosha1_name: fix segfault caused by invalid index access
Markus Heidelberg [Sun, 28 Feb 2010 15:49:15 +0000 (16:49 +0100)]
sha1_name: fix segfault caused by invalid index access

The code to see if user input "git show :path" makes sense tried to access
the index without properly checking the array bound.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit svn: delay importing SVN::Base until it is needed
josh robb [Wed, 24 Feb 2010 03:13:50 +0000 (16:13 +1300)]
git svn: delay importing SVN::Base until it is needed

Importing functions from a .dll into Git for Windows' perl is pretty slow,
so let's avoid importing if it is not necessary.

This seems particularly slow in virtualized enviroments. Before this
change (on my machine):

$ time perl /libexec/git-core/git-svn rebase
Current branch master is up to date.

real 2m56.750s
user 0m3.129s
sys 2m39.232s

Afterwards:

$ time perl /libexec/git-core/git-svn rebase
Current branch master is up to date.

real 0m33.407s
user 0m1.409s
sys 0m23.054s

git svn rebase -n goes from 3m7.046s to 0m10.312s.

Signed-off-by: Josh Robb <josh_robb@fastmail.fm>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogit-svn: Fix discarding of extra parents from svn:mergeinfo
Tuomas Suutari [Mon, 22 Feb 2010 18:12:53 +0000 (20:12 +0200)]
git-svn: Fix discarding of extra parents from svn:mergeinfo

If parent J is an ancestor of parent I, then parent J should be
discarded, not I.

Note that J is an ancestor of I if and only if rev-list I..J is emtpy,
which is what we are testing here.

Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agot9151: Add two new svn:mergeinfo test cases
Tuomas Suutari [Mon, 22 Feb 2010 07:57:21 +0000 (09:57 +0200)]
t9151: Add two new svn:mergeinfo test cases

When svn:mergeinfo contains two new parents in a specific order and
one is ancestor of the other, it is possible that git-svn discards the
wrong one. The first test case ("commit made to merged branch is
reachable from the merge") proves this.

The second test case ("merging two branches in one commit is detected
correctly") is just for completeness, since there was no test for
merging two (feature) branches to trunk in one commit.

Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agot9151: Fix a few commits in the SVN dump
Tuomas Suutari [Mon, 22 Feb 2010 07:57:20 +0000 (09:57 +0200)]
t9151: Fix a few commits in the SVN dump

A few "svn cp" commands and commit commands were executed in incorrect
order. Therefore some of the desired commits were missing and some
were committed with wrong revision number in the commit message. This
made it hard to compare the produced git repository with the SVN
repository.

The dump file is updated too, but only the relevant parts and with
hand-edited timestamps to make history linear.

Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 26 Feb 2010 07:21:50 +0000 (23:21 -0800)]
Merge branch 'maint'

* maint:
  t3301-notes: insert a shbang line in ./fake_editor.sh

14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Fri, 26 Feb 2010 07:21:42 +0000 (23:21 -0800)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  t3301-notes: insert a shbang line in ./fake_editor.sh

14 years agoWindows: redirect f[re]open("/dev/null") to f[re]open("nul")
Johannes Sixt [Thu, 25 Feb 2010 20:03:44 +0000 (21:03 +0100)]
Windows: redirect f[re]open("/dev/null") to f[re]open("nul")

On Windows, the equivalent of "/dev/null" is "nul". This implements
compatibility wrappers around fopen() and freopen() that check for this
particular file name.

The new tests exercise code paths where this is relevant.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot3301-notes: insert a shbang line in ./fake_editor.sh
Johannes Sixt [Thu, 25 Feb 2010 10:39:50 +0000 (11:39 +0100)]
t3301-notes: insert a shbang line in ./fake_editor.sh

This is required on Windows because git-notes is now a built-in
rather than a shell script.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 24 Feb 2010 23:34:07 +0000 (15:34 -0800)]
Merge branch 'maint'

* maint:
  commit: quote the user name in the example

14 years agocommit: quote the user name in the example
Matt Kraai [Wed, 24 Feb 2010 14:18:25 +0000 (06:18 -0800)]
commit: quote the user name in the example

If the user runs

 git config --global user.name Your Name

as suggested, user.name will be set to "Your".  With this patch, the
suggested command will be

 git config --global user.name "Your Name"

which will set user.name to "Your Name" and hopefully help users avoid
the former mistake.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ml/maint-grep-doc' into maint
Junio C Hamano [Wed, 24 Feb 2010 23:33:23 +0000 (15:33 -0800)]
Merge branch 'ml/maint-grep-doc' into maint

* ml/maint-grep-doc:
  grep documentation: clarify what files match

14 years agofetch --all/--multiple: keep all the fetched branch information
Junio C Hamano [Wed, 24 Feb 2010 19:02:05 +0000 (11:02 -0800)]
fetch --all/--multiple: keep all the fetched branch information

Since "git fetch" learned "--all" and "--multiple" options, it has become
tempting for users to say "git pull --all".  Even though it may fetch from
remotes that do not need to be fetched from for merging with the current
branch, it is handy.

"git fetch" however clears the list of fetched branches every time it
contacts a different remote.  Unless the current branch is configured to
merge with a branch from a remote that happens to be the last in the list
of remotes that are contacted, "git pull" that fetches from multiple
remotes will not be able to find the branch it should be merging with.

Make "fetch" clear FETCH_HEAD (unless --append is given) and then append
the list of branches fetched to it (even when --append is not given).  That
way, "pull" will be able to find the data for the branch being merged in
FETCH_HEAD no matter where the remote appears in the list of remotes to be
contacted by "git fetch".

Reported-by: Michael Lukashov
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopush: fix segfault for odd config
Jeff King [Wed, 24 Feb 2010 17:08:53 +0000 (12:08 -0500)]
push: fix segfault for odd config

If you have a branch.$X.merge config option, but no branch.$X.remote, and
your configuration tries to push tracking branches, git will segfault.

The problem is that even though branch->merge_nr is 1, you don't actually
have an upstream since there is no remote.  Other callsites generally
check explicitly that branch->merge is not NULL, so let's do that here,
too.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin-fetch --all/--multi: propagate options correctly
Junio C Hamano [Wed, 24 Feb 2010 18:22:06 +0000 (10:22 -0800)]
builtin-fetch --all/--multi: propagate options correctly

When running a subfetch, the code propagated some options but not others.
Propagate --force, --update-head-ok and --keep options as well.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5521: fix and modernize
Junio C Hamano [Wed, 24 Feb 2010 18:22:05 +0000 (10:22 -0800)]
t5521: fix and modernize

All of these tests were bogus, as they created new directory and tried to
run "git pull" without even running "git init" in there.  They were mucking
with the repository in $TEST_DIRECTORY.

While fixing it, modernize the style not to chdir around outside of
subshell.  Otherwise a failed test will take us to an unexpected directory
and we need to chdir back to the test directory in each test, which is
ugly and error prone.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 23 Feb 2010 22:27:55 +0000 (14:27 -0800)]
Merge branch 'maint'

* maint:
  am: remove rebase-apply directory before gc
  rerere: fix memory leak if rerere images can't be read
  Documentation: mention conflict marker size argument (%L) for merge driver

14 years agoam: remove rebase-apply directory before gc
Jonathan Nieder [Mon, 22 Feb 2010 14:35:46 +0000 (08:35 -0600)]
am: remove rebase-apply directory before gc

When git am does an automatic gc it doesn't clean up the rebase-apply
directory until after this has finished.  This means that if the user
aborts the gc then future am or rebase operations will report that an
existing operation is in progress, which is undesirable and confusing.

Reported by Mark Brown <broonie@debian.org> through
http://bugs.debian.org/570966

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorerere: fix memory leak if rerere images can't be read
Bert Wesarg [Tue, 23 Feb 2010 20:11:53 +0000 (21:11 +0100)]
rerere: fix memory leak if rerere images can't be read

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoPrint RUNTIME_PREFIX warning only when GIT_TRACE is set
Johannes Sixt [Tue, 23 Feb 2010 11:42:56 +0000 (12:42 +0100)]
Print RUNTIME_PREFIX warning only when GIT_TRACE is set

When RUNTIME_PREFIX is enabled, the installation prefix is derived by
trying a limited set of known locations where the git executable can
reside. If none of these is found, a warning is emitted.

When git is built in a directory that matches neither of these known names,
the warning would always be emitted when the uninstalled executable is run.
This is a problem on Windows, where gitk picks the uninstalled git when
invoked from the build directory and gets confused by the warning.

Print the warning only when GIT_TRACE is set.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAllow '+', '-' and '.' in remote helper names
Ilari Liusvaara [Tue, 23 Feb 2010 12:33:48 +0000 (14:33 +0200)]
Allow '+', '-' and '.' in remote helper names

According to relevant RFCs, in addition to alphanumerics, the following
characters are valid in URL scheme parts: '+', '-' and '.', but
currently only alphanumerics are allowed in remote helper names.

Allow those three characters in remote helper names (both 'foo://' and
'foo::' syntax).

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: mention conflict marker size argument (%L) for merge driver
Bert Wesarg [Tue, 23 Feb 2010 20:11:12 +0000 (21:11 +0100)]
Documentation: mention conflict marker size argument (%L) for merge driver

23a64c9e (conflict-marker-size: new attribute, 2010-01-16) introduced the
new attribute and also pass the conflict marker size as %L to merge driver
commands. This documents the substitution.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomove encode_in_pack_object_header() to a better place
Nicolas Pitre [Tue, 23 Feb 2010 20:02:37 +0000 (15:02 -0500)]
move encode_in_pack_object_header() to a better place

Commit 1b22b6c897 made duplicated versions of encode_header() into a
common version called encode_in_pack_object_header(). There is however
a better location that sha1_file.c for such a function though, as
sha1_file.c contains nothing related to the creation of packs, and
it is quite populated already.

Also the comment that was moved to the header file should really remain
near the function as it covers implementation details and provides no
information about the actual function interface.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoadd-interactive: fix bogus diff header line ordering
Jeff King [Tue, 23 Feb 2010 01:05:44 +0000 (20:05 -0500)]
add-interactive: fix bogus diff header line ordering

When we look at a patch for adding hunks interactively, we
first split it into a header and a list of hunks. Some of
the header lines, such as mode changes and deletion, however,
become their own selectable hunks. Later when we reassemble
the patch, we simply concatenate the header and the selected
hunks. This leads to patches like this:

  diff --git a/file b/file
  index d95f3ad..0000000
  --- a/file
  +++ /dev/null
  deleted file mode 100644
  @@ -1 +0,0 @@
  -content

Notice how the deletion comes _after_ the ---/+++ lines,
when it should come before.

In many cases, we can get away with this as git-apply
accepts the slightly bogus input. However, in the specific
case of a deletion line that is being applied via "apply
-R", this malformed patch triggers an assert in git-apply.
This comes up when discarding a deletion via "git checkout
-p".

Rather than try to make git-apply accept our odd input,
let's just reassemble the patch in the correct order.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUse git_mkstemp_mode instead of plain mkstemp to create object files
Matthieu Moy [Mon, 22 Feb 2010 22:32:16 +0000 (23:32 +0100)]
Use git_mkstemp_mode instead of plain mkstemp to create object files

We used to unnecessarily give the read permission to group and others,
regardless of the umask, which isn't serious because the objects are
still protected by their containing directory, but isn't necessary
either.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit_mkstemps_mode: don't set errno to EINVAL on exit.
Matthieu Moy [Mon, 22 Feb 2010 22:32:15 +0000 (23:32 +0100)]
git_mkstemps_mode: don't set errno to EINVAL on exit.

When reaching the end of git_mkstemps_mode, at least one call to open()
has been done, and errno has been set accordingly. Setting errno is
therefore not necessary, and actually harmfull since callers can't
distinguish e.g. permanent failure from ENOENT, which can just mean that
we need to create the containing directory.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>