Code

git.git
16 years agoMerge branch 'jc/am'
Junio C Hamano [Sun, 9 Mar 2008 04:10:05 +0000 (20:10 -0800)]
Merge branch 'jc/am'

* jc/am:
  am: --rebasing
  am: remove support for -d .dotest
  am: read from the right mailbox when started from a subdirectory

16 years agoMerge branch 'cr/reset-parseopt'
Junio C Hamano [Sun, 9 Mar 2008 04:09:55 +0000 (20:09 -0800)]
Merge branch 'cr/reset-parseopt'

* cr/reset-parseopt:
  Make builtin-reset.c use parse_options.

16 years agoMerge branch 'jn/gitweb-pickaxe'
Junio C Hamano [Sun, 9 Mar 2008 04:09:51 +0000 (20:09 -0800)]
Merge branch 'jn/gitweb-pickaxe'

* jn/gitweb-pickaxe:
  gitweb: Fix and simplify pickaxe search

16 years agoMerge branch 'kb/maint-filter-branch-disappear'
Junio C Hamano [Sun, 9 Mar 2008 04:09:13 +0000 (20:09 -0800)]
Merge branch 'kb/maint-filter-branch-disappear'

* kb/maint-filter-branch-disappear:
  filter-branch: handle "disappearing tree" case correctly in subdir filter

16 years agoMerge branch 'maint' to sync with 1.5.4.4
Junio C Hamano [Sun, 9 Mar 2008 04:07:49 +0000 (20:07 -0800)]
Merge branch 'maint' to sync with 1.5.4.4

* maint:
  GIT 1.5.4.4
  ident.c: reword error message when the user name cannot be determined
  Fix dcommit, rebase when rewriteRoot is in use
  Really make the LF after reset in fast-import optional

16 years agoGIT 1.5.4.4 v1.5.4.4
Junio C Hamano [Sun, 9 Mar 2008 03:34:47 +0000 (19:34 -0800)]
GIT 1.5.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoident.c: reword error message when the user name cannot be determined
Santi Béjar [Sat, 8 Mar 2008 11:30:04 +0000 (12:30 +0100)]
ident.c: reword error message when the user name cannot be determined

The "config --global" suggested in the message is a valid one-shot fix,
and hopefully one-shot across machines that NFS mounts the home directories.

This knowledge can hopefully be reused when you are forced to use git on
Windows, but the fix based on GECOS would not be applicable, so
it is not such a useful hint to mention the exact reason why the
name cannot be determined.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix dcommit, rebase when rewriteRoot is in use
John Goerzen [Sat, 8 Mar 2008 22:04:05 +0000 (16:04 -0600)]
Fix dcommit, rebase when rewriteRoot is in use

When the rewriteRoot setting is used with git-svn, it causes the svn
IDs added to commit messages to bear a different URL than is actually
used to retrieve Subversion data.

It is common for Subversion repositories to be available multiple
ways: for instance, HTTP to the public, and svn+ssh to people with
commit access.  The need to switch URLs for access is fairly common as
well -- perhaps someone was just given commit access.  To switch URLs
without having to rewrite history, one can use the old url as a
rewriteRoot, and use the new one in the svn-remote url setting.

This works well for svn fetching and general git commands.

However, git-svn dcommit, rebase, and perhaps other commands do not
work in this scenario.  They scan the svn ID lines in commit messages
and attempt to match them up with url lines in [svn-remote] sections
in the git config.

This patch allows them to match rewriteRoot options, if such options
are present.

Signed-off-by: John Goerzen <jgoerzen@complete.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
16 years agofilter-branch: handle "disappearing tree" case correctly in subdir filter
Junio C Hamano [Sat, 8 Mar 2008 20:25:58 +0000 (12:25 -0800)]
filter-branch: handle "disappearing tree" case correctly in subdir filter

The subdirectory filter had a bug to notice that the commit in question
did not have anything in the path-limited part of the tree.  $commit:$path
does not name an empty tree when $path does not appear in $commit.

This should fix it.  The additional test in t7003 is originally from Kevin
Ballard but with fixups.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomerge-tool documentation: describe custom command usage
Charles Bailey [Sat, 8 Mar 2008 20:47:06 +0000 (20:47 +0000)]
merge-tool documentation: describe custom command usage

The configuration variables for custom merge tools were documented
only in config.txt but there was no reference to the functionality in
git-mergetool.txt.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-mergetool documentaiton: show toolnames in typewriter font
Charles Bailey [Sat, 8 Mar 2008 20:46:34 +0000 (20:46 +0000)]
git-mergetool documentaiton: show toolnames in typewriter font

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoReally make the LF after reset in fast-import optional
Adeodato Simó [Fri, 7 Mar 2008 20:22:17 +0000 (21:22 +0100)]
Really make the LF after reset in fast-import optional

