Code

git.git
12 years agogit-p4: introduce asciidoc documentation
Pete Wyckoff [Sun, 25 Dec 2011 02:07:31 +0000 (21:07 -0500)]
git-p4: introduce asciidoc documentation

Add proper documentation for git-p4.  Delete the old .txt
documentation from contrib/fast-import.

Cc: Frans Klaver <fransklaver@gmail.com>
Cc: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorename git-p4 tests
Pete Wyckoff [Sun, 25 Dec 2011 02:07:30 +0000 (21:07 -0500)]
rename git-p4 tests

Use consistent naming for all tests: "t98<num>-git-p4-<topic>.sh"

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: fix skipSubmitEdit regression
Pete Wyckoff [Sat, 17 Dec 2011 17:39:03 +0000 (12:39 -0500)]
git-p4: fix skipSubmitEdit regression

Commit 7c766e5 (git-p4: introduce skipSubmitEdit, 2011-12-04)
made it easier to automate submission to p4, but broke the most
common case.

Add a test for when the user really does edit and save the change
template, and fix the bug that causes the test to fail.

Also add a confirmation message when submission is cancelled.

Reported-by: Michael Horowitz <michael.horowitz@ieee.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes to 1.7.9
Junio C Hamano [Sat, 17 Dec 2011 06:45:03 +0000 (22:45 -0800)]
Update draft release notes to 1.7.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/commit-amend-no-edit'
Junio C Hamano [Sat, 17 Dec 2011 06:33:56 +0000 (22:33 -0800)]
Merge branch 'jc/commit-amend-no-edit'

* jc/commit-amend-no-edit:
  test: commit --amend should honor --no-edit
  commit: honour --no-edit
  t7501 (commit): modernize style
  test: remove a porcelain test that hard-codes commit names
  test: add missing "&&" after echo command

12 years agoMerge branch 'jc/stream-to-pack'
Junio C Hamano [Sat, 17 Dec 2011 06:33:40 +0000 (22:33 -0800)]
Merge branch 'jc/stream-to-pack'

* jc/stream-to-pack:
  bulk-checkin: replace fast-import based implementation
  csum-file: introduce sha1file_checkpoint
  finish_tmp_packfile(): a helper function
  create_tmp_packfile(): a helper function
  write_pack_header(): a helper function

Conflicts:
pack.h

12 years agoMerge branch 'aw/rebase-i-stop-on-failure-to-amend'
Junio C Hamano [Sat, 17 Dec 2011 06:33:37 +0000 (22:33 -0800)]
Merge branch 'aw/rebase-i-stop-on-failure-to-amend'

* aw/rebase-i-stop-on-failure-to-amend:
  rebase -i: interrupt rebase when "commit --amend" failed during "reword"

12 years agoMerge branch 'jh/fast-import-notes'
Junio C Hamano [Sat, 17 Dec 2011 06:33:34 +0000 (22:33 -0800)]
Merge branch 'jh/fast-import-notes'

* jh/fast-import-notes:
  fast-import: Fix incorrect fanout level when modifying existing notes refs
  t9301: Add 2nd testcase exposing bugs in fast-import's notes fanout handling
  t9301: Fix testcase covering up a bug in fast-import's notes fanout handling

12 years agoMerge branch 'jk/upload-archive-use-start-command'
Junio C Hamano [Sat, 17 Dec 2011 06:33:30 +0000 (22:33 -0800)]
Merge branch 'jk/upload-archive-use-start-command'

* jk/upload-archive-use-start-command:
  upload-archive: use start_command instead of fork

12 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Sat, 17 Dec 2011 06:18:42 +0000 (22:18 -0800)]
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: Make vi-style keybindings more vi-like
  gitk: Make "touching paths" search support backslashes
  gitk: Show modified files with separate work tree
  gitk: Simplify calculation of gitdir
  gitk: Run 'git rev-parse --git-dir' only once
  gitk: Put temporary directory inside .git
  gitk: Fix "External diff" with separate work tree
  gitk: Fix "blame parent commit" with separate work tree
  gitk: Fix "show origin of this line" with separate work tree
  gitk: Fix file highlight when run in subdirectory
  gitk: Update copyright
  gitk: When a commit contains a note, mark it with a yellow box
  gitk: Remember time zones from author and commit timestamps
  gitk: Remove unused $cdate array

12 years agoUpdate draft release notes to 1.7.9
Junio C Hamano [Wed, 14 Dec 2011 07:09:27 +0000 (23:09 -0800)]
Update draft release notes to 1.7.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'ks/tag-cleanup'
Junio C Hamano [Wed, 14 Dec 2011 07:03:00 +0000 (23:03 -0800)]
Merge branch 'ks/tag-cleanup'

* ks/tag-cleanup:
  git-tag: introduce --cleanup option

Conflicts:
builtin/tag.c

12 years agoMerge branch 'jl/submodule-status-failure-report'
Junio C Hamano [Wed, 14 Dec 2011 07:00:52 +0000 (23:00 -0800)]
Merge branch 'jl/submodule-status-failure-report'

* jl/submodule-status-failure-report:
  diff/status: print submodule path when looking for changes fails

12 years agoMerge branch 'tr/userdiff-c-returns-pointer'
Junio C Hamano [Wed, 14 Dec 2011 06:57:19 +0000 (22:57 -0800)]
Merge branch 'tr/userdiff-c-returns-pointer'

* tr/userdiff-c-returns-pointer:
  userdiff: allow * between cpp funcname words

