Code

git.git
14 years agoMerge branch 'bw/template-tool-buildconfig'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bw/template-tool-buildconfig'

* bw/template-tool-buildconfig:
  Modernize git calling conventions in hook templates
  Make templates honour SHELL_PATH and PERL_PATH

14 years agoMerge branch 'mg/mailmap-update'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'mg/mailmap-update'

* mg/mailmap-update:
  .mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

14 years agoMerge branch 'bc/t5505-fix'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bc/t5505-fix'

* bc/t5505-fix:
  t/t5505-remote.sh: escape * to prevent interpretation by shell as glob
  t5505: add missing &&
  t5505: remove unnecessary subshell invocations

14 years agoMerge branch 'gh/maint-stash-show-error-message'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'gh/maint-stash-show-error-message'

* gh/maint-stash-show-error-message:
  Improve error messages from 'git stash show'

14 years agoMerge branch 'rs/threaded-grep-context'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'rs/threaded-grep-context'

* rs/threaded-grep-context:
  grep: enable threading for context line printing

Conflicts:
grep.c

14 years agoMerge branch 'bc/maint-daemon-sans-ss-family'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'bc/maint-daemon-sans-ss-family'

* bc/maint-daemon-sans-ss-family:
  daemon.c: avoid accessing ss_family member of struct sockaddr_storage

14 years agoMerge branch 'bc/acl-test'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'bc/acl-test'

* bc/acl-test:
  t/t1304: make a second colon optional in the mask ACL check
  t/t1304: set the ACL effective rights mask
  t/t1304: use 'test -r' to test readability rather than looking at mode bits
  t/t1304: set the Default ACL base entries
  t/t1304: avoid -d option to setfacl

14 years agoMerge branch 'ja/send-email-ehlo'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'ja/send-email-ehlo'

* ja/send-email-ehlo:
  git-send-email.perl - try to give real name of the calling host to HELO/EHLO
  git-send-email.perl: add option --smtp-debug
  git-send-email.perl: improve error message in send_message()

14 years agoMerge branch 'do/rebase-i-arbitrary'
Junio C Hamano [Sat, 3 Apr 2010 19:28:38 +0000 (12:28 -0700)]
Merge branch 'do/rebase-i-arbitrary'

* do/rebase-i-arbitrary:
  rebase--interactive: don't require what's rebased to be a branch

Conflicts:
t/t3404-rebase-interactive.sh

14 years agoMerge branch 'ak/everyday-git'
Junio C Hamano [Sat, 3 Apr 2010 19:28:38 +0000 (12:28 -0700)]
Merge branch 'ak/everyday-git'

* ak/everyday-git:
  everyday: fsck and gc are not everyday operations

14 years agoMakefile: future-proof Cygwin version check
Jonathan Nieder [Sat, 3 Apr 2010 07:47:00 +0000 (02:47 -0500)]
Makefile: future-proof Cygwin version check

Tweak the condition that detects old Cygwin versions to not include
versions such as 1.8, 1.11, and 2.1.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix _XOPEN_SOURCE problem on DragonFly
YONETANI Tomokazu [Fri, 2 Apr 2010 07:52:09 +0000 (16:52 +0900)]
Fix _XOPEN_SOURCE problem on DragonFly

As on FreeBSD, defining _XOPEN_SOURCE to 600 on DragonFly BSD 2.4-RELEASE
or later hides symbols from programs, which leads to implicit declaration
of functions, making the return value to be assumed an int.  On architectures
where sizeof(int) < sizeof(void *), this can cause unexpected behaviors or
crashes.
This change won't affect other OSes unless they define __DragonFly__ macro,
or older versions of DragonFly BSD as the current git code doesn't rely on
the features only available with _XOPEN_SOURCE set to 600 on DragonFly.

Signed-off-by: YONETANI Tomokazu <y0netan1@dragonflybsd.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/commit: remove unnecessary variable definition
Markus Heidelberg [Fri, 2 Apr 2010 12:27:19 +0000 (14:27 +0200)]
builtin/commit: remove unnecessary variable definition

The file descriptor is already defined at the beginning of the function.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/commit: fix duplicated sentence in a comment
Markus Heidelberg [Fri, 2 Apr 2010 12:27:18 +0000 (14:27 +0200)]
builtin/commit: fix duplicated sentence in a comment

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoIntegrate version 3 ciabot scripts into contrib/.
Eric Raymond [Fri, 2 Apr 2010 10:10:11 +0000 (06:10 -0400)]
Integrate version 3 ciabot scripts into contrib/.

These have been extensively live-tested in the last week. The version 2
ciabot.sh maintainer has passed the baton to me; ciabot.py is original.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: update defaults for modern Cygwin
Eric Blake [Thu, 1 Apr 2010 22:43:54 +0000 (16:43 -0600)]
Makefile: update defaults for modern Cygwin

Now that Cygwin 1.7.x has enabled lots of new features, and Cygwin 1.5
is no longer actively supported by the Cygwin mailing lists, we might
as well update the defaults to cater to those new features.

