git.git
16 years agoMerge branch 'jc/remote-multi-url'
Junio C Hamano [Sun, 2 Mar 2008 23:11:19 +0000 (15:11 -0800)]
Merge branch 'jc/remote-multi-url'

* jc/remote-multi-url:
  git-remote: do not complain on multiple URLs for a remote

16 years agoMerge branch 'jn/gitweb-grep'
Junio C Hamano [Sun, 2 Mar 2008 23:11:14 +0000 (15:11 -0800)]
Merge branch 'jn/gitweb-grep'

* jn/gitweb-grep:
  gitweb: Clearly distinguish regexp / exact match searches
  gitweb: Simplify fixed string search
  gitweb: Change parse_commits signature to allow for multiple options

16 years agoMerge branch 'mk/maint-parse-careful'
Junio C Hamano [Sun, 2 Mar 2008 23:11:07 +0000 (15:11 -0800)]
Merge branch 'mk/maint-parse-careful'

* mk/maint-parse-careful:
  receive-pack: use strict mode for unpacking objects
  index-pack: introduce checking mode
  unpack-objects: prevent writing of inconsistent objects
  unpack-object: cache for non written objects
  add common fsck error printing function
  builtin-fsck: move common object checking code to fsck.c
  builtin-fsck: reports missing parent commits
  Remove unused object-ref code
  builtin-fsck: move away from object-refs to fsck_walk
  add generic, type aware object chain walker

Conflicts:

Makefile
builtin-fsck.c

16 years agoMerge branch 'sb/describe-long'
Junio C Hamano [Sun, 2 Mar 2008 23:02:56 +0000 (15:02 -0800)]
Merge branch 'sb/describe-long'

* sb/describe-long:
  git-describe: --long shows the object name even for a tagged commit

16 years agoMerge branch 'ew/maint-svn-cert-fileprovider'
Junio C Hamano [Sun, 2 Mar 2008 23:02:14 +0000 (15:02 -0800)]
Merge branch 'ew/maint-svn-cert-fileprovider'

* ew/maint-svn-cert-fileprovider:
  git-svn: Don't prompt for client cert password everytime.

16 years agoMerge branch 'js/maint-daemon'
Junio C Hamano [Sun, 2 Mar 2008 23:02:08 +0000 (15:02 -0800)]
Merge branch 'js/maint-daemon'

* js/maint-daemon:
  daemon: ensure that base-path is an existing directory
  daemon: send more error messages to the syslog

16 years agoDocumentation: Remove --{min,max}-age option from git-log(1)
Jakub Narebski [Sun, 2 Mar 2008 14:11:35 +0000 (15:11 +0100)]
Documentation: Remove --{min,max}-age option from git-log(1)

The --max-age=<timestamp> and --min-age=<timestamp> are now shown only
in the git-rev-list manpage (plumbing).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocleanup: remove unused git_checkout_config
Denis Cheng [Sun, 2 Mar 2008 10:05:05 +0000 (18:05 +0800)]
cleanup: remove unused git_checkout_config

Directly call git_default_config instead.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix make_absolute_path() for parameters without a slash
Johannes Schindelin [Sun, 2 Mar 2008 07:40:33 +0000 (07:40 +0000)]
Fix make_absolute_path() for parameters without a slash

When passing "xyz" to make_absolute_path(), make_absolute_path()
erroneously tried to chdir("xyz"), and then append "/xyz".  Instead,
skip the chdir() completely when no slash was found.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff: make sure work tree side is shown as 0{40} when different
Junio C Hamano [Sun, 2 Mar 2008 08:07:59 +0000 (00:07 -0800)]
diff: make sure work tree side is shown as 0{40} when different

Ping Yin noticed that "git diff-index --raw" shows 0{40} when work tree
has submodule difference, but "git diff --raw" didn't correctly do so.

There was a mistake in the diffcore_skip_stat_unmatch() that was meant to
clean up the stat-only difference for running diff between the index and
work tree and diff between the tree and the work tree, to cause it re-read
from the submodule repository HEAD.  When ce_stat_match() says work tree
is different, we should always say 0{40} on the work tree side.

This patch fixes the issue, and adds tests.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff-lib.c: constness strengthening
Junio C Hamano [Sun, 2 Mar 2008 08:57:26 +0000 (00:57 -0800)]
diff-lib.c: constness strengthening

The internal implementation of diff-index codepath used to use non const
pointer to pass sha1 around, but it did not have to.  With this, we can
also lose the private no_sha1[] array, as we can use the public null_sha1[]
array that exists exactly for the same purpose.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoClean up find_unique_abbrev() callers
Junio C Hamano [Sun, 2 Mar 2008 07:43:32 +0000 (23:43 -0800)]
Clean up find_unique_abbrev() callers

Now find_unique_abbrev() never returns NULL, there is no need for callers
to prepare for seeing NULL and fall back to giving the full 40-hexdigits.