cmd_from() ends with a call to read_next_command(), which is needed
when using cmd_from() from commands where from is not the last element.

With reset, however, "from" is the last command, after which the flow
returns to the main loop, which calls read_next_command() again.

Because of this, always set unread_command_buf in cmd_reset_branch(),
even if cmd_from() was successful.

Add a test case for this in t9300-fast-import.sh.

Signed-off-by: Adeodato Simó <dato@net.com.org.es>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'aw/maint-shortlog-blank-lines'
Junio C Hamano [Sat, 8 Mar 2008 10:23:42 +0000 (02:23 -0800)]
Merge branch 'aw/maint-shortlog-blank-lines'

* aw/maint-shortlog-blank-lines:
  shortlog: take the first populated line of the description

16 years agoMerge branch 'mh/maint-http-proxy-fix' into maint
Junio C Hamano [Sat, 8 Mar 2008 10:20:37 +0000 (02:20 -0800)]
Merge branch 'mh/maint-http-proxy-fix' into maint

* mh/maint-http-proxy-fix:
  Set proxy override with http_init()

16 years agoMerge branch 'js/maint-daemon' into maint
Junio C Hamano [Sat, 8 Mar 2008 10:20:30 +0000 (02:20 -0800)]
Merge branch 'js/maint-daemon' into maint

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

16 years agoMerge branch 'js/maint-cvsexport' into maint
Junio C Hamano [Sat, 8 Mar 2008 10:13:52 +0000 (02:13 -0800)]
Merge branch 'js/maint-cvsexport' into maint

* js/maint-cvsexport:
  cvsexportcommit: be graceful when "cvs status" reorders the arguments

Conflicts:

t/t9200-git-cvsexportcommit.sh

16 years agoMerge branch 'jc/maint-log-merge-left-right' into maint
Junio C Hamano [Sat, 8 Mar 2008 10:11:37 +0000 (02:11 -0800)]
Merge branch 'jc/maint-log-merge-left-right' into maint

* jc/maint-log-merge-left-right:
  Fix "git log --merge --left-right"

16 years agoMerge branch 'ew/maint-svn-cert-fileprovider' into maint
Junio C Hamano [Sat, 8 Mar 2008 10:11:32 +0000 (02:11 -0800)]
Merge branch 'ew/maint-svn-cert-fileprovider' into maint

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

16 years agoMerge branch 'maint'
Junio C Hamano [Sat, 8 Mar 2008 06:43:46 +0000 (22:43 -0800)]
Merge branch 'maint'

* maint:
  unquote_c_style: fix off-by-one.
  test-lib: fix TERM to dumb for test repeatability
  config.txt: refer to --upload-pack and --receive-pack instead of --exec
  git-gui: Gracefully fall back to po2msg.sh if msgfmt --tcl fails

16 years agosend-email: --no-signed-off-cc should suppress 'sob' cc
Junio C Hamano [Sat, 8 Mar 2008 06:12:13 +0000 (22:12 -0800)]
send-email: --no-signed-off-cc should suppress 'sob' cc

The logic to countermand suppression of Cc to the signers with a more
explicit --signed-off-by option done in 6564828 (git-send-email:
Generalize auto-cc recipient mechanism) suffers from a double-negation
error.

A --signed-off-cc option, when false, should actively suppress CC: to be
generated out of S-o-b lines, and it should refrain from suppressing when
it is true.

It also fixes "(sob) Adding cc:" status output; earlier it included the
line terminator LF inside '%s', which was totally bogus.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'js/reflog-delete'
Junio C Hamano [Sat, 8 Mar 2008 06:34:26 +0000 (22:34 -0800)]
Merge branch 'js/reflog-delete'

* js/reflog-delete:
  t3903-stash.sh: Add tests for new stash commands drop and pop
  git-reflog.txt: Document new commands --updateref and --rewrite
  t3903-stash.sh: Add missing '&&' to body of testcase
  git-stash: add new 'pop' subcommand
  git-stash: add new 'drop' subcommand
  git-reflog: add option --updateref to write the last reflog sha1 into the ref
  refs.c: make close_ref() and commit_ref() non-static
  git-reflog: add option --rewrite to update reflog entries while expiring
  reflog-delete: parse standard reflog options
  builtin-reflog.c: fix typo that accesses an unset variable
  Teach "git reflog" a subcommand to delete single entries