12 years agoMerge branch 'bc/maint-apply-check-no-patch'
Junio C Hamano [Wed, 14 Dec 2011 06:56:22 +0000 (22:56 -0800)]
Merge branch 'bc/maint-apply-check-no-patch'

* bc/maint-apply-check-no-patch:
  builtin/apply.c: report error on failure to recognize input
  t/t4131-apply-fake-ancestor.sh: fix broken test

12 years agoMerge branch 'nd/ignore-might-be-precious'
Junio C Hamano [Wed, 14 Dec 2011 06:55:07 +0000 (22:55 -0800)]
Merge branch 'nd/ignore-might-be-precious'

* nd/ignore-might-be-precious:
  checkout,merge: disallow overwriting ignored files with --no-overwrite-ignore

12 years agoMerge branch 'jn/branch-move-to-self'
Junio C Hamano [Wed, 14 Dec 2011 06:53:08 +0000 (22:53 -0800)]
Merge branch 'jn/branch-move-to-self'

* jn/branch-move-to-self:
  Allow checkout -B <current-branch> to update the current branch
  branch: allow a no-op "branch -M <current-branch> HEAD"

12 years agoMerge branch 'cn/maint-lf-to-crlf-filter'
Junio C Hamano [Wed, 14 Dec 2011 06:49:45 +0000 (22:49 -0800)]
Merge branch 'cn/maint-lf-to-crlf-filter'

* cn/maint-lf-to-crlf-filter:
  convert: track state in LF-to-CRLF filter

12 years agoMerge branch 'tj/maint-imap-send-remove-unused'
Junio C Hamano [Wed, 14 Dec 2011 06:49:19 +0000 (22:49 -0800)]
Merge branch 'tj/maint-imap-send-remove-unused'

* tj/maint-imap-send-remove-unused:
  imap-send: Remove unused 'use_namespace' variable

12 years agoMerge branch 'jk/maint-upload-archive'
Junio C Hamano [Wed, 14 Dec 2011 06:47:38 +0000 (22:47 -0800)]
Merge branch 'jk/maint-upload-archive'

* jk/maint-upload-archive:
  archive: don't let remote clients get unreachable commits

12 years agoMerge branch 'jn/gitweb-side-by-side-diff'
Junio C Hamano [Wed, 14 Dec 2011 06:46:57 +0000 (22:46 -0800)]
Merge branch 'jn/gitweb-side-by-side-diff'

* jn/gitweb-side-by-side-diff:
  gitweb: Add navigation to select side-by-side diff
  gitweb: Use href(-replay=>1,...) for formats links in "commitdiff"
  t9500: Add basic sanity tests for side-by-side diff in gitweb
  t9500: Add test for handling incomplete lines in diff by gitweb
  gitweb: Give side-by-side diff extra CSS styling
  gitweb: Add a feature to show side-by-side diff
  gitweb: Extract formatting of diff chunk header
  gitweb: Refactor diff body line classification