While we are at it, drop "..." in the "git reset" output that reports the
location of the new HEAD, between the abbreviated commit object name and
the one line commit summary.  Because we are always showing the HEAD
(which cannot be missing!), we never had a case where we show the full 40
hexdigits that is not followed by three dots, and these three dots were
stealing 3 columns from the precious horizontal screen real estate out of
80 that can better be used for the one line commit summary.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofind_unique_abbrev(): redefine semantics
Junio C Hamano [Sun, 2 Mar 2008 07:35:32 +0000 (23:35 -0800)]
find_unique_abbrev(): redefine semantics

The function returned NULL when no object that matches the name
was found, but that made the callers more complicated, as nobody
used that NULL return as an indication that no object with such
a name exists.  They (at least the careful ones) instead took
the full 40-hexdigit and used in such a case, and the careless
ones segfaulted.

With this "git rev-parse --short 5555555555555555555555555555555555555555"
would stop segfaulting.

This is based on Jeff King's rewrite to my RFC patch, but "missing"
logic swapped to "exists".  The final logic reads:

    For existing objects, make sure the abbreviated string uniquely
    identifies it.  Otherwise, make sure the abbreviated string is
    long enough so that it would not name any existing object.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit rebase --abort: always restore the right commit
Mike Hommey [Sat, 1 Mar 2008 10:32:14 +0000 (11:32 +0100)]
git rebase --abort: always restore the right commit

Previously, --abort would end by git resetting to ORIG_HEAD, but some
commands, such as git reset --hard (which happened in git rebase --skip,
but could just as well be typed by the user), would have already modified
ORIG_HEAD.

Just use the orig-head we store in $dotest instead.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation/git-rebase.txt: Add --strategy to synopsys
Mike Hommey [Sat, 1 Mar 2008 11:39:52 +0000 (12:39 +0100)]
Documentation/git-rebase.txt: Add --strategy to synopsys

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoCodingGuidelines: spell out how we use grep in our scripts
Junio C Hamano [Sun, 2 Mar 2008 02:18:16 +0000 (18:18 -0800)]
CodingGuidelines: spell out how we use grep in our scripts

Our scripts try to stick to fairly limited subset of POSIX BRE for
portability.  It is unclear from manual page from GNU grep which is GNU
extension and which is portable, so let's spell it out to help new people
to keep their contributions from hurting porters.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoallow git-am to run in a subdirectory
Jeff King [Sat, 1 Mar 2008 06:22:55 +0000 (01:22 -0500)]
allow git-am to run in a subdirectory

We just move to the top of the tree and proceed. This
shouldn't break any existing callers, since the behavior was
previously disallowed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorename: warn user when we have turned off rename detection
Jeff King [Sat, 1 Mar 2008 06:14:31 +0000 (01:14 -0500)]
rename: warn user when we have turned off rename detection

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd test for git rebase --abort
Mike Hommey [Fri, 29 Feb 2008 22:08:47 +0000 (23:08 +0100)]
Add test for git rebase --abort

We expect git rebase --abort to come back to the original (pre-rebase)
head, independently from when it's run during a rebase.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot6024: move "git reset" to prepare for a test inside the test itself
Junio C Hamano [Sat, 1 Mar 2008 09:10:12 +0000 (01:10 -0800)]
t6024: move "git reset" to prepare for a test inside the test itself

Noticed by Mike Hommey.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogc: Add --quiet option
Frank Lichtenheld [Fri, 29 Feb 2008 21:53:39 +0000 (22:53 +0100)]
gc: Add --quiet option

Pass -q option to git-repack.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'master' of git://repo.or.cz/git-gui
Junio C Hamano [Sat, 1 Mar 2008 05:22:52 +0000 (21:22 -0800)]
Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
  git-gui: fix typo in lib/spellcheck.tcl
  git-gui: Shorten Aspell version strings to just Aspell version number
  git-gui: Gracefully display non-aspell version errors to users
  git-gui: Catch and display aspell startup failures to the user
  git-gui: Only bind the spellcheck popup suggestion hook once
  git-gui: Remove explicit references to 'aspell' in message strings
  git-gui: Ensure all spellchecker 'class' variables are initialized
  git-gui: Update German translation.
  git-gui: (i18n) Add newly added translation strings to template.

16 years agoMerge branch 'maint'
Junio C Hamano [Sat, 1 Mar 2008 05:22:31 +0000 (21:22 -0800)]
Merge branch 'maint'

* maint:
  Documentation cherry-pick: Fix cut-and-paste error
  git.el: find the git-status buffer whatever its name is
  git-gui: Paper bag fix info dialog when no files are staged at commit

16 years agoDocumentation cherry-pick: Fix cut-and-paste error
Mike Ralphson [Fri, 29 Feb 2008 17:00:38 +0000 (17:00 +0000)]
Documentation cherry-pick: Fix cut-and-paste error

Signed-off-by: Mike Ralphson <mike@abacus.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: find the git-status buffer whatever its name is
Rémi Vanicat [Fri, 29 Feb 2008 18:28:19 +0000 (19:28 +0100)]
git.el: find the git-status buffer whatever its name is

git-status used the buffer name to find git-status buffers, and that
can fail if the buffer has another name, for example when multiple
working directories is tracked.