16 years agoMerge branch 'dc/format-pretty'
Junio C Hamano [Sat, 8 Mar 2008 06:33:26 +0000 (22:33 -0800)]
Merge branch 'dc/format-pretty'

* dc/format-pretty:
  log/show/whatchanged: introduce format.pretty configuration
  specify explicit "--pretty=medium" with `git log/show/whatchanged`
  whatchanged documentation: share description of --pretty with others

16 years agoMerge branch 'cb/mergetool'
Junio C Hamano [Sat, 8 Mar 2008 06:30:07 +0000 (22:30 -0800)]
Merge branch 'cb/mergetool'

* cb/mergetool:
  Add a very basic test script for git mergetool
  Teach git mergetool to use custom commands defined at config time
  Changed an internal variable of mergetool to support custom commands
  Tidy up git mergetool's backup file behaviour

16 years agounquote_c_style: fix off-by-one.
Pierre Habouzit [Thu, 6 Mar 2008 21:28:19 +0000 (22:28 +0100)]
unquote_c_style: fix off-by-one.

The optional endp parameter to unquote_c_style() was supposed to point at
a location past the closing double quote, but it was going one beyond it.

git-fast-import used this function heavily and the bug caused it to
misparse the input stream, especially when parsing a rename command:

R "filename that needs quoting" rename-target-name

Because the function erroneously ate the whitespace after the closing dq,
this triggered "Missing space after source" error when it shouldn't.

Thanks to Adeodato Simò for having caught this.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotest-lib: fix TERM to dumb for test repeatability
Junio C Hamano [Fri, 7 Mar 2008 03:04:26 +0000 (19:04 -0800)]
test-lib: fix TERM to dumb for test repeatability

Dscho noticed that Term::ReadLine (used by send-email) colorized its
output for his TERM settings, inside t9001 tests.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig.txt: refer to --upload-pack and --receive-pack instead of --exec
Uwe Kleine-König [Thu, 6 Mar 2008 20:28:07 +0000 (21:28 +0100)]
config.txt: refer to --upload-pack and --receive-pack instead of --exec

The options --upload-pack (of git-fetch-pack) and --receive-pack (of
git-push) do the same as --exec (for both commands).  But the former options
have the more descriptive name.

Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'ar/sgid-bsd'
Junio C Hamano [Fri, 7 Mar 2008 18:53:14 +0000 (10:53 -0800)]
Merge branch 'ar/sgid-bsd'

* ar/sgid-bsd:
  Do not use GUID on dir in git init --shared=all on FreeBSD

16 years agoMerge branch 'cc/run-command'
Junio C Hamano [Fri, 7 Mar 2008 18:53:10 +0000 (10:53 -0800)]
Merge branch 'cc/run-command'

* cc/run-command:
  run-command: Redirect stderr to a pipe before redirecting stdout to stderr

16 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Thu, 6 Mar 2008 08:18:23 +0000 (00:18 -0800)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Gracefully fall back to po2msg.sh if msgfmt --tcl fails

16 years agogitweb: Fix and simplify pickaxe search
Jakub Narebski [Wed, 5 Mar 2008 08:31:55 +0000 (09:31 +0100)]
gitweb: Fix and simplify pickaxe search

Instead of using "git-rev-list | git-diff-tree" pipeline for pickaxe
search, use git-log with appropriate options.  Besides reducing number
of forks by one, this allows to use list form of open, which in turn
allow to not worry about quoting arguments and to avoid forking shell.

The options to git-log were chosen to reduce required changes in
pickaxe git command output parsing; gitweb still parses returned
commits one by one.

Parsing "pickaxe" output is simplified: git_search now reuses
parse_difftree_raw_line and writes affected files as they arrive using
the fact that commit name goes always before [raw] diff.

While at it long bug of pickaxe search was fixed, namely that the last
commit found by pickaxe search was never shown.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoshortlog: take the first populated line of the description
Andy Whitcroft [Wed, 5 Mar 2008 14:24:10 +0000 (14:24 +0000)]
shortlog: take the first populated line of the description

Way back the perl version of shortlog would take the first populated line
of the commit body.  The builtin version mearly takes the first line.
This leads to empty shortlog entries when there is some viable text in
the commit.

Reinstate this behaviour igoring all lines with nothing but whitespace.
This is often useful when dealing with commits imported from foreign SCMs
that do not tidy up the log message of useless blank lines at the beginning.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDo not use GUID on dir in git init --shared=all on FreeBSD
Alex Riesen [Tue, 4 Mar 2008 23:15:39 +0000 (00:15 +0100)]
Do not use GUID on dir in git init --shared=all on FreeBSD