NO_TRUSTABLE_FILEMODE is only necessary on FAT drives; the Cygwin
community recommends NTFS drives, but there is still too much use
for FAT to switch the default.  Likewise, UNRELIABLE_FSTAT is probably
file-system specific, but worth keeping unchanged.

This commit does not change the default for NO_MMAP, although definitive
proof of whether this option is necessary is lacking.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.0.4
Junio C Hamano [Wed, 31 Mar 2010 22:14:27 +0000 (15:14 -0700)]
Sync with 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.0.4 v1.7.0.4
Junio C Hamano [Wed, 31 Mar 2010 22:12:08 +0000 (15:12 -0700)]
Git 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-refs-dangling' into maint
Junio C Hamano [Wed, 31 Mar 2010 22:09:32 +0000 (15:09 -0700)]
Merge branch 'jc/maint-refs-dangling' into maint

* jc/maint-refs-dangling:
  refs: ref entry with NULL sha1 is can be a dangling symref

14 years agoDocumentation: show-ref <pattern>s are optional
Holger Weiß [Mon, 29 Mar 2010 11:02:37 +0000 (13:02 +0200)]
Documentation: show-ref <pattern>s are optional

Specifying one or more <pattern> parameters is optional when calling
show-ref, so mark them as such using brackets in the manual.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoLink against libiconv on IRIX
Holger Weiß [Mon, 29 Mar 2010 10:57:48 +0000 (12:57 +0200)]
Link against libiconv on IRIX

On IRIX, "-liconv" must be added to the linker command line in order to
get iconv(3) support; set the according Makefile variable appropriately.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDon't redefine htonl and ntohl on big-endian
Holger Weiß [Mon, 29 Mar 2010 10:22:19 +0000 (12:22 +0200)]
Don't redefine htonl and ntohl on big-endian

Since commit 0fcabdeb52b79775173d009ccc179db104dfbb66, compat/bswap.h
redefined htonl and ntohl to bswap32 not only if bswap32 has been
defined earlier in compat/bswap.h (which is done only on selected
platforms), but also if bswap32 has been defined anywhere else.  This
broke Git at least for NetBSD systems running on big-endian machines
(where ntohl and htonl should, of course, be NOOPs), since NetBSD
defines a bswap32 macro in the system headers.

So, we now undefine any previously defined bswap32 in compat/bswap.h
before defining our own.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: git_get_project_config requires only $git_dir, not also $project
Jakub Narebski [Sat, 27 Mar 2010 19:26:59 +0000 (20:26 +0100)]
gitweb: git_get_project_config requires only $git_dir, not also $project

Fix overeager early return in git_get_project_config, introduced in 9be3614
(gitweb: Fix project-specific feature override behavior, 2010-03-01).  When
git_get_project_config is called from projects list page via
git_get_project_owner($path) etc., it is called with $git_dir defined (in
git_get_project_owner($path) etc.), but $project variable is not defined.
git_get_project_config doesn't use $project variable anyway.

Reported-by: Tobias Heinlein <keytoaster@gentoo.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdated the usage string of git reset
Jan Stępień [Wed, 31 Mar 2010 09:24:19 +0000 (11:24 +0200)]
Updated the usage string of git reset

Make git reset usage string reflect the command's behaviour and contents of
the man page.

Signed-off-by: Jan Stępień <jstepien@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: Clarify support for smart HTTP backend
Greg Bacon [Tue, 30 Mar 2010 17:20:57 +0000 (12:20 -0500)]
Documentation: Clarify support for smart HTTP backend

In the description of http.getanyfile, replace the vague "older Git
clients" with the earliest release whose client is able to use the
upload pack service.

Signed-off-by: Greg Bacon <gbacon@dbresearch.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoWindows: fix utime() for read-only files
Johannes Sixt [Tue, 30 Mar 2010 07:46:23 +0000 (09:46 +0200)]
Windows: fix utime() for read-only files

Starting with 5256b00 (Use git_mkstemp_mode instead of plain mkstemp to
create object files, 2010-02-22) utime() is invoked on read-only files.
This is not allowed on Windows and results in many warnings of the form

failed utime() on .git/objects/23/tmp_obj_VlgHlc: Permission denied

during a repack.  Fix it by making the file temporarily writable.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff: fix textconv error zombies
Johannes Sixt [Tue, 30 Mar 2010 17:36:03 +0000 (19:36 +0200)]
diff: fix textconv error zombies

To make the code simpler, run_textconv lumps all of its
error checking into one conditional. However, the
short-circuit means that an error in reading will prevent us
from calling finish_command, leaving a zombie child.
Clean up properly after errors.

Based-on-work-by: Jeff King <peff@peff.net>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 30 Mar 2010 04:29:24 +0000 (21:29 -0700)]
Merge branch 'maint'

* maint:
  format-patch: Squelch 'fatal: Not a range." error

14 years agoformat-patch: Squelch 'fatal: Not a range." error
Kevin Ballard [Tue, 30 Mar 2010 02:46:38 +0000 (19:46 -0700)]
format-patch: Squelch 'fatal: Not a range." error