Signed-off-by: Rémi Vanicat <vanicat@debian.org>
Acked-by: Alexandre Julliard <julliard@winehq.org>
Tested-by: Xavier Maillard <xma@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Sat, 1 Mar 2008 05:19:43 +0000 (21:19 -0800)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Paper bag fix info dialog when no files are staged at commit

16 years agoclone: support cloning full bundles
Santi Béjar [Fri, 29 Feb 2008 19:16:19 +0000 (20:16 +0100)]
clone: support cloning full bundles

The "humanish" part of a bundle is made removing the ".bundle" suffix.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.5.5
Junio C Hamano [Thu, 28 Feb 2008 07:39:47 +0000 (23:39 -0800)]
Update draft release notes for 1.5.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agouse build-time SHELL_PATH in test scripts
Jeff King [Sun, 24 Feb 2008 19:40:45 +0000 (14:40 -0500)]
use build-time SHELL_PATH in test scripts

The top-level Makefile now creates a GIT-BUILD-OPTIONS file
which stores any options selected by the make process that
may be of use to further parts of the build process.
Specifically, we store the SHELL_PATH so that it can be used
by tests to construct shell scripts on the fly.

The format of the GIT-BUILD-OPTIONS file is Bourne shell,
and it is sourced by test-lib.sh; all tests can rely on just
having $SHELL_PATH correctly set in the environment.

The GIT-BUILD-OPTIONS file is written every time the
toplevel 'make' is invoked. Since the only users right now
are the test scripts, there's no drawback to updating its
timestamp. If something build-related depends on this, we
can do a trick similar to the one used by GIT-CFLAGS.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoWrite index file on any checkout of files
Daniel Barkalow [Thu, 28 Feb 2008 21:52:44 +0000 (16:52 -0500)]
Write index file on any checkout of files

We need to rewrite the index file when we check out files, even if we
haven't modified the blob info by reading from another tree, so that
we get the stat cache to include the fact that we just modified the
file so it doesn't need to be refreshed.

While we're at it, move everything that needs to be done to check out
some paths from a tree (or the current index) into checkout_paths().

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorev-list: add --branches, --tags and --remotes
Uwe Kleine-König [Thu, 28 Feb 2008 07:24:25 +0000 (08:24 +0100)]
rev-list: add --branches, --tags and --remotes

These flags are already known to rev-parse and have the same meaning.

This patch allows to run gitk as follows:

gitk --branches --not --remotes

to show only your local work.

Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoImprove t6029 to check the real "subtree" case
Miklos Vajna [Thu, 28 Feb 2008 12:36:54 +0000 (13:36 +0100)]
Improve t6029 to check the real "subtree" case

t6029 already checks if subtree available and works like recursive. This
patch adds code to test test the extra functionality the subtree merge
strategy provides.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse diff_tree() directly in making cover letter
Daniel Barkalow [Thu, 28 Feb 2008 17:14:13 +0000 (12:14 -0500)]
Use diff_tree() directly in making cover letter

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAlways use the current connection's remote ref list in git protocol
Daniel Barkalow [Thu, 28 Feb 2008 16:10:51 +0000 (11:10 -0500)]
Always use the current connection's remote ref list in git protocol

We always report to the user the list of refs we got from the first
connection, even if we do multiple connections. But we should always
use each connection's own list of refs in the communication with the
server, in case we got a different server out of DNS rotation or the
timing was surprising or something.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotests: introduce test_must_fail
Junio C Hamano [Thu, 28 Feb 2008 21:09:30 +0000 (13:09 -0800)]
tests: introduce test_must_fail

When we expect a git command to notice and signal errors, we
carelessly wrote in our tests:

    test_expect_success 'reject bogus request' '
        do something &&
        do something else &&
        ! git command
    '

but a non-zero exit could come from the "git command" segfaulting.

A new helper function "tset_must_fail" is introduced and it is
meant to be used to make sure the command gracefully fails (iow,
dying and exiting with non zero status is counted as a failure
to "gracefully fail").  The above example should be written as:

    test_expect_success 'reject bogus request' '
        do something &&
        do something else &&
        test_must_fail git command
    '

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix builtin checkout crashing when given an invalid path
Alex Riesen [Thu, 28 Feb 2008 16:30:47 +0000 (17:30 +0100)]
Fix builtin checkout crashing when given an invalid path

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Fri, 29 Feb 2008 08:00:09 +0000 (00:00 -0800)]
Merge branch 'maint'

* maint:
  templates/Makefile: don't depend on local umask setting
  Correct name of diff_flush() in API documentation
  Start preparing for 1.5.4.4

Conflicts:

RelNotes

16 years agoreceive-pack: use strict mode for unpacking objects
Martin Koegler [Mon, 25 Feb 2008 21:46:13 +0000 (22:46 +0100)]
receive-pack: use strict mode for unpacking objects

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoindex-pack: introduce checking mode
Martin Koegler [Mon, 25 Feb 2008 21:46:12 +0000 (22:46 +0100)]
index-pack: introduce checking mode