It does not allow changing the bit to a non-root user.
This fixes t1301-shared-repo.sh on the platform.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorun-command: Redirect stderr to a pipe before redirecting stdout to stderr
Christian Couder [Wed, 5 Mar 2008 07:35:16 +0000 (08:35 +0100)]
run-command: Redirect stderr to a pipe before redirecting stdout to stderr

With this patch, in the 'start_command' function after forking
we now take care of stderr in the child process before stdout.

This way if 'start_command' is called with a 'child_process'
argument like this:

.err = -1;
.stdout_to_stderr = 1;

then stderr will be redirected to a pipe before stdout is
redirected to stderr. So we can now get the process' stdout
from the pipe (as well as its stderr).

Earlier such a call would have redirected stdout to stderr
before stderr was itself redirected, and therefore stdout
would not have followed stderr, which would not have been
very useful anyway.

Update documentation in 'api-run-command.txt' accordingly.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake builtin-reset.c use parse_options.
Carlos Rica [Tue, 4 Mar 2008 22:11:34 +0000 (23:11 +0100)]
Make builtin-reset.c use parse_options.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobash: git-branch -d and -m lists only local branches
SZEDER Gábor [Tue, 4 Mar 2008 18:00:59 +0000 (19:00 +0100)]
bash: git-branch -d and -m lists only local branches

But still all branches are listed, if -r is present

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobash: add git-branch options
SZEDER Gábor [Tue, 4 Mar 2008 18:00:58 +0000 (19:00 +0100)]
bash: add git-branch options

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd a very basic test script for git mergetool
Charles Bailey [Thu, 21 Feb 2008 23:31:56 +0000 (23:31 +0000)]
Add a very basic test script for git mergetool

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTeach git mergetool to use custom commands defined at config time
Charles Bailey [Thu, 21 Feb 2008 23:31:12 +0000 (23:31 +0000)]
Teach git mergetool to use custom commands defined at config time

Currently git mergetool is restricted to a set of commands defined
in the script. You can subvert the mergetool.<tool>.path to force
git mergetool to use a different command, but if you have a command
whose invocation syntax does not match one of the current tools then
you would have to write a wrapper script for it.

This patch adds two git config variable patterns which allow a more
flexible choice of merge tool.

If you run git mergetool with -t/--tool or the merge.tool config
variable set to an unrecognized tool then git mergetool will query the
mergetool.<tool>.cmd config variable. If this variable exists, then git
mergetool will treat the specified tool as a custom command and will use
a shell eval to run the command with the documented shell variables set.

mergetool.<tool>.trustExitCode can be used to indicate that the exit
code of the custom command can be used to determine the success of the
merge.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoChanged an internal variable of mergetool to support custom commands
Charles Bailey [Thu, 21 Feb 2008 23:30:34 +0000 (23:30 +0000)]
Changed an internal variable of mergetool to support custom commands

The variable $path changes to $MERGED so that it is more consistent
with $BASE, $LOCAL and $REMOTE for future custom command lines.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTidy up git mergetool's backup file behaviour
Charles Bailey [Thu, 21 Feb 2008 23:30:02 +0000 (23:30 +0000)]
Tidy up git mergetool's backup file behaviour

Currently a backup pre-merge file with conflict markers is sometimes
kept with a .orig extenstion and sometimes removed depending on the
particular merge tool used.

This patch makes the handling consistent across all merge tools and
configurable via a new mergetool.keepBackup config variable

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agolog/show/whatchanged: introduce format.pretty configuration
Denis Cheng [Sun, 2 Mar 2008 09:05:53 +0000 (17:05 +0800)]
log/show/whatchanged: introduce format.pretty configuration

When running log/show/whatchanged from the command line, the user may
want to use a preferred format without having to pass --pretty=<fmt>
option every time from the command line.  This teaches these three
commands to honor a new configuration variable, format.pretty.

The --pretty option given from the command line will override the
configured format.

The earlier patch fixed the in-tree callers that run these commands
for purposes other than showing the output directly to the end user
(the only other in-tree caller is "git bisect visualize", whose output
directly goes to the end user and should be affected by this patch).

Similar fixes will be needed for end-user scripts that parse the
output from these commands and expect them to be in the default pretty
format.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agospecify explicit "--pretty=medium" with `git log/show/whatchanged`
Denis Cheng [Sun, 2 Mar 2008 09:05:52 +0000 (17:05 +0800)]
specify explicit "--pretty=medium" with `git log/show/whatchanged`