Don't output an error on `git format-patch --ignore-if-in-upstream HEAD`.
This matches the behavior of `git format-patch HEAD`.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.1
Junio C Hamano [Mon, 29 Mar 2010 04:57:59 +0000 (21:57 -0700)]
Update draft release notes to 1.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cc/cherry-pick-ff'
Junio C Hamano [Mon, 29 Mar 2010 04:52:28 +0000 (21:52 -0700)]
Merge branch 'cc/cherry-pick-ff'

* cc/cherry-pick-ff:
  revert: fix tiny memory leak in cherry-pick --ff
  rebase -i: use new --ff cherry-pick option
  Documentation: describe new cherry-pick --ff option
  cherry-pick: add tests for new --ff option
  revert: add --ff option to allow fast forward when cherry-picking
  builtin/merge: make checkout_fast_forward() non static
  parse-options: add parse_options_concat() to concat options

14 years agoMerge branch 'sb/notes-parse-opt'
Junio C Hamano [Mon, 29 Mar 2010 04:52:28 +0000 (21:52 -0700)]
Merge branch 'sb/notes-parse-opt'

* sb/notes-parse-opt:
  notes: rework subcommands and parse options

Conflicts:
builtin/notes.c

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 29 Mar 2010 04:52:18 +0000 (21:52 -0700)]
Merge branch 'maint'

* maint:
  Prepare for 1.7.0.4

Conflicts:
RelNotes

14 years agorebase -i: make post-rewrite work for 'edit'
Thomas Rast [Sun, 28 Mar 2010 19:36:00 +0000 (21:36 +0200)]
rebase -i: make post-rewrite work for 'edit'

The post-rewrite support, in the form of the call to
'record_in_rewritten', was hidden in the arm where we have to record a
new commit for the user.  This meant that it was never invoked in the
case where the user has already amended the commit by herself.

[The test is designed to exercise both arms of the 'if' in question.]

Furthermore, recording the stopped-sha (the SHA1 of the commit before
the editing) suffered from a cut&paste error from die_with_patch and
used the wrong variable, hence it never recorded anything.

Noticed by Junio.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoPrepare for 1.7.0.4
Junio C Hamano [Mon, 29 Mar 2010 04:32:25 +0000 (21:32 -0700)]
Prepare for 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cp/add-u-pathspec' into maint
Junio C Hamano [Mon, 29 Mar 2010 04:21:42 +0000 (21:21 -0700)]
Merge branch 'cp/add-u-pathspec' into maint

* cp/add-u-pathspec:
  test for add with non-existent pathspec
  git add -u: die on unmatched pathspec

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 29 Mar 2010 00:42:58 +0000 (17:42 -0700)]
Merge branch 'maint'

* maint:
  t9350: fix careless use of "cd"
  difftool: Fix '--gui' when diff.guitool is unconfigured
  fast-export: don't segfault when marks file cannot be opened

14 years agot9350: fix careless use of "cd"
Junio C Hamano [Mon, 29 Mar 2010 00:42:11 +0000 (17:42 -0700)]
t9350: fix careless use of "cd"

Upon failure of any of these tests (or when a test that is marked as
expecting a failure is fixed), we will end up running later tests in
random places.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodifftool: Fix '--gui' when diff.guitool is unconfigured
David Aguilar [Sat, 27 Mar 2010 21:58:09 +0000 (14:58 -0700)]
difftool: Fix '--gui' when diff.guitool is unconfigured

When diff.guitool is unconfigured and "--gui" is specified
git-difftool dies with the following error message:

config diff.guitool: command returned error: 1

Catch the error so that the "--gui" flag is a no-op when
diff.guitool is unconfigured.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-export: don't segfault when marks file cannot be opened
Sverre Rabbelier [Sun, 28 Mar 2010 05:42:48 +0000 (00:42 -0500)]
fast-export: don't segfault when marks file cannot be opened

The error function only prints an error message, resulting in a
segfault if we later on try to fprintf to a NULL handle.

Fix this by using die_errno instead.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoimap-send: suppress warning about cleartext password with CRAM-MD5
Chris Webb [Sat, 27 Mar 2010 15:00:19 +0000 (15:00 +0000)]
imap-send: suppress warning about cleartext password with CRAM-MD5

If a CRAM-MD5 challenge-response is used to authenticate to the IMAP server,
git imap-send shouldn't warn about the password being sent in the clear.

Signed-off-by: Chris Webb <chris@arachsys.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jh/maint-submodule-status-in-void'
Junio C Hamano [Wed, 24 Mar 2010 23:55:37 +0000 (16:55 -0700)]
Merge branch 'jh/maint-submodule-status-in-void'

* jh/maint-submodule-status-in-void:
  git submodule summary: Handle HEAD as argument when on an unborn branch
  submodule summary: do not fail before the first commit

14 years agoMerge branch 'tr/notes-display'
Junio C Hamano [Wed, 24 Mar 2010 23:26:43 +0000 (16:26 -0700)]
Merge branch 'tr/notes-display'