12 years agoMerge branch 'maint'
Junio C Hamano [Wed, 14 Dec 2011 06:18:00 +0000 (22:18 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes for 1.7.8.1
  Git 1.7.7.5
  Git 1.7.6.5
  blame: don't overflow time buffer
  fetch: create status table using strbuf

Conflicts:
RelNotes

12 years agoUpdate draft release notes for 1.7.8.1
Junio C Hamano [Wed, 14 Dec 2011 06:08:52 +0000 (22:08 -0800)]
Update draft release notes for 1.7.8.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-pack-object-cycle' into maint
Junio C Hamano [Wed, 14 Dec 2011 06:04:50 +0000 (22:04 -0800)]
Merge branch 'jc/maint-pack-object-cycle' into maint

* jc/maint-pack-object-cycle:
  pack-object: tolerate broken packs that have duplicated objects

Conflicts:
builtin/pack-objects.c

12 years agoMerge branch 'jc/index-pack-reject-dups' into maint
Junio C Hamano [Wed, 14 Dec 2011 06:03:36 +0000 (22:03 -0800)]
Merge branch 'jc/index-pack-reject-dups' into maint

* jc/index-pack-reject-dups:
  receive-pack, fetch-pack: reject bogus pack that records objects twice

12 years agoMerge branch 'mf/curl-select-fdset' into maint
Junio C Hamano [Wed, 14 Dec 2011 06:03:17 +0000 (22:03 -0800)]
Merge branch 'mf/curl-select-fdset' into maint

* mf/curl-select-fdset:
  http: drop "local" member from request struct
  http.c: Rely on select instead of tracking whether data was received
  http.c: Use timeout suggested by curl instead of fixed 50ms timeout
  http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping

12 years agoMerge branch 'nd/misc-cleanups' into maint
Junio C Hamano [Wed, 14 Dec 2011 06:02:51 +0000 (22:02 -0800)]
Merge branch 'nd/misc-cleanups' into maint

* nd/misc-cleanups:
  unpack_object_header_buffer(): clear the size field upon error
  tree_entry_interesting: make use of local pointer "item"
  tree_entry_interesting(): give meaningful names to return values
  read_directory_recursive: reduce one indentation level
  get_tree_entry(): do not call find_tree_entry() on an empty tree
  tree-walk.c: do not leak internal structure in tree_entry_len()

12 years agoMerge branch 'maint-1.7.7' into maint
Junio C Hamano [Wed, 14 Dec 2011 05:58:51 +0000 (21:58 -0800)]
Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
  Git 1.7.7.5
  Git 1.7.6.5
  blame: don't overflow time buffer
  fetch: create status table using strbuf
  checkout,merge: loosen overwriting untracked file check based on info/exclude
  cast variable in call to free() in builtin/diff.c and submodule.c
  apply: get rid of useless x < 0 comparison on a size_t type

Conflicts:
Documentation/git.txt
GIT-VERSION-GEN
RelNotes
builtin/fetch.c

12 years agoGit 1.7.7.5 v1.7.7.5
Junio C Hamano [Wed, 14 Dec 2011 05:55:31 +0000 (21:55 -0800)]
Git 1.7.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'ab/clang-lints' into maint-1.7.7
Junio C Hamano [Wed, 14 Dec 2011 05:47:51 +0000 (21:47 -0800)]
Merge branch 'ab/clang-lints' into maint-1.7.7

* ab/clang-lints:
  cast variable in call to free() in builtin/diff.c and submodule.c
  apply: get rid of useless x < 0 comparison on a size_t type

12 years agoMerge branch 'nd/maint-ignore-exclude' into maint-1.7.7
Junio C Hamano [Wed, 14 Dec 2011 05:47:08 +0000 (21:47 -0800)]
Merge branch 'nd/maint-ignore-exclude' into maint-1.7.7

* nd/maint-ignore-exclude:
  checkout,merge: loosen overwriting untracked file check based on info/exclude

12 years agoMerge branch 'maint-1.7.6' into maint-1.7.7
Junio C Hamano [Wed, 14 Dec 2011 05:44:56 +0000 (21:44 -0800)]
Merge branch 'maint-1.7.6' into maint-1.7.7

* maint-1.7.6:
  Git 1.7.6.5
  blame: don't overflow time buffer
  fetch: create status table using strbuf

Conflicts:
Documentation/git.txt
GIT-VERSION-GEN
RelNotes

12 years agoGit 1.7.6.5 v1.7.6.5
Junio C Hamano [Wed, 14 Dec 2011 05:30:40 +0000 (21:30 -0800)]
Git 1.7.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/maint-fetch-status-table' into maint-1.7.6
Junio C Hamano [Wed, 14 Dec 2011 05:21:30 +0000 (21:21 -0800)]
Merge branch 'jk/maint-fetch-status-table' into maint-1.7.6

* jk/maint-fetch-status-table:
  fetch: create status table using strbuf

12 years agoMerge branch 'jc/maint-name-rev-all' into maint-1.7.6
Junio C Hamano [Wed, 14 Dec 2011 05:12:34 +0000 (21:12 -0800)]
Merge branch 'jc/maint-name-rev-all' into maint-1.7.6

* jc/maint-name-rev-all:
  name-rev --all: do not even attempt to describe non-commit object

12 years agoMerge branch 'ml/mailmap' into maint-1.7.6
Junio C Hamano [Wed, 14 Dec 2011 05:12:14 +0000 (21:12 -0800)]
Merge branch 'ml/mailmap' into maint-1.7.6

* ml/mailmap:
  mailmap: xcalloc mailmap_info

Conflicts:
mailmap.c

12 years agoblame: don't overflow time buffer
Jeff King [Thu, 8 Dec 2011 10:25:54 +0000 (05:25 -0500)]
blame: don't overflow time buffer

When showing the raw timestamp, we format the numeric
seconds-since-epoch into a buffer, followed by the timezone
string. This string has come straight from the commit
object. A well-formed object should have a timezone string
of only a few bytes, but we could be operating on data
pushed by a malicious user.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'master' of git://repo.or.cz/git-gui
Junio C Hamano [Wed, 14 Dec 2011 00:48:24 +0000 (16:48 -0800)]
Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui: (28 commits)
  git-gui 0.16
  git-gui: handle shell script text filters when loading for blame.
  git-gui: Set both 16x16 and 32x32 icons on X to pacify Xming.
  git-gui: added config gui.gcwarning to disable the gc hint message
  git-gui: set whitespace warnings appropriate to this project
  git-gui: don't warn for detached head when rebasing
  git-gui: make config gui.warndetachedcommit a boolean
  git-gui: add config value gui.diffopts for passing additional diff options
  git-gui: sort the numeric ansi codes
  git-gui: support underline style when parsing diff output
  git-gui: fix spelling error in sshkey.tcl
  git-gui: include the file path in guitools confirmation dialog
  git-gui: span widgets over the full file output area in the blame view
  git-gui: use a tristate to control the case mode in the searchbar
  git-gui: set suitable extended window manager hints.
  git-gui: fix display of path in browser title
  git-gui: enable the smart case sensitive search only if gui.search.smartcase is true
  git-gui: catch invalid or complete regular expressions and treat as no match.
  git-gui: theme the search and line-number entry fields on blame screen
  git-gui: include the number of untracked files to stage when asking the user
  ...

12 years agogit-gui 0.16 gitgui-0.16.0
Pat Thoyts [Tue, 13 Dec 2011 23:44:30 +0000 (23:44 +0000)]
git-gui 0.16

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
12 years agogit-p4: test for absolute PWD problem
Pete Wyckoff [Fri, 9 Dec 2011 23:48:17 +0000 (18:48 -0500)]
git-p4: test for absolute PWD problem

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: use absolute directory for PWD env var
Gary Gibbons [Fri, 9 Dec 2011 23:48:16 +0000 (18:48 -0500)]
git-p4: use absolute directory for PWD env var

P4 only looks at the environment variable $PWD to figure out
where it is, so chdir() has code to set that every time.  But
when the clone --destination is not an absolute path, PWD will
not be absolute and P4 won't be able to find any files expected
to be in the current directory.  Fix this by expanding PWD to
an absolute path.

One place this crops up is when using a P4CONFIG environment
variable to specify P4 parameters, such as P4USER or P4PORT.
Setting P4CONFIG=.p4config works for p4 invocations from the
current directory.  But if the value of PWD is not absolute, it
fails.

[ update description --pw ]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: submit test for auto-creating clientPath
Pete Wyckoff [Fri, 9 Dec 2011 23:48:15 +0000 (18:48 -0500)]
git-p4: submit test for auto-creating clientPath

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: ensure submit clientPath exists before chdir
Gary Gibbons [Fri, 9 Dec 2011 23:48:14 +0000 (18:48 -0500)]
git-p4: ensure submit clientPath exists before chdir

Submitting patches back to p4 requires a p4 "client".  This
is a mapping from server depot paths into a local directory.
The directory need not exist or be populated with files; only
the mapping on the server is required.  When there is no
directory, make git-p4 automatically create it.

[ reword description --pw ]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agofetch: create status table using strbuf
Jeff King [Thu, 8 Dec 2011 08:43:19 +0000 (03:43 -0500)]
fetch: create status table using strbuf

When we fetch from a remote, we print a status table like:

  From url
   * [new branch]   foo -> origin/foo

We create this table in a static buffer using sprintf. If
the remote refnames are long, they can overflow this buffer
and smash the stack.

Instead, let's use a strbuf to build the string.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes for 1.7.9
Junio C Hamano [Fri, 9 Dec 2011 21:52:36 +0000 (13:52 -0800)]
Update draft release notes for 1.7.9

The first two of more important topics slated for 1.7.9 have been merged.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'sg/complete-refs'
Junio C Hamano [Fri, 9 Dec 2011 21:37:18 +0000 (13:37 -0800)]
Merge branch 'sg/complete-refs'

* sg/complete-refs:
  completion: remove broken dead code from __git_heads() and __git_tags()
  completion: fast initial completion for config 'remote.*.fetch' value
  completion: improve ls-remote output filtering in __git_refs_remotes()
  completion: query only refs/heads/ in __git_refs_remotes()
  completion: support full refs from remote repositories
  completion: improve ls-remote output filtering in __git_refs()
  completion: make refs completion consistent for local and remote repos
  completion: optimize refs completion
  completion: document __gitcomp()

Conflicts:
contrib/completion/git-completion.bash

12 years agoMerge branch 'nd/resolve-ref'
Junio C Hamano [Fri, 9 Dec 2011 21:37:14 +0000 (13:37 -0800)]
Merge branch 'nd/resolve-ref'

* nd/resolve-ref:
  Copy resolve_ref() return value for longer use
  Convert many resolve_ref() calls to read_ref*() and ref_exists()

Conflicts:
builtin/fmt-merge-msg.c
builtin/merge.c
refs.c

12 years agoMerge branch 'jc/pull-signed-tag'
Junio C Hamano [Fri, 9 Dec 2011 21:37:09 +0000 (13:37 -0800)]
Merge branch 'jc/pull-signed-tag'

* jc/pull-signed-tag:
  commit-tree: teach -m/-F options to read logs from elsewhere
  commit-tree: update the command line parsing
  commit: teach --amend to carry forward extra headers
  merge: force edit and no-ff mode when merging a tag object
  commit: copy merged signed tags to headers of merge commit
  merge: record tag objects without peeling in MERGE_HEAD
  merge: make usage of commit->util more extensible
  fmt-merge-msg: Add contents of merged tag in the merge message
  fmt-merge-msg: package options into a structure
  fmt-merge-msg: avoid early returns
  refs DWIMmery: use the same rule for both "git fetch" and others
  fetch: allow "git fetch $there v1.0" to fetch a tag
  merge: notice local merging of tags and keep it unwrapped
  fetch: do not store peeled tag object names in FETCH_HEAD
  Split GPG interface into its own helper library

Conflicts:
builtin/fmt-merge-msg.c
builtin/merge.c

12 years agoMerge branch 'jc/request-pull-show-head-4'
Junio C Hamano [Fri, 9 Dec 2011 21:37:05 +0000 (13:37 -0800)]
Merge branch 'jc/request-pull-show-head-4'

* jc/request-pull-show-head-4:
  request-pull: use the annotated tag contents
  fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error
  environment.c: Fix an sparse "symbol not declared" warning
  builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
  fmt-merge-msg: use branch.$name.description
  request-pull: use the branch description
  request-pull: state what commit to expect
  request-pull: modernize style
  branch: teach --edit-description option
  format-patch: use branch description in cover letter
  branch: add read_branch_desc() helper function

Conflicts:
builtin/branch.c

12 years agoMerge branch 'ab/pull-rebase-config'
Junio C Hamano [Fri, 9 Dec 2011 21:37:01 +0000 (13:37 -0800)]
Merge branch 'ab/pull-rebase-config'

* ab/pull-rebase-config:
  pull: introduce a pull.rebase option to enable --rebase

12 years agoMerge branch 'rs/allocate-cache-entry-individually'
Junio C Hamano [Fri, 9 Dec 2011 21:36:56 +0000 (13:36 -0800)]
Merge branch 'rs/allocate-cache-entry-individually'

* rs/allocate-cache-entry-individually:
  cache.h: put single NUL at end of struct cache_entry
  read-cache.c: allocate index entries individually

Conflicts:
read-cache.c

12 years agoMerge branch 'maint'
Junio C Hamano [Fri, 9 Dec 2011 21:34:18 +0000 (13:34 -0800)]
Merge branch 'maint'

* maint:
  am: don't persist keepcr flag
  mingw: give waitpid the correct signature
  git symbolic-ref: documentation fix

12 years agoMerge branch 'maint-1.7.7' into maint
Junio C Hamano [Fri, 9 Dec 2011 21:33:39 +0000 (13:33 -0800)]
Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
  am: don't persist keepcr flag
  mingw: give waitpid the correct signature
  git symbolic-ref: documentation fix

12 years agoam: don't persist keepcr flag
Martin von Zweigbergk [Fri, 9 Dec 2011 07:30:45 +0000 (23:30 -0800)]
am: don't persist keepcr flag

The keepcr flag is only used in the split_patches function, which is
only called before a patch application has to stopped for user input,
not after resuming. It is therefore unnecessary to persist the
flag. This seems to have been the case since it was introduced in
ad2c928 (git-am: Add command line parameter `--keep-cr` passing it to
git-mailsplit, 2010-02-27).

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agomingw: give waitpid the correct signature
Erik Faye-Lund [Thu, 8 Dec 2011 19:39:57 +0000 (20:39 +0100)]
mingw: give waitpid the correct signature

POSIX says that last parameter to waitpid should be 'int',
so let's make it so.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-tag: introduce --cleanup option
Kirill A. Shutemov [Wed, 7 Dec 2011 03:01:45 +0000 (05:01 +0200)]
git-tag: introduce --cleanup option

Normally git tag strips tag message lines starting with '#', trailing
spaces from every line and empty lines from the beginning and end.

--cleanup allows to select different cleanup modes for tag message.
It provides the same interface as --cleanup option in git-commit.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-gui: handle shell script text filters when loading for blame.
Pat Thoyts [Fri, 9 Dec 2011 15:14:32 +0000 (15:14 +0000)]
git-gui: handle shell script text filters when loading for blame.

When loading a file into the blame window git-gui does all the work and
must handle the text conversion filters if defined. On Windows it is
necessary to detect the need for a shell script explicitly.

Such filter commands are run using non-blocking I/O but this has the
unfortunate side effect of losing any error that might be reported when
the pipe is closed. Switching to blocking mode just before closing
enables reporting of errors in the filter scripts to the user.

Tested-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
12 years agotest: commit --amend should honor --no-edit
Jonathan Nieder [Wed, 7 Dec 2011 14:54:14 +0000 (08:54 -0600)]
test: commit --amend should honor --no-edit

A quick test to make sure git doesn't lose the functionality added by
the recent patch "commit: honor --no-edit", plus another test to check
the classical --edit use case (use with "-m").

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocommit: honour --no-edit
Junio C Hamano [Tue, 6 Dec 2011 21:09:55 +0000 (13:09 -0800)]
commit: honour --no-edit

After making fixes to the contents to be committed, it is not unusual to
update the current commit without rewording the message. Idioms to tell
"commit --amend" that we do not need an editor have been:

    $ EDITOR=: git commit --amend
    $ git commit --amend -C HEAD

but that was only because a more natural "--no-edit" option in

    $ git commit --amend --no-edit

was not honoured.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7501 (commit): modernize style
Jonathan Nieder [Wed, 7 Dec 2011 14:50:23 +0000 (08:50 -0600)]
t7501 (commit): modernize style

Put the opening quote starting each test on the same line as the
test_expect_* invocation.  While at it:

- guard commands that prepare test input for individual tests in
  the same test_expect_success, so their scope is clearer and
  errors at that stage can be caught;
- use the compare_diff_patch helper function when comparing patches;
- use single-quotes in preference to double-quotes and <<\EOF in
  preference to <<EOF, to save readers the trouble of looking for
  variable interpolations;
- lift the setting of the $author variable used throughout the
  test script to the top of the test script;
- include "setup" in the titles of test assertions that prepare for
  later ones to make it more obvious which tests can be skipped;
- use test_must_fail instead of "if ...; then:; else false; fi",
  for clarity and to catch segfaults when they happen;
- break up some pipelines into separate commands that read and write
  to ordinary files, and test the exit status at each stage;
- chain commands with &&.  Breaks in a test assertion's && chain can
  potentially hide failures from earlier commands in the chain;
- combine two initial tests that do not make as much sense alone.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: remove a porcelain test that hard-codes commit names
Jonathan Nieder [Wed, 7 Dec 2011 14:49:29 +0000 (08:49 -0600)]
test: remove a porcelain test that hard-codes commit names

The rev-list output in this test depends on the details of test_tick's
dummy dates and the choice of hash function.  Worse, it depends on the
order and nature of commits made in the earlier tests, so adding new
tests or rearranging existing ones breaks it.

It would be nice to check that "git commit" and commit-tree name
objects consistently and that commit objects' text is as documented,
but this particular test checks everything at once and hence is not a
robust test for that.  Remove it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agotest: add missing "&&" after echo command
Jonathan Nieder [Wed, 7 Dec 2011 14:45:40 +0000 (08:45 -0600)]
test: add missing "&&" after echo command

This test wants to modify a file and commit the change, but because of
a missing separator between commands it is parsed as a single "echo"
command.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodiff/status: print submodule path when looking for changes fails
Jens Lehmann [Wed, 7 Dec 2011 21:50:14 +0000 (22:50 +0100)]
diff/status: print submodule path when looking for changes fails

diff and status run "git status --porcelain" inside each populated
submodule to see if it contains changes (unless told not to do so via
config or command line option). When that fails, e.g. due to a corrupt
submodule .git directory, it just prints "git status --porcelain failed"
or "Could not run git status --porcelain" without giving the user a clue
where that happened.

Add '"in submodule %s", path' to these error strings to tell the user
where exactly the problem occurred.

Reported-by: Seth Robertson <in-gitvger@baka.org>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit symbolic-ref: documentation fix
Michael Haggerty [Wed, 7 Dec 2011 15:20:16 +0000 (16:20 +0100)]
git symbolic-ref: documentation fix

The old "git symbolic-ref" manpage seemed to imply in one place that
symlinks are still the default way to represent symbolic references
and in another that symlinks are deprecated.  Fix the text and shorten
the justification for the change of implementation.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-gui: Set both 16x16 and 32x32 icons on X to pacify Xming.
Samuel Bronson [Wed, 7 Dec 2011 12:48:04 +0000 (12:48 +0000)]
git-gui: Set both 16x16 and 32x32 icons on X to pacify Xming.

It would be better if the 32x32 icon was equivalent to the one used on
Windows (in git-gui.ico), but I'm not sure how that would best be done,
so I copied this code from gitk instead.

Signed-off-by: Samuel Bronson <naesten@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
12 years agouserdiff: allow * between cpp funcname words
Thomas Rast [Tue, 6 Dec 2011 16:35:08 +0000 (17:35 +0100)]
userdiff: allow * between cpp funcname words

The cpp pattern, used for C and C++, would not match the start of a
declaration such as

  static char *prepare_index(int argc,

because it did not allow for * anywhere between the various words that
constitute the modifiers, type and function name.  Fix it.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'master' of git://bogomips.org/git-svn
Junio C Hamano [Tue, 6 Dec 2011 05:02:51 +0000 (21:02 -0800)]
Merge branch 'master' of git://bogomips.org/git-svn

* 'master' of git://bogomips.org/git-svn:
  git-svn.perl: close the edit for propedits even with no mods

12 years agoCopy resolve_ref() return value for longer use
Nguyễn Thái Ngọc Duy [Sun, 13 Nov 2011 10:22:15 +0000 (17:22 +0700)]
Copy resolve_ref() return value for longer use

resolve_ref() may return a pointer to a static buffer. Callers that
use this value longer than a couple of statements should copy the
value to avoid some hidden resolve_ref() call that may change the
static buffer's value.

The bug found by Tony Wang <wwwjfy@gmail.com> in builtin/merge.c
demonstrates this. The first call is in cmd_merge()

branch = resolve_ref("HEAD", head_sha1, 0, &flag);

Then deep in lookup_commit_or_die() a few lines after, resolve_ref()
may be called again and destroy "branch".

lookup_commit_or_die
 lookup_commit_reference
  lookup_commit_reference_gently
   parse_object
    lookup_replace_object
     do_lookup_replace_object
      prepare_replace_object
       for_each_replace_ref
        do_for_each_ref
         get_loose_refs
          get_ref_dir
           get_ref_dir
            resolve_ref

All call sites are checked and made sure that xstrdup() is called if
the value should be saved.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoKick-off the 1.7.9 cycle
Junio C Hamano [Mon, 5 Dec 2011 23:49:34 +0000 (15:49 -0800)]
Kick-off the 1.7.9 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/refresh-porcelain-output'
Junio C Hamano [Mon, 5 Dec 2011 23:30:47 +0000 (15:30 -0800)]
Merge branch 'jk/refresh-porcelain-output'

* jk/refresh-porcelain-output:
  refresh_index: make porcelain output more specific
  refresh_index: rename format variables
  read-cache: let refresh_cache_ent pass up changed flags

12 years agoMerge branch 'gh/userdiff-matlab'
Junio C Hamano [Mon, 5 Dec 2011 23:26:21 +0000 (15:26 -0800)]
Merge branch 'gh/userdiff-matlab'

* gh/userdiff-matlab:
  Add built-in diff patterns for MATLAB code

12 years agoMerge branch 'nd/maint-ignore-exclude'
Junio C Hamano [Mon, 5 Dec 2011 23:25:12 +0000 (15:25 -0800)]
Merge branch 'nd/maint-ignore-exclude'

* nd/maint-ignore-exclude:
  checkout,merge: loosen overwriting untracked file check based on info/exclude

12 years agoMerge branch 'vr/git-merge-default-to-upstream'
Junio C Hamano [Mon, 5 Dec 2011 23:24:12 +0000 (15:24 -0800)]
Merge branch 'vr/git-merge-default-to-upstream'

* vr/git-merge-default-to-upstream:
  Show error for 'git merge' with unset merge.defaultToUpstream

12 years agoMerge branch 'jc/maint-pack-object-cycle'
Junio C Hamano [Mon, 5 Dec 2011 23:19:34 +0000 (15:19 -0800)]
Merge branch 'jc/maint-pack-object-cycle'

* jc/maint-pack-object-cycle:
  pack-object: tolerate broken packs that have duplicated objects

Conflicts:
builtin/pack-objects.c

12 years agoMerge branch 'jc/index-pack-reject-dups'
Junio C Hamano [Mon, 5 Dec 2011 23:13:42 +0000 (15:13 -0800)]
Merge branch 'jc/index-pack-reject-dups'

* jc/index-pack-reject-dups:
  receive-pack, fetch-pack: reject bogus pack that records objects twice

12 years agoMerge branch 'vr/msvc'
Junio C Hamano [Mon, 5 Dec 2011 23:12:54 +0000 (15:12 -0800)]
Merge branch 'vr/msvc'

* vr/msvc:
  MSVC: Remove unneeded header stubs
  Compile fix for MSVC: Include <io.h>
  Compile fix for MSVC: Do not include sys/resources.h

12 years agoMerge branch 'na/strtoimax'
Junio C Hamano [Mon, 5 Dec 2011 23:12:49 +0000 (15:12 -0800)]
Merge branch 'na/strtoimax'

* na/strtoimax:
  Support sizes >=2G in various config options accepting 'g' sizes.
  Compatibility: declare strtoimax() under NO_STRTOUMAX
  Add strtoimax() compatibility function.

12 years agoMerge branch 'ab/clang-lints'
Junio C Hamano [Mon, 5 Dec 2011 23:12:34 +0000 (15:12 -0800)]
Merge branch 'ab/clang-lints'

* ab/clang-lints:
  cast variable in call to free() in builtin/diff.c and submodule.c
  apply: get rid of useless x < 0 comparison on a size_t type

12 years agoMerge branch 'nd/prune-progress'
Junio C Hamano [Mon, 5 Dec 2011 23:11:11 +0000 (15:11 -0800)]
Merge branch 'nd/prune-progress'

* nd/prune-progress:
  reachable: per-object progress
  prune: handle --progress/no-progress
  prune: show progress while marking reachable objects

12 years agoMerge branch 'nd/fsck-progress'
Junio C Hamano [Mon, 5 Dec 2011 23:11:07 +0000 (15:11 -0800)]
Merge branch 'nd/fsck-progress'

* nd/fsck-progress:
  fsck: print progress
  fsck: avoid reading every object twice
  verify_packfile(): check as many object as possible in a pack
  fsck: return error code when verify_pack() goes wrong

12 years agoMerge branch 'mf/curl-select-fdset'
Junio C Hamano [Mon, 5 Dec 2011 23:10:28 +0000 (15:10 -0800)]
Merge branch 'mf/curl-select-fdset'

* mf/curl-select-fdset:
  http: drop "local" member from request struct
  http.c: Rely on select instead of tracking whether data was received
  http.c: Use timeout suggested by curl instead of fixed 50ms timeout
  http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping

12 years agoMerge branch 'nd/misc-cleanups'
Junio C Hamano [Mon, 5 Dec 2011 23:10:20 +0000 (15:10 -0800)]
Merge branch 'nd/misc-cleanups'

* nd/misc-cleanups:
  unpack_object_header_buffer(): clear the size field upon error
  tree_entry_interesting: make use of local pointer "item"
  tree_entry_interesting(): give meaningful names to return values
  read_directory_recursive: reduce one indentation level
  get_tree_entry(): do not call find_tree_entry() on an empty tree
  tree-walk.c: do not leak internal structure in tree_entry_len()

12 years agoMerge branch 'maint'
Junio C Hamano [Mon, 5 Dec 2011 23:08:20 +0000 (15:08 -0800)]
Merge branch 'maint'

* maint:
  stripspace: fix outdated comment
  Add MYMETA.yml to perl/.gitignore

12 years agoMerge branch 'maint-1.7.7' into maint
Junio C Hamano [Mon, 5 Dec 2011 23:07:54 +0000 (15:07 -0800)]
Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
  stripspace: fix outdated comment
  Add MYMETA.yml to perl/.gitignore

12 years agoMerge branch 'maint-1.7.6' into maint-1.7.7
Junio C Hamano [Mon, 5 Dec 2011 23:07:49 +0000 (15:07 -0800)]
Merge branch 'maint-1.7.6' into maint-1.7.7

* maint-1.7.6:
  stripspace: fix outdated comment
  Add MYMETA.yml to perl/.gitignore

12 years agostripspace: fix outdated comment
Jeff King [Mon, 5 Dec 2011 22:29:15 +0000 (17:29 -0500)]
stripspace: fix outdated comment

The comment on top of stripspace() claims that the buffer
will no longer be NUL-terminated. However, this has not been
the case at least since the move to using strbuf in 2007.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-p4: introduce skipSubmitEdit
Pete Wyckoff [Mon, 5 Dec 2011 00:22:45 +0000 (19:22 -0500)]
git-p4: introduce skipSubmitEdit

Add a configuration variable to skip invoking the editor in the
submit path.

The existing variable skipSubmitEditCheck continues to make sure
that the submit template was indeed modified by the editor; but,
it is not considered if skipSubmitEdit is true.

Reported-by: Loren A. Linden Levy <lindenle@gmail.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoAdd MYMETA.yml to perl/.gitignore
Sebastian Morr [Fri, 2 Dec 2011 22:55:28 +0000 (23:55 +0100)]
Add MYMETA.yml to perl/.gitignore

This file is auto-generated by newer versions of ExtUtils::MakeMaker
(presumably starting with the version shipping with Perl 5.14). It just
contains extra information about the environment and arguments to the
Makefile-building process, and should be ignored.

Signed-off-by: Sebastian Morr <sebastian@morr.cc>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agobuiltin/apply.c: report error on failure to recognize input
Brandon Casey [Sat, 3 Dec 2011 20:35:50 +0000 (14:35 -0600)]
builtin/apply.c: report error on failure to recognize input

When git apply is passed something that is not a patch, it does not produce
an error message or exit with a non-zero status if it was not actually
"applying" the patch i.e. --check or --numstat etc were supplied on the
command line.

Fix this by producing an error when apply fails to find any hunks whatsoever
while parsing the patch.

This will cause some of the output formats (--numstat, --diffstat, etc) to
produce an error when they formerly would have reported zero changes and
exited successfully.  That seems like the correct behavior though.  Failure
to recognize the input as a patch should be an error.

Plus, add a test.

Reported-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot/t4131-apply-fake-ancestor.sh: fix broken test
Brandon Casey [Sat, 3 Dec 2011 20:35:49 +0000 (14:35 -0600)]
t/t4131-apply-fake-ancestor.sh: fix broken test

The third test "apply --build-fake-ancestor in a subdirectory" has been
broken since it was introduced.  It intended to modify a tracked file named
'sub/3.t' and then produce a diff which could be git apply'ed, but the file
named 'sub/3.t' does not exist.  The file that exists in the repo is called
'sub/3'.  Since no tracked files were modified, an empty diff was produced,
and the test succeeded.

Correct this test by supplying the intended name of the tracked file,
'sub/3.t', to test_commit in the first test.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'js/merge-edit-option'
Junio C Hamano [Mon, 5 Dec 2011 19:15:52 +0000 (11:15 -0800)]
Merge branch 'js/merge-edit-option'

* js/merge-edit-option:
  Documentation: fix formatting error in merge-options.txt

12 years agoDocumentation: fix formatting error in merge-options.txt
Jack Nagel [Mon, 5 Dec 2011 07:53:27 +0000 (01:53 -0600)]
Documentation: fix formatting error in merge-options.txt

The first paragraph inside of a list item does not need a preceding line
consisting of a single '+', and in fact this causes the text to be
misrendered. Fix it.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoGit 1.7.8 v1.7.8
Junio C Hamano [Fri, 2 Dec 2011 17:31:32 +0000 (09:31 -0800)]
Git 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-svn.perl: close the edit for propedits even with no mods
Steven Walter [Thu, 1 Dec 2011 02:37:27 +0000 (21:37 -0500)]
git-svn.perl: close the edit for propedits even with no mods

It's legitimate to update the mergeinfo property without
actually changing any files.  This can happen when changes are
backported to a branch, and then that branch is merged back
into mainline.  We still want to record the updated mergeinfo
for book-keeping.

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
12 years agobulk-checkin: replace fast-import based implementation
Junio C Hamano [Fri, 28 Oct 2011 21:48:40 +0000 (14:48 -0700)]
bulk-checkin: replace fast-import based implementation

This extends the earlier approach to stream a large file directly from the
filesystem to its own packfile, and allows "git add" to send large files
directly into a single pack. Older code used to spawn fast-import, but the
new bulk-checkin API replaces it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocsum-file: introduce sha1file_checkpoint
Junio C Hamano [Fri, 18 Nov 2011 00:26:54 +0000 (16:26 -0800)]
csum-file: introduce sha1file_checkpoint

It is useful to be able to rewind a check-summed file to a certain
previous state after writing data into it using sha1write() API. The
fast-import command does this after streaming a blob data to the packfile
being generated and then noticing that the same blob has already been
written, and it does this with a private code truncate_pack() that is
commented as "Yes, this is a layering violation".

Introduce two API functions, sha1file_checkpoint(), that allows the caller
to save a state of a sha1file, and then later revert it to the saved state.
Use it to reimplement truncate_pack().

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorebase -i: interrupt rebase when "commit --amend" failed during "reword"
Andrew Wong [Wed, 30 Nov 2011 15:52:51 +0000 (10:52 -0500)]
rebase -i: interrupt rebase when "commit --amend" failed during "reword"

"commit --amend" could fail in cases like the user empties the commit
message, or pre-commit failed.  When it fails, rebase should be
interrupted and alert the user, rather than ignoring the error and
continue on rebasing.  This also gives users a way to gracefully
interrupt a "reword" if they decided they actually want to do an "edit",
or even "rebase --abort".

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-gui: added config gui.gcwarning to disable the gc hint message
Pat Thoyts [Tue, 29 Nov 2011 09:27:17 +0000 (09:27 +0000)]
git-gui: added config gui.gcwarning to disable the gc hint message

On startup in multicommit mode git-gui checks to see if the repository
has a lot of objects. If so it shows a dialog suggesting gc be run.
This adds 'gui.gcwarning' as a control config variable to allow this
to be disabled. The default is true (the warning is shown). Setting this
false will prevent the check being done.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
12 years agogit-gui: set whitespace warnings appropriate to this project
Pat Thoyts [Wed, 30 Nov 2011 11:35:28 +0000 (11:35 +0000)]
git-gui: set whitespace warnings appropriate to this project

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
12 years agofast-import: Fix incorrect fanout level when modifying existing notes refs
Johan Herland [Fri, 25 Nov 2011 00:09:47 +0000 (01:09 +0100)]
fast-import: Fix incorrect fanout level when modifying existing notes refs

This fixes the bug uncovered by the tests added in the previous two patches.

When an existing notes ref was loaded into the fast-import machinery, the
num_notes counter associated with that ref remained == 0, even though the
true number of notes in the loaded ref was higher. This caused a fanout
level of 0 to be used, although the actual fanout of the tree could be > 0.
Manipulating the notes tree at an incorrect fanout level causes removals to
silently fail, and modifications of existing notes to instead produce an
additional note (leaving the old object in place at a different fanout level).

This patch fixes the bug by explicitly counting the number of notes in the
notes tree whenever it looks like the num_notes counter could be wrong (when
num_notes == 0). There may be false positives (i.e. triggering the counting
when the notes tree is truly empty), but in those cases, the counting should
not take long.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>