The following patch will introduce a new configuration variable,
"format.pretty", from then on the pretty format without specifying
"--pretty" might not be the default "--pretty=medium", it depends on
the user's config. So all kinds of Shell/Perl/Emacs scripts that needs
the default medium pretty format must specify it explicitly.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agowhatchanged documentation: share description of --pretty with others
Denis Cheng [Sun, 2 Mar 2008 09:05:51 +0000 (17:05 +0800)]
whatchanged documentation: share description of --pretty with others

The documentation had its own description for --pretty and did not
include pretty-options/formats as documentation for other commands in
the "log" family did.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoam: --rebasing
Junio C Hamano [Tue, 4 Mar 2008 08:25:06 +0000 (00:25 -0800)]
am: --rebasing

The new option --rebasing is used internally for rebase to tell am that
it is being used for its purpose.  This would leave .dotest/rebasing to
help "completion" scripts tell if the ongoing operation is am or rebase.

Also the option at the same time stands for --binary, -3 and -k which
are always given when rebase drives am as its backend.

Using the information "am" leaves, git-completion.bash tells ongoing
rebase and am apart.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoam: remove support for -d .dotest
Junio C Hamano [Tue, 4 Mar 2008 08:25:05 +0000 (00:25 -0800)]
am: remove support for -d .dotest

It has been supported for a long time, but I do not think this feature has
been in use in the real world at all.  We would eventually move this out
of the toplevel of the work tree and to somewhere under $GIT_DIR, so let's
remove the command line option to specify the location now.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoam: read from the right mailbox when started from a subdirectory
Junio C Hamano [Tue, 4 Mar 2008 08:25:04 +0000 (00:25 -0800)]
am: read from the right mailbox when started from a subdirectory

An earlier commit c149184 (allow git-am to run in a subdirectory) taught
git-am to start from a subdirectory by going up to the root of the work
tree byitself, but it did not adjust the path to read the mbox from when
it did so.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofsck.c: fix bogus "empty tree" check
Junio C Hamano [Tue, 4 Mar 2008 10:02:35 +0000 (02:02 -0800)]
fsck.c: fix bogus "empty tree" check

ba002f3 (builtin-fsck: move common object checking code to fsck.c) did
more than what it claimed to.  Most notably, it wrongly made an empty tree
object an error by pretending to only move code from fsck_tree() in
builtin-fsck.c to fsck_tree() in fsck.c, but in fact adding a bogus check
to barf on an empty tree.

An empty tree object is _unusual_.  Recent porcelains try reasonably hard
not to let the user create a commit that contains such a tree.  Perhaps
warning about them in git-fsck may have some merit.

HOWEVER.

Being unusual and being errorneous are two quite different things.  This
is especially true now we seem to use the same fsck_$object() code in
places other than git-fsck itself.  For example, receive-pack should not
reject unusual objects, even if it would be a good idea to tighten it to
reject incorrect ones.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-gui: Gracefully fall back to po2msg.sh if msgfmt --tcl fails
Shawn O. Pearce [Thu, 28 Feb 2008 00:29:34 +0000 (19:29 -0500)]
git-gui: Gracefully fall back to po2msg.sh if msgfmt --tcl fails

Mac OS X Tiger may have a msgfmt available but it doesn't understand
how to implement --tcl.  Falling back to po2msg.sh on such systems
is a reasonable behavior.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoRevert "unpack-objects: prevent writing of inconsistent objects"
Junio C Hamano [Tue, 4 Mar 2008 11:11:30 +0000 (03:11 -0800)]
Revert "unpack-objects: prevent writing of inconsistent objects"

This reverts commit d5ef408b9afb5b4417f4e7e1593a96302d666650.

16 years agoRevert "receive-pack: use strict mode for unpacking objects"
Junio C Hamano [Tue, 4 Mar 2008 11:11:06 +0000 (03:11 -0800)]
Revert "receive-pack: use strict mode for unpacking objects"

This reverts commit 28f72a0f232dfc71b3be726e7e71d0a6d5f9ebba.

16 years agoMerge branch 'maint'
Junio C Hamano [Tue, 4 Mar 2008 08:34:39 +0000 (00:34 -0800)]
Merge branch 'maint'

* maint:
  Fix 'git remote show' regression on empty repository in 1.5.4
  Fix incorrect wording in git-merge.txt.
  git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
  Fix random crashes in http_cleanup()

16 years agoFix 'git remote show' regression on empty repository in 1.5.4
Shawn O. Pearce [Tue, 4 Mar 2008 06:00:36 +0000 (01:00 -0500)]
Fix 'git remote show' regression on empty repository in 1.5.4