* tr/notes-display:
  git-notes(1): add a section about the meaning of history
  notes: track whether notes_trees were changed at all
  notes: add shorthand --ref to override GIT_NOTES_REF
  commit --amend: copy notes to the new commit
  rebase: support automatic notes copying
  notes: implement helpers needed for note copying during rewrite
  notes: implement 'git notes copy --stdin'
  rebase -i: invoke post-rewrite hook
  rebase: invoke post-rewrite hook
  commit --amend: invoke post-rewrite hook
  Documentation: document post-rewrite hook
  Support showing notes from more than one notes tree
  test-lib: unset GIT_NOTES_REF to stop it from influencing tests

Conflicts:
git-am.sh
refs.c

14 years agoMerge branch 'jl/submodule-diff-dirtiness'
Junio C Hamano [Wed, 24 Mar 2010 23:25:43 +0000 (16:25 -0700)]
Merge branch 'jl/submodule-diff-dirtiness'

* jl/submodule-diff-dirtiness:
  git status: ignoring untracked files must apply to submodules too
  git status: Fix false positive "new commits" output for dirty submodules
  Refactor dirty submodule detection in diff-lib.c
  git status: Show detailed dirty status of submodules in long format
  git diff --submodule: Show detailed dirty status of submodules

14 years agoMerge branch 'pb/log-first-parent-p-m'
Junio C Hamano [Wed, 24 Mar 2010 23:25:39 +0000 (16:25 -0700)]
Merge branch 'pb/log-first-parent-p-m'

* pb/log-first-parent-p-m:
  show --first-parent/-m: do not default to --cc
  show -c: show patch text
  revision: introduce setup_revision_opt
  t4013: add tests for log -p -m --first-parent
  git log -p -m: document -m and honor --first-parent

14 years agoMerge branch 'jc/maint-refs-dangling'
Junio C Hamano [Wed, 24 Mar 2010 23:25:34 +0000 (16:25 -0700)]
Merge branch 'jc/maint-refs-dangling'

* jc/maint-refs-dangling:
  refs: ref entry with NULL sha1 is can be a dangling symref

14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 24 Mar 2010 23:24:21 +0000 (16:24 -0700)]
Merge branch 'maint'

* maint:
  Documentation: explain the meaning of "-g" in git-describe output

14 years agoMerge branch 'jc/color-attrs' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:24:13 +0000 (16:24 -0700)]
Merge branch 'jc/color-attrs' into maint

* jc/color-attrs:
  color: allow multiple attributes

14 years agoMerge branch 'jk/maint-add-ignored-dir' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:24:03 +0000 (16:24 -0700)]
Merge branch 'jk/maint-add-ignored-dir' into maint

* jk/maint-add-ignored-dir:
  tests for "git add ignored-dir/file" without -f
  dir: fix COLLECT_IGNORED on excluded prefixes
  t0050: mark non-working test as such

14 years agoMerge branch 'bg/apply-fix-blank-at-eof' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:23:50 +0000 (16:23 -0700)]
Merge branch 'bg/apply-fix-blank-at-eof' into maint

* bg/apply-fix-blank-at-eof:
  t3417: Add test cases for "rebase --whitespace=fix"
  t4124: Add additional tests of --whitespace=fix
  apply: Allow blank context lines to match beyond EOF
  apply: Remove the quick rejection test
  apply: Don't unnecessarily update line lengths in the preimage

14 years agoDocumentation: explain the meaning of "-g" in git-describe output
Markus Heidelberg [Mon, 22 Mar 2010 20:45:33 +0000 (21:45 +0100)]
Documentation: explain the meaning of "-g" in git-describe output

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with Git 1.7.0.3
Junio C Hamano [Mon, 22 Mar 2010 00:01:55 +0000 (17:01 -0700)]
Sync with Git 1.7.0.3

* maint:
  Git 1.7.0.3
  .mailmap: Map the the first submissions of MJG by e-mail
  Documentation/git-clone: Transform description list into item list
  Documentation/urls: Remove spurious example markers
  Documentation/gitdiffcore: Remove misleading date in heading
  Documentation/git-reflog: Fix formatting of command lists

14 years agoGit 1.7.0.3 v1.7.0.3
Junio C Hamano [Mon, 22 Mar 2010 00:01:22 +0000 (17:01 -0700)]
Git 1.7.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Mon, 22 Mar 2010 00:00:22 +0000 (17:00 -0700)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  Documentation/git-clone: Transform description list into item list
  Documentation/urls: Remove spurious example markers
  Documentation/gitdiffcore: Remove misleading date in heading
  Documentation/git-reflog: Fix formatting of command lists

14 years ago.mailmap: Map the the first submissions of MJG by e-mail
Michael J Gruber [Sun, 21 Mar 2010 13:43:47 +0000 (14:43 +0100)]
.mailmap: Map the the first submissions of MJG by e-mail

so that git shortlog with '-e' coalesces all my commits.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-clone: Transform description list into item list
Michael J Gruber [Sun, 21 Mar 2010 17:30:19 +0000 (18:30 +0100)]
Documentation/git-clone: Transform description list into item list