Adds strict option, which bails out if the pack would
introduces broken object or links in the repository.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agounpack-objects: prevent writing of inconsistent objects
Martin Koegler [Mon, 25 Feb 2008 21:46:11 +0000 (22:46 +0100)]
unpack-objects: prevent writing of inconsistent objects

This patch introduces a strict mode, which ensures that:
- no malformed object will be written
- no object with broken links will be written

The patch ensures this by delaying the write of all non blob object.
These object are written, after all objects they link to are written.

An error can only result in unreferenced objects.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agounpack-object: cache for non written objects
Martin Koegler [Mon, 25 Feb 2008 21:46:10 +0000 (22:46 +0100)]
unpack-object: cache for non written objects

Preventing objects with broken links entering the repository
means, that write of some objects must be delayed.

This patch adds a cache to keep the object data in memory. The delta
resolving code must also search in the cache.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotemplates/Makefile: don't depend on local umask setting
Gerrit Pape [Thu, 28 Feb 2008 18:44:42 +0000 (18:44 +0000)]
templates/Makefile: don't depend on local umask setting

Don't take the local umask setting into account when installing the
templates/* files and directories, running 'make install' with umask set
to 077 resulted in template/* installed with permissions 700 and 600.

The problem was discovered by Florian Zumbiehl, reported through
 http://bugs.debian.org/467518

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoCorrect name of diff_flush() in API documentation
Daniel Barkalow [Thu, 28 Feb 2008 17:24:42 +0000 (12:24 -0500)]
Correct name of diff_flush() in API documentation

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart preparing for 1.5.4.4
Junio C Hamano [Thu, 28 Feb 2008 07:37:39 +0000 (23:37 -0800)]
Start preparing for 1.5.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Thu, 28 Feb 2008 06:29:19 +0000 (01:29 -0500)]
Merge branch 'maint'

* maint:
  git-gui: Paper bag fix info dialog when no files are staged at commit

16 years agogit-gui: Paper bag fix info dialog when no files are staged at commit gitgui-0.9.3
Shawn O. Pearce [Thu, 28 Feb 2008 06:28:45 +0000 (01:28 -0500)]
git-gui: Paper bag fix info dialog when no files are staged at commit

If the user tries to commit their changes without actually staging
anything we used to display an informational dialog suggesting they
first stage those changes, then retry the commit feature.

Unfortunately I broke this in aba15f7 ("Ensure error dialogs always
appear over all other windows") and failed to fix it in the paper
bag fix that came one day after it.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoformat-patch: remove a leftover debugging message
Junio C Hamano [Thu, 28 Feb 2008 06:08:57 +0000 (22:08 -0800)]
format-patch: remove a leftover debugging message

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocompletion: support format-patch's --cover-letter option
Johannes Schindelin [Thu, 21 Feb 2008 16:21:49 +0000 (16:21 +0000)]
completion: support format-patch's --cover-letter option

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodaemon: ensure that base-path is an existing directory
Johannes Sixt [Tue, 26 Feb 2008 12:00:55 +0000 (13:00 +0100)]
daemon: ensure that base-path is an existing directory

Any request to the daemon would fail if base-path (if specified) is not
a directory. We now check for this condition early.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodaemon: send more error messages to the syslog
Johannes Sixt [Mon, 25 Feb 2008 13:25:20 +0000 (14:25 +0100)]
daemon: send more error messages to the syslog

There were a number of die() calls before the syslog was opened; hence,
these error messages would have been sent to /dev/null in detached mode.
Now we install the daemon-specific die routine before any error message is
generated so that these messages go to the syslog.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Wed, 27 Feb 2008 22:07:51 +0000 (14:07 -0800)]
Merge branch 'maint'

* maint:
  Eliminate confusing "won't bisect on seeked tree" failure
  builtin-reflog.c: don't install new reflog on write failure
  send-email: fix In-Reply-To regression
  Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR
  Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
  Prompt to continue when editing during rebase --interactive
  Documentation/git svn log: add a note about timezones.
  Don't use GIT_CONFIG in t5505-remote

Conflicts:

t/t9001-send-email.sh
t/t9200-git-cvsexportcommit.sh

16 years agogit-remote: do not complain on multiple URLs for a remote
Junio C Hamano [Wed, 27 Feb 2008 21:50:44 +0000 (13:50 -0800)]
git-remote: do not complain on multiple URLs for a remote

Having more than one URL for a remote is perfectly normal when
the remote is defined to push to multiple places.  Get rid of
the annoying "Warning" message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'git-p4' of git://repo.or.cz/git/git-p4
Junio C Hamano [Wed, 27 Feb 2008 21:56:42 +0000 (13:56 -0800)]
Merge branch 'git-p4' of git://repo.or.cz/git/git-p4

* 'git-p4' of git://repo.or.cz/git/git-p4:
  git-p4: Support usage of perforce client spec
  git-p4: git-p4 submit cleanups.
  git-p4: Removed git-p4 submit --direct.
  git-p4: Clean up git-p4 submit's log message handling.
  git-p4: Remove --log-substitutions feature.
  git-p4: support exclude paths

16 years agoEliminate confusing "won't bisect on seeked tree" failure
Carl Worth [Sun, 24 Feb 2008 01:14:17 +0000 (17:14 -0800)]
Eliminate confusing "won't bisect on seeked tree" failure

This error message is very confusing---it doesn't tell the user
anything about how to fix the situation. And the actual fix
for the situation ("git bisect reset") does a checkout of a
potentially random branch, (compared to what the user wants to
be on for the bisect she is starting).

The simplest way to eliminate the confusion is to just make
"git bisect start" do the cleanup itself. There's no significant
loss of safety here since we already have a general safety in
the form of the reflog.

Note: We preserve the warning for any cogito users. We do this
by switching from .git/head-name to .git/BISECT_START for the
extra state, (which is a more descriptive name anyway).

Signed-off-by: Carl Worth <cworth@cworth.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-reflog.c: don't install new reflog on write failure
Brandon Casey [Fri, 22 Feb 2008 18:47:08 +0000 (12:47 -0600)]
builtin-reflog.c: don't install new reflog on write failure

When expiring reflog entries, a new temporary log is written which contains
only the entries to retain. After it is written, it is renamed to replace
the existing reflog. Currently, we check that writing of the new log is
successful and print a message on failure, but the original reflog is still
replaced with the new reflog even on failure. This patch causes the
original reflog to be retained if we fail when writing the new reflog.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agosend-email: fix In-Reply-To regression
Jay Soffian [Fri, 22 Feb 2008 00:16:04 +0000 (19:16 -0500)]
send-email: fix In-Reply-To regression

Fix a regression introduced by

1ca3d6e (send-email: squelch warning due to comparing undefined $_ to "")

where if the user was prompted for an initial In-Reply-To and didn't
provide one, messages would be sent out with an invalid In-Reply-To of
"<>"

Also add test cases for the regression and the fix. A small modification
was needed to allow send-email to take its replies from stdin if the
environment variable GIT_SEND_EMAIL_NOTTY is set.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Clearly distinguish regexp / exact match searches
Petr Baudis [Tue, 26 Feb 2008 12:22:08 +0000 (13:22 +0100)]
gitweb: Clearly distinguish regexp / exact match searches

This patch does a couple of things:

* Makes commit/author/committer search case insensitive

  To be consistent with the grep search; I see no convincing
  reason for the search to be case sensitive, and you might
  get in trouble especially with contributors e.g. from Japan
  or France where they sometimes like to uppercase their last
  name.

* Makes grep search by default search for fixed strings.

* Introduces 're' checkbox that enables POSIX extended regexp searches

  This works for all the search types. The idea comes from Jakub.

It does not make much sense (and is not easy at all) to untangle most
of these changes from each other, thus they all go in a single patch.

[jn: Cherry-picked from Pasky's http://repo.or.cz/git/gitweb.git]

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Simplify fixed string search
Jakub Narebski [Tue, 26 Feb 2008 12:22:07 +0000 (13:22 +0100)]
gitweb: Simplify fixed string search

Use '--fixed-strings' option to git-rev-list to simplify and improve
searching commit messages (commit search).  It allows to search for
example for "don't" successfully from gitweb.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Change parse_commits signature to allow for multiple options
Jakub Narebski [Tue, 26 Feb 2008 12:22:06 +0000 (13:22 +0100)]
gitweb: Change parse_commits signature to allow for multiple options

Change order of parameters in parse_commits() to have $filename
before @args (extra options), to allow for multiple extra options,
for example both '--grep=<pattern>' and '--fixed-strings'.

Change all callers to follow new calling convention.

Originally by Petr Baudis, in http://repo.or.cz/git/gitweb.git:

    b98f0a7c gitweb: Clearly distinguish regexp / exact match searches

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: Don't prompt for client cert password everytime.
Sebastian Noack [Mon, 25 Feb 2008 14:56:28 +0000 (15:56 +0100)]
git-svn: Don't prompt for client cert password everytime.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: Do not display empty directories.
Alexandre Julliard [Fri, 22 Feb 2008 15:48:53 +0000 (16:48 +0100)]
git.el: Do not display empty directories.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Tested-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'jm/free'
Junio C Hamano [Wed, 27 Feb 2008 21:03:50 +0000 (13:03 -0800)]
Merge branch 'jm/free'

* jm/free:
  Avoid unnecessary "if-before-free" tests.

Conflicts:

builtin-branch.c

16 years agoMerge branch 'js/branch-track'
Junio C Hamano [Wed, 27 Feb 2008 21:02:57 +0000 (13:02 -0800)]
Merge branch 'js/branch-track'

* js/branch-track:
  doc: documentation update for the branch track changes
  branch: optionally setup branch.*.merge from upstream local branches

Conflicts:

Documentation/config.txt
Documentation/git-branch.txt
Documentation/git-checkout.txt
builtin-branch.c
cache.h
t/t7201-co.sh

16 years agoMerge branch 'db/checkout'
Junio C Hamano [Wed, 27 Feb 2008 20:53:26 +0000 (12:53 -0800)]
Merge branch 'db/checkout'

* db/checkout: (21 commits)
  checkout: error out when index is unmerged even with -m
  checkout: show progress when checkout takes long time while switching branches
  Add merge-subtree back
  checkout: updates to tracking report
  builtin-checkout.c: Remove unused prefix arguments in switch_branches path
  checkout: work from a subdirectory
  checkout: tone down the "forked status" diagnostic messages
  Clean up reporting differences on branch switch
  builtin-checkout.c: fix possible usage segfault
  checkout: notice when the switched branch is behind or forked
  Build in checkout
  Move code to clean up after a branch change to branch.c
  Library function to check for unmerged index entries
  Use diff -u instead of diff in t7201
  Move create_branch into a library file
  Build-in merge-recursive
  Add "skip_unmerged" option to unpack_trees.
  Discard "deleted" cache entries after using them to update the working tree
  Send unpack-trees debugging output to stderr
  Add flag to make unpack_trees() not print errors.
  ...

Conflicts:

Makefile

16 years agoMerge branch 'db/cover-letter'
Junio C Hamano [Wed, 27 Feb 2008 20:06:41 +0000 (12:06 -0800)]
Merge branch 'db/cover-letter'

* db/cover-letter:
  Improve collection of information for format-patch --cover-letter
  Add API access to shortlog
  t4014: Replace sed's non-standard 'Q' by standard 'q'
  Support a --cc=<email> option in format-patch
  Combine To: and Cc: headers
  Fix format.headers not ending with a newline
  Add tests for extra headers in format-patch
  Add a --cover-letter option to format-patch
  Export some email and pretty-printing functions
  Improve message-id generation flow control for format-patch
  Add more tests for format-patch

Conflicts:

builtin-log.c
builtin-shortlog.c
pretty.c

16 years agogit-svn: Don't prompt for client cert password everytime.
Sebastian Noack [Mon, 25 Feb 2008 14:56:28 +0000 (15:56 +0100)]
git-svn: Don't prompt for client cert password everytime.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'js/merge'
Junio C Hamano [Wed, 27 Feb 2008 19:57:19 +0000 (11:57 -0800)]
Merge branch 'js/merge'

* js/merge:
  xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
  xdl_merge(): make XDL_MERGE_ZEALOUS output simpler

16 years agoMerge branch 'cw/bisect'
Junio C Hamano [Wed, 27 Feb 2008 19:56:08 +0000 (11:56 -0800)]
Merge branch 'cw/bisect'

* cw/bisect:
  Eliminate confusing "won't bisect on seeked tree" failure

16 years agoMerge branch 'jk/help-alias'
Junio C Hamano [Wed, 27 Feb 2008 19:55:43 +0000 (11:55 -0800)]
Merge branch 'jk/help-alias'

* jk/help-alias:
  help: respect aliases
  make alias lookup a public, procedural function
  help: use parseopt

16 years agoMerge branch 'js/run-command'
Junio C Hamano [Wed, 27 Feb 2008 19:55:32 +0000 (11:55 -0800)]
Merge branch 'js/run-command'

* js/run-command:
  start_command(), if .in/.out > 0, closes file descriptors, not the callers
  start_command(), .in/.out/.err = -1: Callers must close the file descriptor

16 years agoMerge branch 'jc/diff-relative'
Junio C Hamano [Wed, 27 Feb 2008 19:55:28 +0000 (11:55 -0800)]
Merge branch 'jc/diff-relative'

* jc/diff-relative:
  diff --relative: help working in a bare repository
  diff --relative: output paths as relative to the current subdirectory

16 years agoMerge branch 'gp/hash-stdin'
Junio C Hamano [Wed, 27 Feb 2008 19:55:22 +0000 (11:55 -0800)]
Merge branch 'gp/hash-stdin'

* gp/hash-stdin:
  hash-object: cleanup handling of command line options

16 years agoMerge branch 'db/push-single-with-HEAD'
Junio C Hamano [Wed, 27 Feb 2008 19:54:28 +0000 (11:54 -0800)]
Merge branch 'db/push-single-with-HEAD'

* db/push-single-with-HEAD:
  Resolve value supplied for no-colon push refspecs

16 years agoMerge branch 'db/host-alias'
Junio C Hamano [Wed, 27 Feb 2008 19:54:13 +0000 (11:54 -0800)]
Merge branch 'db/host-alias'

* db/host-alias:
  url rewriting: take longest and first match
  Add support for url aliases in config files
  Use ALLOC_GROW in remote.{c,h}

16 years agoMerge branch 'ae/pack-autothread'
Junio C Hamano [Wed, 27 Feb 2008 19:54:03 +0000 (11:54 -0800)]
Merge branch 'ae/pack-autothread'

* ae/pack-autothread:
  Revert "pack-objects: Print a message describing the number of threads for packing"
  pack-objects: Print a message describing the number of threads for packing
  pack-objects: Add runtime detection of online CPU's

16 years agoMerge branch 'bc/reflog-fix'
Junio C Hamano [Wed, 27 Feb 2008 19:53:48 +0000 (11:53 -0800)]
Merge branch 'bc/reflog-fix'

* bc/reflog-fix:
  builtin-reflog.c: don't install new reflog on write failure

16 years agoMerge branch 'sp/describe'
Junio C Hamano [Wed, 27 Feb 2008 19:52:20 +0000 (11:52 -0800)]
Merge branch 'sp/describe'

* sp/describe:
  Use git-describe --exact-match in bash prompt on detached HEAD
  Teach git-describe --exact-match to avoid expensive tag searches
  Avoid accessing non-tag refs in git-describe unless --all is requested
  Teach git-describe to use peeled ref information when scanning tags
  Optimize peel_ref for the current ref of a for_each_ref callback

16 years agoFix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR
Johan Herland [Mon, 11 Feb 2008 23:43:41 +0000 (00:43 +0100)]
Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR

When using the '-w $cvsdir' option to cvsexportcommit, it will chdir into
$cvsdir before executing several other git commands. If $GIT_DIR is set to
a relative path (e.g. '.'), the git commands executed by cvsexportcommit
will naturally fail.

Therefore, ensure that $GIT_DIR is absolute before the chdir to $cvsdir.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
Johan Herland [Wed, 13 Feb 2008 03:11:22 +0000 (04:11 +0100)]
Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR

The testcase verifies that 'git cvsexportcommit' functions correctly when
the '-w' option is used, and GIT_DIR is set to a relative path (e.g. '.').

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoPrompt to continue when editing during rebase --interactive
Jonathan del Strother [Wed, 27 Feb 2008 12:50:22 +0000 (12:50 +0000)]
Prompt to continue when editing during rebase --interactive

On hitting an edit point in an interactive rebase, git should prompt
the user to run "git rebase --continue"

Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation/git svn log: add a note about timezones.
Miklos Vajna [Wed, 27 Feb 2008 13:13:00 +0000 (14:13 +0100)]
Documentation/git svn log: add a note about timezones.

git svn log mimics the timezone converting behaviour of svn log, but
this was undocumented.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'js/maint-http-push' into maint
Junio C Hamano [Wed, 27 Feb 2008 19:09:44 +0000 (11:09 -0800)]
Merge branch 'js/maint-http-push' into maint

* js/maint-http-push:
  http-push: avoid a needless goto
  http-push: do not get confused by submodules
  http-push: avoid invalid memory accesses

16 years agogit-p4: Support usage of perforce client spec
Tor Arvid Lund [Mon, 18 Feb 2008 14:22:08 +0000 (15:22 +0100)]
git-p4: Support usage of perforce client spec

When syncing, git-p4 will only download files that are included in the active
perforce client spec. This does not change the default behaviour - it requires
that the user either supplies the command line argument --use-client-spec, or
sets the git config option p4.useclientspec to "true".

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agogit-p4: git-p4 submit cleanups.
Simon Hausmann [Tue, 19 Feb 2008 08:37:16 +0000 (09:37 +0100)]
git-p4: git-p4 submit cleanups.

Removed storing the list of commits in a configuration file. We only need the list
of commits at run-time.

Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agogit-p4: Removed git-p4 submit --direct.
Simon Hausmann [Tue, 19 Feb 2008 08:33:08 +0000 (09:33 +0100)]
git-p4: Removed git-p4 submit --direct.

This feature was originally meant to allow for quicker direct submits into perforce, but
it turns out that it is not actually quicker than doing a git commit and then running
git-p4 submit.

Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agogit-p4: Clean up git-p4 submit's log message handling.
Simon Hausmann [Tue, 19 Feb 2008 08:29:06 +0000 (09:29 +0100)]
git-p4: Clean up git-p4 submit's log message handling.

Instead of trying to substitute fields in the p4 submit template we now simply
replace the description of the submit with the log message of the git commit.

Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agogit-p4: Remove --log-substitutions feature.
Simon Hausmann [Tue, 19 Feb 2008 08:12:29 +0000 (09:12 +0100)]
git-p4: Remove --log-substitutions feature.

This turns out to be rarely useful and is already covered by git's commit.template configuration variable.

Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agogit-p4: support exclude paths
Tommy Thorn [Sun, 3 Feb 2008 18:38:51 +0000 (10:38 -0800)]
git-p4: support exclude paths

Teach git-p4 about the -/ option which adds depot paths to the exclude
list, used when cloning. The option is chosen such that the natural
Perforce syntax works, eg:

  git p4 clone //branch/path/... -//branch/path/{large,old}/...

Trailing ... on exclude paths are optional.

This is a generalization of a change by Dmitry Kakurin (thanks).

Signed-off-by: Tommy Thorn <tommy-git@thorn.ws>
Signed-off-by: Simon Hausmann <simon@lst.de>
16 years agoDon't use GIT_CONFIG in t5505-remote
Daniel Barkalow [Tue, 26 Feb 2008 22:15:31 +0000 (17:15 -0500)]
Don't use GIT_CONFIG in t5505-remote

For some reason, t5505-remote was setting GIT_CONFIG to .git/config
and exporting it. This should have been no-op, as test framework did
the same for a long time anyway.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd '--fixed-strings' option to "git log --grep" and friends
Jakub Narebski [Tue, 26 Feb 2008 12:22:05 +0000 (13:22 +0100)]
Add '--fixed-strings' option to "git log --grep" and friends

Add support for -F | --fixed-strings option to "git log --grep"
and friends: "git log --author", "git log --committer=<pattern>".
Code is based on implementation of this option in "git grep".

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRevert "pack-objects: Print a message describing the number of threads for packing"
Junio C Hamano [Wed, 27 Feb 2008 07:27:31 +0000 (23:27 -0800)]
Revert "pack-objects: Print a message describing the number of threads for packing"

This reverts commit 6c723f5e6bc579e06a904874f1ceeb8ff2b5a17c.
The additional message may be interesting for git developers,
but not useful for the end users, and clutters the output.

16 years agogit-apply --whitespace=fix: fix off by one thinko
Junio C Hamano [Tue, 26 Feb 2008 20:24:40 +0000 (12:24 -0800)]
git-apply --whitespace=fix: fix off by one thinko

When a patch adds a whitespace followed by end-of-line, the
trailing whitespace error was detected correctly but was not
fixed, due to misconversion in 42ab241 (builtin-apply.c: do not
feed copy_wsfix() leading '+').

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Tue, 26 Feb 2008 08:14:22 +0000 (00:14 -0800)]
Merge branch 'maint'

* maint:
  Documentation/git-am.txt: Pass -r in the example invocation of rm -f .dotest
  timezone_names[]: fixed the tz offset for New Zealand.
  filter-branch documentation: non-zero exit status in command abort the filter
  rev-parse: fix potential bus error with --parseopt option spec handling
  Use a single implementation and API for copy_file()
  Documentation/git-filter-branch: add a new msg-filter example
  Correct fast-export file mode strings to match fast-import standard

16 years agoadd common fsck error printing function
Martin Koegler [Mon, 25 Feb 2008 21:46:09 +0000 (22:46 +0100)]
add common fsck error printing function

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-fsck: move common object checking code to fsck.c
Martin Koegler [Mon, 25 Feb 2008 21:46:08 +0000 (22:46 +0100)]
builtin-fsck: move common object checking code to fsck.c

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-fsck: reports missing parent commits
Martin Koegler [Mon, 25 Feb 2008 21:46:07 +0000 (22:46 +0100)]
builtin-fsck: reports missing parent commits

parse_commit ignores parent commits with certain errors
(eg. a non commit object is already loaded under the sha1 of
the parent). To make fsck reports such errors, it has to compare
the nummer of parent commits returned by parse commit with the
number of parent commits in the object or in the graft/shallow file.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRemove unused object-ref code
Martin Koegler [Mon, 25 Feb 2008 21:46:06 +0000 (22:46 +0100)]
Remove unused object-ref code

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-fsck: move away from object-refs to fsck_walk
Martin Koegler [Mon, 25 Feb 2008 21:46:05 +0000 (22:46 +0100)]
builtin-fsck: move away from object-refs to fsck_walk

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoadd generic, type aware object chain walker
Martin Koegler [Mon, 25 Feb 2008 21:46:04 +0000 (22:46 +0100)]
add generic, type aware object chain walker

The requirements are:
* it may not crash on NULL pointers
* a callback function is needed, as index-pack/unpack-objects
  need to do different things
* the type information is needed to check the expected <-> real type
  and print better error messages

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Better cutting matched string and its context
Jakub Narebski [Mon, 25 Feb 2008 20:07:57 +0000 (21:07 +0100)]
gitweb: Better cutting matched string and its context

Improve look of commit search output ('search' view) by better cutting
of matched string and its context in match info, as suggested by Junio.
For example, if you are looking for "very long search string" in the
following line:

    Could somebody test this with very long search string, and see how

you would now see:

    ...this with <<very long ... string>>, and see...

instead of:

    Could som... <<very long search...>>, and see...

(where <<something>> denotes emphasized / colored fragment; matched
fragment to be more exact).

For this feature, support for fourth [optional] parameter to chop_str
subroutine was added.  This fourth parameter is used to denote where
to cut string to make it shorter.  chop_str can now cut at the
beginning (from the _left_ side of the string), in the middle
(_center_ of the string), or at the end (from the _right_ side of
the string); cutting from right is the default:

  chop_str(somestring, len, slop, 'left')    ->  ' ...string'
  chop_str(somestring, len, slop, 'center')  ->  'som ... ing'
  chop_str(somestring, len, slop, 'right')   ->  'somestr... '

If you want to use default slop (default additional length), use undef
as value for third parameter to chop_str.

While at it, return from chop_str early if given string is so short
that chop_str couldn't shorten it.  Simplify also regexp used by
chop_str.  Make ellipsis (dots) stick to shortened fragment for
cutting at ends, to better see which part got shortened.

Simplify passing all arguments to chop_str in chop_and_escape_str
subroutine. This was needed to pass additional options to chop_str.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>