Back in 18f7c51c we switched git-ls-remote/git-peek-remote to
use the transport backend, rather than do everything itself.

As part of that switch we started to produce a non-zero exit
status if no refs were received from the remote peer, which
happens when the remote peer has no commits pushed to it yet.
(E.g. "git --git-dir=foo.git init; git ls-remote foo.git")

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot3407-rebase-abort.sh: Enhance existing tests, and add test for rebase --merge
Mike Hommey [Sat, 1 Mar 2008 11:12:13 +0000 (12:12 +0100)]
t3407-rebase-abort.sh: Enhance existing tests, and add test for rebase --merge

Removing .dotest should actually not be needed, so just test the directory
don't exist after --abort, but exists after starting the rebase.

Also, execute the same tests with rebase --merge, which uses a different code
path.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-p4: Fix import of changesets with file deletions
Simon Hausmann [Mon, 3 Mar 2008 10:55:48 +0000 (11:55 +0100)]
git-p4: Fix import of changesets with file deletions

Commit 3a70cdfa42199e16d2d047c286431c4274d65b1a made readP4Files abort quickly
when the changeset only contains files that are marked for deletion with an empty return
value, which caused the commit to not do anything.

This commit changes readP4Files to distinguish between files that need to be passed to p4
print and files that have no content ("deleted") and merge them in the returned
list.

Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix test for cleanup failure in t7300 on Windows
Alex Riesen [Mon, 3 Mar 2008 23:48:56 +0000 (00:48 +0100)]
Fix test for cleanup failure in t7300 on Windows

Keep the file open to: the OS does not allow removal of open files.
The saner systems just have a saner permission model and chmod 0
is enough for the test.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot6120 (describe): check --long properly
Junio C Hamano [Tue, 4 Mar 2008 02:29:51 +0000 (18:29 -0800)]
t6120 (describe): check --long properly

Existing test checked --long only for exactly tagged commit.  We should
make sure it works sensibly for commits that are not tagged.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd git-describe test for "verify annotated tag names on output"
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:38 +0000 (20:09 -0500)]
Add git-describe test for "verify annotated tag names on output"

Back in 212945d4 ("Teach git-describe to verify annotated tag names
before output") I taught git-describe to output the name shown in the
"tag" header of an annotated tag, rather than the name it is actually
stored under in this repository's ref namespace.

This test case verifies this is working correctly by renaming the ref
for an annotated tag to a different name that what is recorded in the
tag body, and verifying that tag is returned.  We also verify there is
a message shown on stderr to inform the user that the tag is possibly
stored under the wrong name locally.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTest for packed tags in git-describe output
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:35 +0000 (20:09 -0500)]
Test for packed tags in git-describe output

In c374b91c ("git-describe: use tags found in packed-refs correctly")
Junio fixed an issue where git-describe did not parse a tag object it
obtained from a packed-refs file, as the peel information was read in
from packed-refs and not the tag object itself.

This new test case verifies the fix listed above is functioning, and
does not have a regression in the future.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDon't allow git-describe failures to go unnoticed in t6120
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:31 +0000 (20:09 -0500)]
Don't allow git-describe failures to go unnoticed in t6120

If git-describe fails we never execute the test_expect_success,
so we never actually test for failure.  This is horribly wrong.
We need to always run the test case, but the test case is only
supposed to succeed if the prior git-describe returned 0.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodescribe: re-fix display_name()
Junio C Hamano [Mon, 3 Mar 2008 23:54:23 +0000 (15:54 -0800)]
describe: re-fix display_name()

It is implausible for lookup_tag() to return NULL in this particular
codepath but we should protect ourselves against a broken repository
better.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix incorrect wording in git-merge.txt.
Matthieu Moy [Mon, 3 Mar 2008 17:52:49 +0000 (18:52 +0100)]
Fix incorrect wording in git-merge.txt.

A merge is not necessarily with a remote branch, it can be with any
commit.

Thanks to Paolo Ciarrocchi for pointing out the problem, and to
Nicolas Pitre for pointing out the fact that a merge is not
necessarily with a branch head.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
Gerrit Pape [Mon, 3 Mar 2008 09:22:03 +0000 (09:22 +0000)]
git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options

git-merge used to use either the --squash,--no-squash, --no-ff,--ff,
--no-commit,--commit option, whichever came last in the command line.
This lead to some un-intuitive behavior, having

 git merge --no-commit --no-ff <branch>

actually commit the merge.  Now git-merge respects --no-commit together
with --no-ff, as well as other combinations of the options.  However,
this broke a selftest in t/t7600-merge.sh which expected to have --no-ff
completely override the --squash option, so that

 git merge --squash --no-ff <branch>