so that the list of examples is formatted in the same way as for
git-fetch, and, more importantly, the different identation for the
code blocks in the examples (compared to the immediately preceding code
blocks from url.txt) doesn't look like misformatted, but is clarified by
the items' bullets.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/urls: Remove spurious example markers
Michael J Gruber [Sun, 21 Mar 2010 17:30:18 +0000 (18:30 +0100)]
Documentation/urls: Remove spurious example markers

In urls.txt (which is included from git-{clone,fetch,push}.txt)
several item lists are surrounded by example block markers. This is
problematic for two reasons:

- None of these lists are example lists, so they should not be marked as
  such semantically.
- The html output looks weird (bulleted list with left sidebar).

Therefore, remove the example block markers. Output by the man backend
is unaffected.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/gitdiffcore: Remove misleading date in heading
Michael J Gruber [Sun, 21 Mar 2010 17:30:17 +0000 (18:30 +0100)]
Documentation/gitdiffcore: Remove misleading date in heading

Ever since the automatic conversion into man form, the heading
contained a misidentified subheading reading "June 2005".
Remove this since the documentation is more recent, and the correct
date is in the footer.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-reflog: Fix formatting of command lists
Michael J Gruber [Sun, 21 Mar 2010 17:30:16 +0000 (18:30 +0100)]
Documentation/git-reflog: Fix formatting of command lists

A misplaced list continuation mark appears literally in the
rendered doc. Fix this by removing it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years ago.mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela
Michael J Gruber [Fri, 19 Mar 2010 11:02:04 +0000 (12:02 +0100)]
.mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

With the current .mailmap, git shortlog shows the following for these:

    11 Deskin Miller
     3 Vitaly \"_Vi\" Shukela
     1 Alex Bennee
     1 Alex Bennée
     1 Deskin Miler
     1 Vitaly _Vi Shukela

Add (e-mail based qualified) entries to .mailmap to get:

    12 Deskin Miller
     4 Vitaly "_Vi" Shukela
     2 Alex Bennée

The Shukela spelling is based on the version used consistently in the s-o-b
lines of all his patches.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorevert: fix tiny memory leak in cherry-pick --ff
Jonathan Nieder [Sun, 21 Mar 2010 02:01:20 +0000 (21:01 -0500)]
revert: fix tiny memory leak in cherry-pick --ff

We forgot to free defmsg when returning early for a fast-forward.

Fixing this should reduce noise during test suite runs with valgrind.
More importantly, once cherry-pick learns to pick multiple commits,
the amount of memory leaked would start to add up.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.1
Junio C Hamano [Sat, 20 Mar 2010 18:42:34 +0000 (11:42 -0700)]
Update draft release notes to 1.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jk/maint-add-ignored-dir'
Junio C Hamano [Sat, 20 Mar 2010 18:29:36 +0000 (11:29 -0700)]
Merge branch 'jk/maint-add-ignored-dir'

* jk/maint-add-ignored-dir:
  tests for "git add ignored-dir/file" without -f
  dir: fix COLLECT_IGNORED on excluded prefixes
  t0050: mark non-working test as such

14 years agoMerge branch 'ml/color-grep'
Junio C Hamano [Sat, 20 Mar 2010 18:29:36 +0000 (11:29 -0700)]
Merge branch 'ml/color-grep'

* ml/color-grep:
  grep: Colorize selected, context, and function lines
  grep: Colorize filename, line number, and separator
  Add GIT_COLOR_BOLD_* and GIT_COLOR_BG_*

14 years agoMerge branch 'jc/color-attrs'
Junio C Hamano [Sat, 20 Mar 2010 18:29:36 +0000 (11:29 -0700)]
Merge branch 'jc/color-attrs'

* jc/color-attrs:
  color: allow multiple attributes

14 years agoMerge branch 'cc/reset-keep'
Junio C Hamano [Sat, 20 Mar 2010 18:29:35 +0000 (11:29 -0700)]
Merge branch 'cc/reset-keep'

* cc/reset-keep:
  Documentation: improve description of "git reset --keep"
  reset: disallow using --keep when there are unmerged entries
  reset: disallow "reset --keep" outside a work tree
  Documentation: reset: describe new "--keep" option
  reset: add test cases for "--keep" option
  reset: add option "--keep" to "git reset"

14 years agoMerge branch 'fl/askpass'
Junio C Hamano [Sat, 20 Mar 2010 18:29:35 +0000 (11:29 -0700)]
Merge branch 'fl/askpass'

* fl/askpass:
  git-core: Support retrieving passwords with GIT_ASKPASS
  git-svn: Support retrieving passwords with GIT_ASKPASS

14 years agoMerge branch 'bg/apply-fix-blank-at-eof'
Junio C Hamano [Sat, 20 Mar 2010 18:29:35 +0000 (11:29 -0700)]
Merge branch 'bg/apply-fix-blank-at-eof'

* bg/apply-fix-blank-at-eof:
  t3417: Add test cases for "rebase --whitespace=fix"
  t4124: Add additional tests of --whitespace=fix
  apply: Allow blank context lines to match beyond EOF
  apply: Remove the quick rejection test
  apply: Don't unnecessarily update line lengths in the preimage