fast-forwards, and makes a merge commit; combining --squash with --no-ff
doesn't really make sense though, and is now refused by git-merge.  The
test is adapted to test --no-ff without the preceding --squash, and
another test is added to make sure the --squash --no-ff combination is
refused.

The unexpected behavior was reported by John Goerzen through
 http://bing.sdebian.org/468568

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix random crashes in http_cleanup()
Mike Hommey [Mon, 3 Mar 2008 19:30:16 +0000 (20:30 +0100)]
Fix random crashes in http_cleanup()

For some reason, http_cleanup was running all active slots, which could
lead in situations where a freed slot would be accessed in
fill_active_slots. OTOH, we are cleaning up, which means the caller
doesn't care about pending requests. Just forget about them instead
or running them.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodescribe: fix --long output
Junio C Hamano [Mon, 3 Mar 2008 21:08:26 +0000 (13:08 -0800)]
describe: fix --long output

An error while hand-merging broke the new "--long" option.

This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-describe: use tags found in packed-refs correctly
Junio C Hamano [Mon, 3 Mar 2008 17:24:17 +0000 (09:24 -0800)]
git-describe: use tags found in packed-refs correctly

When your refs are packed, "git-describe" can find the tag that is the
best match without ever parsing the tag itself.  But lookup_tag() in
display_name() says "I've never seen it", creates an empty shell, and
returns it.  We need to make sure that we actually have parsed the tag
data into it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot3903-stash.sh: Add tests for new stash commands drop and pop
Brandon Casey [Sun, 2 Mar 2008 20:58:51 +0000 (14:58 -0600)]
t3903-stash.sh: Add tests for new stash commands drop and pop

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-reflog.txt: Document new commands --updateref and --rewrite
Brandon Casey [Sun, 2 Mar 2008 20:58:50 +0000 (14:58 -0600)]
git-reflog.txt: Document new commands --updateref and --rewrite

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot3903-stash.sh: Add missing '&&' to body of testcase
Brandon Casey [Sun, 2 Mar 2008 20:58:48 +0000 (14:58 -0600)]
t3903-stash.sh: Add missing '&&' to body of testcase

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge commit '74359821' into js/reflog-delete
Junio C Hamano [Mon, 3 Mar 2008 09:20:19 +0000 (01:20 -0800)]
Merge commit '74359821' into js/reflog-delete

* commit '74359821': (128 commits)
  tests: introduce test_must_fail
  Fix builtin checkout crashing when given an invalid path
  templates/Makefile: don't depend on local umask setting
  Correct name of diff_flush() in API documentation
  Start preparing for 1.5.4.4
  format-patch: remove a leftover debugging message
  completion: support format-patch's --cover-letter option
  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
  git-svn: Don't prompt for client cert password everytime.
  git.el: Do not display empty directories.
  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.
  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.
  ...