14 years agoMerge branch 'bw/union-merge-refactor'
Junio C Hamano [Sat, 20 Mar 2010 18:29:34 +0000 (11:29 -0700)]
Merge branch 'bw/union-merge-refactor'

* bw/union-merge-refactor:
  merge-file: add option to select union merge favor
  merge-file: add option to specify the marker size
  refactor merge flags into xmparam_t
  make union merge an xdl merge favor

14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 20 Mar 2010 18:29:19 +0000 (11:29 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.7.0.3
  fetch: Fix minor memory leak
  fetch: Future-proof initialization of a refspec on stack
  fetch: Check for a "^{}" suffix with suffixcmp()
  daemon: parse_host_and_port SIGSEGV if port is specified
  Makefile: Fix CDPATH problem
  pull: replace unnecessary sed invocation

14 years agoUpdate draft release notes to 1.7.0.3
Junio C Hamano [Sat, 20 Mar 2010 18:29:13 +0000 (11:29 -0700)]
Update draft release notes to 1.7.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase -i: use new --ff cherry-pick option
Christian Couder [Sat, 6 Mar 2010 20:34:46 +0000 (21:34 +0100)]
rebase -i: use new --ff cherry-pick option

This simplifies rebase -i a little bit.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofetch: Fix minor memory leak
Andreas Gruenbacher [Mon, 15 Mar 2010 22:18:48 +0000 (23:18 +0100)]
fetch: Fix minor memory leak

A temporary struct ref is allocated in store_updated_refs() but not
freed.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofetch: Future-proof initialization of a refspec on stack
Andreas Gruenbacher [Fri, 12 Mar 2010 22:27:33 +0000 (23:27 +0100)]
fetch: Future-proof initialization of a refspec on stack

The open-coded version to initialize each and every member will break
when a new member is added to the structure.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofetch: Check for a "^{}" suffix with suffixcmp()
Andreas Gruenbacher [Sat, 13 Mar 2010 17:17:04 +0000 (18:17 +0100)]
fetch: Check for a "^{}" suffix with suffixcmp()

Otherwise, we will check random bytes for ref names < 3 characters.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix a spelling mistake in a git-p4 console message
Benjamin C Meyer [Fri, 19 Mar 2010 04:39:10 +0000 (00:39 -0400)]
Fix a spelling mistake in a git-p4 console message

Signed-off-by: Benjamin C Meyer <bmeyer@rim.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUse test_expect_success for test setups
Brian Gernhardt [Sat, 20 Mar 2010 08:29:11 +0000 (04:29 -0400)]
Use test_expect_success for test setups

Several tests did not use test_expect_success for their setup
commands.  Putting these start commands into the testing framework
means both that errors during setup will be caught quickly and that
non-error text will be suppressed without -v.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoModernize git calling conventions in hook templates
Ben Walton [Sat, 20 Mar 2010 14:48:09 +0000 (10:48 -0400)]
Modernize git calling conventions in hook templates

The hook templates were still using/referencing 'git-foo' instead of
'git foo.'  This patch updates the sample hooks to use the modern
conventions instead.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMake templates honour SHELL_PATH and PERL_PATH
Ben Walton [Sat, 20 Mar 2010 14:48:08 +0000 (10:48 -0400)]
Make templates honour SHELL_PATH and PERL_PATH

The hook script templates were hard coded to use /bin/sh and perl.
This patch ensures that they use the same tools specified for the rest
of the suite.

The impetus for the change was noticing that, as shipped, some of the
hooks used shell constructs that wouldn't work under Solaris' /bin/sh
(eg: $(cmd...) substitutions).

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodaemon: parse_host_and_port SIGSEGV if port is specified
Imre Deak [Sat, 20 Mar 2010 02:23:58 +0000 (04:23 +0200)]
daemon: parse_host_and_port SIGSEGV if port is specified

This typo will lead to git-daemon dying any time the connect
string includes a port after the host= attribute. This can lead
for example to one of the following error messages on the client
side when someone tries git clone git://...:<port>.

When the daemon is running on localhost:
  fatal: The remote end hung up unexpectedly

or when the daemon is connected through an ssh tunnel:
  fatal: protocol error: bad line length character: erro

In the latter case 'erro' comes from the daemon's reply:
  error: git-daemon died of signal 11

Signed-off-by: Imre Deak <imre.deak@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: Fix occasional GIT-CFLAGS breakage
Jonathan Nieder [Sat, 20 Mar 2010 03:20:12 +0000 (22:20 -0500)]
Makefile: Fix occasional GIT-CFLAGS breakage

GNU make’s target-specific variables facility has one weird facet: any
variables set for a given target apply to all of its dependencies,
too.  For example, when running “make exec_cmd.o”, since exec_cmd.o
depends on GIT-CFLAGS, the variable assignment in

exec_cmd.s exec_cmd.o: ALL_CFLAGS += \
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
'-DBINDIR="$(bindir_relative_SQ)"' \
'-DPREFIX="$(prefix_SQ)"'

applies when refreshing GIT-CFLAGS, and the extra options get included
in the tracked compiler flags.  If an object file like this is the
first target built, GIT-CFLAGS will appear to be out of date,
resulting in useless rebuilds and the dreaded “new build flags or
prefix” message.

This does not happen with every build because GIT-CFLAGS is only
refreshed once in a given “make” run, and usually the first target
does not set any variables.  When this problem does rear its head, it
is very annoying.

So put target-specific flags in a separate EXTRA_CPPFLAGS variable
that is not included in $(TRACK_CFLAGS).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: Fix CDPATH problem
Jonathan Nieder [Sat, 20 Mar 2010 00:06:15 +0000 (19:06 -0500)]
Makefile: Fix CDPATH problem

If CDPATH is set, "cd" prints its destination to stdout, causing
the common (cd a && tar cf - .) | (cd b && tar xf -) idiom to fail.
For example:

 make -C templates DESTDIR='' install
 make[1]: Entering directory `/users/e477610/exptool/src/git-1.7.0.2/templates'
 install -d -m 755 '/home/e477610/exptool/share/git-core/templates'
 (cd blt && gtar cf - .) | \
(cd '/home/e477610/exptool/share/git-core/templates' && umask 022 && gtar xof -)
 gtar: This does not look like a tar archive

Most git scripts already protect against use of CDPATH through
git-sh-setup, but the Makefile doesn’t.

Reported-by: Michael Cox <mhcox@bluezoosoftware.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t5505-remote.sh: escape * to prevent interpretation by shell as glob
Brandon Casey [Sat, 20 Mar 2010 00:10:20 +0000 (19:10 -0500)]
t/t5505-remote.sh: escape * to prevent interpretation by shell as glob

This test is supposed to check that git-remote correctly refuses to delete
all URLS for the specified remote which match the '.*' regular expression.
Since the '*' was not protected, it was interpreted by the shell as a file
glob and expanded before being passed to git-remote.  The call to
git-remote still exited non-zero in this case, and the overall test still
passed, but it exited non-zero because git-remote was passed the incorrect
number of arguments, not for the reason it was supposed to fail.

Correct the test by escaping the '*'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5505: add missing &&
Brandon Casey [Fri, 19 Mar 2010 23:36:35 +0000 (18:36 -0500)]
t5505: add missing &&

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5505: remove unnecessary subshell invocations
Brandon Casey [Fri, 19 Mar 2010 23:36:34 +0000 (18:36 -0500)]
t5505: remove unnecessary subshell invocations

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes.c: remove inappropriate call to return
Brandon Casey [Thu, 18 Mar 2010 15:03:43 +0000 (10:03 -0500)]
notes.c: remove inappropriate call to return

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopull: replace unnecessary sed invocation
Stephen Boyd [Thu, 18 Mar 2010 05:10:45 +0000 (22:10 -0700)]
pull: replace unnecessary sed invocation

Getting the shortened branch name is as easy as using the shell's
parameter expansion.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 17 Mar 2010 21:24:08 +0000 (14:24 -0700)]
Merge branch 'maint'

* maint:
  Documentation: receive.denyCurrentBranch defaults to 'refuse'
  bash: complete *_HEAD refs if present

14 years agoDocumentation: receive.denyCurrentBranch defaults to 'refuse'
Thomas Rast [Wed, 17 Mar 2010 11:14:57 +0000 (12:14 +0100)]
Documentation: receive.denyCurrentBranch defaults to 'refuse'

acd2a45 (Refuse updating the current branch in a non-bare repository
via push, 2009-02-11) changed the default to refuse such a push, but
it forgot to update the docs.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: complete *_HEAD refs if present
Ian Ward Comfort [Wed, 17 Mar 2010 09:20:35 +0000 (02:20 -0700)]
bash: complete *_HEAD refs if present

We already complete HEAD, of course, and might as well complete the other
common refs mentioned in the rev-parse man page: FETCH_HEAD, ORIG_HEAD, and
MERGE_HEAD.

Signed-off-by: Ian Ward Comfort <icomfort@stanford.edu>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 17 Mar 2010 02:30:37 +0000 (19:30 -0700)]
Merge branch 'maint'

* maint:
  Documentation/git-read-tree: clarify 2-tree merge
  Documentation/git-read-tree: fix table layout

14 years agoeveryday: fsck and gc are not everyday operations
Anders Kaseorg [Wed, 21 Oct 2009 20:02:48 +0000 (16:02 -0400)]
everyday: fsck and gc are not everyday operations

Back in 2005 when this document was written, it may have made sense to
introduce ‘git fsck’ (then ‘git fsck-objects’) as the very first example
command for new users of Git 0.99.9.  Now that Git has been stable for
years and does not actually tend to eat your data, it makes significantly
less sense.  In fact, it sends an entirely wrong message.

‘git gc’ is also unnecessary for the purposes of this document, especially
with gc.auto enabled by default.

The only other commands in the “Basic Repository” section were ‘git init’
and ‘git clone’.  ‘clone’ is already listed in the “Participant” section,
so move ‘init’ to the “Standalone” section and get rid of “Basic
Repository” entirely.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoImprove error messages from 'git stash show'
Gustaf Hendeby [Tue, 16 Mar 2010 17:52:37 +0000 (18:52 +0100)]
Improve error messages from 'git stash show'

The previous error message "fatal: Needed a single revision" is not
very informative.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodaemon.c: avoid accessing ss_family member of struct sockaddr_storage
Brandon Casey [Mon, 15 Mar 2010 22:10:06 +0000 (17:10 -0500)]
daemon.c: avoid accessing ss_family member of struct sockaddr_storage

When NO_SOCKADDR_STORAGE is set for a platform, either sockaddr_in or
sockaddr_in6 is used intead.  Neither of which has an ss_family member.
They have an sin_family and sin6_family member respectively.  Since the
addrcmp() function accesses the ss_family member of a sockaddr_storage
struct, compilation fails on platforms which define NO_SOCKADDR_STORAGE.

Since any sockaddr_* structure can be cast to a struct sockaddr and
have its sa_family member read, do so here to workaround this issue.

Thanks to Martin Storsjö for pointing out the fix, and Gary Vaughan
for drawing attention to the issue.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t1304: make a second colon optional in the mask ACL check
Brandon Casey [Mon, 15 Mar 2010 17:14:37 +0000 (12:14 -0500)]
t/t1304: make a second colon optional in the mask ACL check

Solaris only uses one colon in the listing of the ACL mask, Linux uses two,
so substitute egrep for grep and make the second colon optional.

The -q option for Solaris 7's /usr/xpg4/bin/egrep does not appear to be
implemented, so redirect output to /dev/null.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t1304: set the ACL effective rights mask
Brandon Casey [Mon, 15 Mar 2010 18:35:03 +0000 (13:35 -0500)]
t/t1304: set the ACL effective rights mask

Some implementations of setfacl do not recalculate the effective rights
mask when the ACL is modified.  So, set the effective rights mask
explicitly to ensure that the ACL's that are set on the directories will
have effect.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t1304: use 'test -r' to test readability rather than looking at mode bits
Brandon Casey [Mon, 15 Mar 2010 17:14:35 +0000 (12:14 -0500)]
t/t1304: use 'test -r' to test readability rather than looking at mode bits

This test was using the group read permission bit as an indicator of the
default ACL mask.  This behavior is valid on Linux but not on other
platforms like Solaris.  So, rather than looking at mode bits, just test
readability for the user.  This, along with the checks for the existence
of the ACL's that were set on the parent directories, should be enough.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t1304: set the Default ACL base entries
Brandon Casey [Mon, 15 Mar 2010 17:14:34 +0000 (12:14 -0500)]
t/t1304: set the Default ACL base entries

According to the Linux setfacl man page, in order for an ACL to be valid,
the following rules must be satisfied:

   * Whenever an ACL contains any Default ACL entries, the three Default
     ACL base entries (default owner, default group, and default others)
     must also exist.

   * Whenever a Default ACL contains named user entries or named group
     objects, it must also contain a default effective rights mask.

Some implementations of setfacl (Linux) do this automatically when
necessary, some (Solaris) do not.  Solaris's setfacl croaks when trying to
create a default user ACL if the above rules are not satisfied.  So, create
them before modifying the default user ACL's.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t1304: avoid -d option to setfacl
Brandon Casey [Mon, 15 Mar 2010 17:14:33 +0000 (12:14 -0500)]
t/t1304: avoid -d option to setfacl

Some platforms (Solaris) have a setfacl whose -d switch works differently
than the one on Linux.  On Linux, it causes all operations to be applied
to the Default ACL.  There is a notation for operating on the Default ACL:

   [d[efault]:] [u[ser]:]uid [:perms]

so use it instead of the -d switch.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorefs: ref entry with NULL sha1 is can be a dangling symref
Junio C Hamano [Tue, 16 Mar 2010 05:12:55 +0000 (22:12 -0700)]
refs: ref entry with NULL sha1 is can be a dangling symref

Brandon Casey noticed that t5505 had accidentally broken its && chain,
hiding inconsistency between the code that writes the warning to the
standard output and the test that expects to see the warning on the
standard error, which was introduced by f8948e2 (remote prune: warn
dangling symrefs, 2009-02-08).

It turns out that the issue is deeper than that.  After f8948e2, a symref
that is dangling is marked with a NULL sha1, and the idea of using NULL
sha1 to mean a deleted ref was scrapped, but somehow a follow-up eafb452
(do_one_ref(): null_sha1 check is not about broken ref, 2009-07-22)
incorrectly reorganized do_one_ref(), still thinking NULL sha1 is never
used in the code.

Fix this by:

 - adopt Brandon's fix to t5505 test;

 - introduce REF_BROKEN flag to mark a ref that fails to resolve (dangling
   symref);

 - move the check for broken ref back inside the "if we are skipping
   dangling refs" code block.

Signed-off-by: Junio C Hamano <gitster@pobox.com>