16 years agofetch-pack: check parse_commit/object results
Martin Koegler [Mon, 3 Mar 2008 06:31:23 +0000 (07:31 +0100)]
fetch-pack: check parse_commit/object results

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.5.5
Junio C Hamano [Mon, 3 Mar 2008 06:04:59 +0000 (22:04 -0800)]
Update draft release notes for 1.5.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Mon, 3 Mar 2008 07:59:50 +0000 (23:59 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes for 1.5.4.4
  revert: actually check for a dirty index
  tests: introduce test_must_fail
  git-submodule: Fix typo 'url' which should be '$url'
  receive-pack: Initialize PATH to include exec-dir.

Conflicts:

builtin-revert.c

16 years agoUpdate draft release notes for 1.5.4.4
Junio C Hamano [Mon, 3 Mar 2008 05:49:28 +0000 (21:49 -0800)]
Update draft release notes for 1.5.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorevert: actually check for a dirty index
Jeff King [Mon, 3 Mar 2008 06:30:56 +0000 (01:30 -0500)]
revert: actually check for a dirty index

The previous code mistakenly used wt_status_prepare to check whether the
index had anything commitable in it; however, that function is just an
init function, and will never report a dirty index.

The correct way with wt_status_* would be to call wt_status_print with the
output pointing to /dev/null or similar. However, that does extra work by
both examining the working tree and spewing status information to nowhere.

Instead, let's just implement the useful subset of wt_status_print as an
"is_index_dirty" function.

Signed-off-by: Jeff King <peff@peff.net>
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 agogit-submodule: Fix typo 'url' which should be '$url'
Ping Yin [Mon, 3 Mar 2008 02:03:18 +0000 (10:03 +0800)]
git-submodule: Fix typo 'url' which should be '$url'

Fix typo in 'test -z "url"' when checking whether a submodule url is
empty. "url" should be "$url".

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoreceive-pack: Initialize PATH to include exec-dir.
Björn Steinbrink [Mon, 3 Mar 2008 04:08:43 +0000 (05:08 +0100)]
receive-pack: Initialize PATH to include exec-dir.

511707d (use only the $PATH for exec'ing git commands) made it a
requirement to call setup_path() to include the git exec-dir in PATH
before spawning any other git commands. git-receive-pack was not yet
adapted to do this and therefore fails to spawn git-unpack-objects if that
is not in the standard PATH.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix doc typos.
Ralf Wildenhues [Sun, 2 Mar 2008 23:07:47 +0000 (00:07 +0100)]
Fix doc typos.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofast-import: exit with proper message if not a git dir
Jean-Luc Herren [Thu, 28 Feb 2008 22:29:54 +0000 (23:29 +0100)]
fast-import: exit with proper message if not a git dir

git fast-import expects to be run from an existing (possibly
empty) repository.  It was dying with a suboptimal message if that
wasn't the case.

Signed-off-by: Jean-Luc Herren <jlh@gmx.ch>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'np/verify-pack'
Junio C Hamano [Mon, 3 Mar 2008 00:07:30 +0000 (16:07 -0800)]
Merge branch 'np/verify-pack'

* np/verify-pack:
  add storage size output to 'git verify-pack -v'
  fix unimplemented packed_object_info_detail() features
  make verify_one_pack() a bit less wrong wrt packed_git structure
  factorize revindex code out of builtin-pack-objects.c

Conflicts:

Makefile

16 years agoformat-patch: wrap cover-letter's shortlog sensibly
Johannes Schindelin [Sun, 2 Mar 2008 15:53:39 +0000 (15:53 +0000)]
format-patch: wrap cover-letter's shortlog sensibly

Earlier, overly-long onelines would not be wrapped at all, and indented
with 6 spaces.

Instead, we now wrap around at 72 characters, with a first-line indent
of 2 spaces, and the rest with 4 spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoformat-patch: use the diff options for the cover letter, too
Johannes Schindelin [Sun, 2 Mar 2008 15:53:04 +0000 (15:53 +0000)]
format-patch: use the diff options for the cover letter, too

Earlier, when you called "git format-patch --cover-letter -M", the
diffstat in the cover letter would not inherit the "-M".  Now it does.

While at it, add a few "|| break" statements in the test's loops;
otherwise, breakages inside the loops would not be caught.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Mark first match when searching commit messages
Jakub Narebski [Sun, 2 Mar 2008 15:57:14 +0000 (16:57 +0100)]
gitweb: Mark first match when searching commit messages

Due to greediness of a pattern, gitweb used to mark (show) last match
in line, if there are more than one match in line. Now it shows first.
Showing all matches in a line would require further work.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'sp/describe-tag'
Junio C Hamano [Sun, 2 Mar 2008 23:19:59 +0000 (15:19 -0800)]
Merge branch 'sp/describe-tag'

* sp/describe-tag:
  Teach git-describe to verify annotated tag names before output

Conflicts:

builtin-describe.c

16 years agoMerge branch 'pb/cvsimport'
Junio C Hamano [Sun, 2 Mar 2008 23:12:27 +0000 (15:12 -0800)]
Merge branch 'pb/cvsimport'

* pb/cvsimport:
  cvsimport: document that -M can be used multiple times
  cvsimport: allow for multiple -M options
  cvsimport: have default merge regex allow for dashes in the branch name

16 years agoMerge branch 'jc/maint-log-merge-left-right'
Junio C Hamano [Sun, 2 Mar 2008 23:12:04 +0000 (15:12 -0800)]
Merge branch 'jc/maint-log-merge-left-right'

* jc/maint-log-merge-left-right:
  Fix "git log --merge --left-right"

16 years agoMerge branch 'mh/maint-http-proxy-fix'
Junio C Hamano [Sun, 2 Mar 2008 23:11:26 +0000 (15:11 -0800)]
Merge branch 'mh/maint-http-proxy-fix'

* mh/maint-http-proxy-fix:
  Set proxy override with http_init()

16 years agoMerge branch 'cb/http-test'
Junio C Hamano [Sun, 2 Mar 2008 23:11:23 +0000 (15:11 -0800)]
Merge branch 'cb/http-test'

* cb/http-test:
  http-push: add regression tests
  http-push: push <remote> :<branch> deletes remote branch

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>