Code

git.git
13 years agoMerge branch 'gb/gitweb-remote-heads' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:33 +0000 (16:00 -0800)]
Merge branch 'gb/gitweb-remote-heads' into next

* gb/gitweb-remote-heads:
  git instaweb: enable remote_heads
  gitweb: group remote heads by remote
  gitweb: provide a routine to display (sub)sections
  gitweb: refactor repository URL printing
  gitweb: remotes view for a single remote
  gitweb: allow action specialization in page header
  gitweb: nagivation menu for tags, heads and remotes
  gitweb: separate heads and remotes lists
  gitweb: git_get_heads_list accepts an optional list of refs
  gitweb: introduce remote_heads feature
  gitweb: use fullname as hash_base in heads link

13 years agoMerge branch 'jh/notes-merge' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:33 +0000 (16:00 -0800)]
Merge branch 'jh/notes-merge' into next

* jh/notes-merge: (23 commits)
  Provide 'git merge --abort' as a synonym to 'git reset --merge'
  cmd_merge(): Parse options before checking MERGE_HEAD
  Provide 'git notes get-ref' to easily retrieve current notes ref
  git notes merge: Add testcases for merging notes trees at different fanouts
  git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
  git notes merge: --commit should fail if underlying notes ref has moved
  git notes merge: List conflicting notes in notes merge commit message
  git notes merge: Manual conflict resolution, part 2/2
  git notes merge: Manual conflict resolution, part 1/2
  Documentation: Preliminary docs on 'git notes merge'
  git notes merge: Add automatic conflict resolvers (ours, theirs, union)
  git notes merge: Handle real, non-conflicting notes merges
  builtin/notes.c: Refactor creation of notes commits.
  git notes merge: Initial implementation handling trivial merges only
  builtin/notes.c: Split notes ref DWIMmery into a separate function
  notes.c: Use two newlines (instead of one) when concatenating notes
  (trivial) t3303: Indent with tabs instead of spaces for consistency
  notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond
  notes.h/c: Allow combine_notes functions to remove notes
  notes.c: Reorder functions in preparation for next commit
  ...

Conflicts:
builtin.h

13 years agoMerge branch 'pn/commit-autosquash' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:32 +0000 (16:00 -0800)]
Merge branch 'pn/commit-autosquash' into next

* pn/commit-autosquash:
  add tests of commit --squash
  commit: --squash option for use with rebase --autosquash
  add tests of commit --fixup
  commit: --fixup option for use with rebase --autosquash
  pretty.c: teach format_commit_message() to reencode the output
  commit: helper methods to reduce redundant blocks of code

Conflicts:
t/t3415-rebase-autosquash.sh

13 years agoMerge branch 'jj/icase-directory' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:32 +0000 (16:00 -0800)]
Merge branch 'jj/icase-directory' into next

* jj/icase-directory:
  Support case folding in git fast-import when core.ignorecase=true
  Support case folding for git add when core.ignorecase=true
  Add case insensitivity support when using git ls-files
  Add case insensitivity support for directories when using git status
  Case insensitivity support for .gitignore via core.ignorecase
  Add string comparison functions that respect the ignore_case variable.
  Makefile & configure: add a NO_FNMATCH_CASEFOLD flag
  Makefile & configure: add a NO_FNMATCH flag

Conflicts:
Makefile
config.mak.in
configure.ac
fast-import.c

13 years agoMerge branch 'il/remote-fd-ext' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:29 +0000 (16:00 -0800)]
Merge branch 'il/remote-fd-ext' into next

* il/remote-fd-ext:
  remote-fd/ext: finishing touches after code review

13 years agoMerge branch 'master' into next
Junio C Hamano [Thu, 25 Nov 2010 00:00:25 +0000 (16:00 -0800)]
Merge branch 'master' into next

* master:
  imap-send: link against libcrypto for HMAC and others
  git-send-email.perl: Deduplicate "to:" and "cc:" entries with names
  mingw: do not set errno to 0 on success
  Update draft release notes to 1.7.4

13 years agoMerge branch 'cb/maint-orphan-merge-noclobber'
Junio C Hamano [Wed, 24 Nov 2010 23:55:36 +0000 (15:55 -0800)]
Merge branch 'cb/maint-orphan-merge-noclobber'

* cb/maint-orphan-merge-noclobber:
  do not overwrite untracked during merge from unborn branch

13 years agoMerge branch 'ao/send-email-irt'
Junio C Hamano [Wed, 24 Nov 2010 23:55:32 +0000 (15:55 -0800)]
Merge branch 'ao/send-email-irt'

* ao/send-email-irt:
  git-send-email.perl: make initial In-Reply-To apply only to first email
  t9001: send-email interation with --in-reply-to and --chain-reply-to

13 years agoMerge branch 'jk/add-e-doc'
Junio C Hamano [Wed, 24 Nov 2010 23:55:29 +0000 (15:55 -0800)]
Merge branch 'jk/add-e-doc'

* jk/add-e-doc:
  docs: give more hints about how "add -e" works
  docs: give more hints about how "add -e" works

13 years agoMerge branch 'rs/opt-help-text'
Junio C Hamano [Wed, 24 Nov 2010 23:55:19 +0000 (15:55 -0800)]
Merge branch 'rs/opt-help-text'

* rs/opt-help-text:
  verify-tag: document --verbose
  branch: improve --verbose description
  archive: improve --verbose description
  Describe various forms of "be quiet" using OPT__QUIET
  add OPT__FORCE
  add description parameter to OPT__QUIET
  add description parameter to OPT__DRY_RUN
  add description parameter to OPT__VERBOSE

13 years agoMerge branch 'kb/maint-rebase-autosquash'
Junio C Hamano [Wed, 24 Nov 2010 23:55:15 +0000 (15:55 -0800)]
Merge branch 'kb/maint-rebase-autosquash'

* kb/maint-rebase-autosquash:
  rebase: teach --autosquash to match on sha1 in addition to message
  rebase: better rearranging of fixup!/squash! lines with --autosquash

13 years agoMerge branch 'mm/phrase-remote-tracking'
Junio C Hamano [Wed, 24 Nov 2010 23:55:05 +0000 (15:55 -0800)]
Merge branch 'mm/phrase-remote-tracking'

* mm/phrase-remote-tracking:
  git-branch.txt: mention --set-upstream as a way to change upstream configuration
  user-manual: remote-tracking can be checked out, with detached HEAD
  user-manual.txt: explain better the remote(-tracking) branch terms
  Change incorrect "remote branch" to "remote tracking branch" in C code
  Change incorrect uses of "remote branch" meaning "remote-tracking"
  Change "tracking branch" to "remote-tracking branch"
  everyday.txt: change "tracking branch" to "remote-tracking branch"
  Change remote tracking to remote-tracking in non-trivial places
  Replace "remote tracking" with "remote-tracking"
  Better "Changed but not updated" message in git-status

13 years agoMerge branch 'en/and-cascade-tests'
Junio C Hamano [Wed, 24 Nov 2010 23:51:49 +0000 (15:51 -0800)]
Merge branch 'en/and-cascade-tests'

* en/and-cascade-tests: (25 commits)
  t4124 (apply --whitespace): use test_might_fail
  t3404: do not use 'describe' to implement test_cmp_rev
  t3404 (rebase -i): introduce helper to check position of HEAD
  t3404 (rebase -i): move comment to description
  t3404 (rebase -i): unroll test_commit loops
  t3301 (notes): use test_expect_code for clarity
  t1400 (update-ref): use test_must_fail
  t1502 (rev-parse --parseopt): test exit code from "-h"
  t6022 (renaming merge): chain test commands with &&
  test-lib: introduce test_line_count to measure files
  tests: add missing &&, batch 2
  tests: add missing &&
  Introduce sane_unset and use it to ensure proper && chaining
  t7800 (difftool): add missing &&
  t7601 (merge-pull-config): add missing &&
  t7001 (mv): add missing &&
  t6016 (rev-list-graph-simplify-history): add missing &&
  t5602 (clone-remote-exec): add missing &&
  t4026 (color): remove unneeded and unchained command
  t4019 (diff-wserror): add lots of missing &&
  ...

Conflicts:
t/t7006-pager.sh

13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 24 Nov 2010 21:24:49 +0000 (13:24 -0800)]
Merge branch 'maint'

* maint:
  imap-send: link against libcrypto for HMAC and others
  git-send-email.perl: Deduplicate "to:" and "cc:" entries with names
  mingw: do not set errno to 0 on success

13 years agoMerge branch 'jl/maint-pull-tags-doc' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:47:42 +0000 (12:47 -0800)]
Merge branch 'jl/maint-pull-tags-doc' into maint

* jl/maint-pull-tags-doc:
  pull: Remove --tags option from manpage

13 years agoMerge branch 'kb/maint-diff-ws-check' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:47:27 +0000 (12:47 -0800)]
Merge branch 'kb/maint-diff-ws-check' into maint

* kb/maint-diff-ws-check:
  diff: handle lines containing only whitespace and tabs better
  test-lib: extend test_decode_color to handle more color codes

13 years agoMerge branch 'jm/mailmap' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:47:18 +0000 (12:47 -0800)]
Merge branch 'jm/mailmap' into maint

* jm/mailmap:
  t4203: do not let "git shortlog" DWIM based on tty
  t4203 (mailmap): stop hardcoding commit ids and dates
  mailmap: fix use of freed memory

13 years agoMerge branch 'tr/maint-git-repack-tmpfile' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:47:10 +0000 (12:47 -0800)]
Merge branch 'tr/maint-git-repack-tmpfile' into maint

* tr/maint-git-repack-tmpfile:
  repack: place temporary packs under .git/objects/pack/

13 years agoMerge branch 'jk/maint-apply-no-binary' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:47:04 +0000 (12:47 -0800)]
Merge branch 'jk/maint-apply-no-binary' into maint

* jk/maint-apply-no-binary:
  apply: don't segfault on binary files with missing data

13 years agoMerge branch 'jn/send-pack-error' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:46 +0000 (12:46 -0800)]
Merge branch 'jn/send-pack-error' into maint

* jn/send-pack-error:
  send-pack: avoid redundant "pack-objects died with strange error"

13 years agoMerge branch 'ak/submodule-sync' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:40 +0000 (12:46 -0800)]
Merge branch 'ak/submodule-sync' into maint

* ak/submodule-sync:
  submodule sync: Update "submodule.<name>.url" for empty directories

13 years agoMerge branch 'jk/maint-rev-list-nul' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:32 +0000 (12:46 -0800)]
Merge branch 'jk/maint-rev-list-nul' into maint

* jk/maint-rev-list-nul:
  rev-list: handle %x00 NUL in user format

13 years agoMerge branch 'cb/diff-fname-optim' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:26 +0000 (12:46 -0800)]
Merge branch 'cb/diff-fname-optim' into maint

* cb/diff-fname-optim:
  diff: avoid repeated scanning while looking for funcname
  do not search functions for patch ID
  add rebase patch id tests

13 years agoMerge branch 'jk/no-textconv-symlink' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:20 +0000 (12:46 -0800)]
Merge branch 'jk/no-textconv-symlink' into maint

* jk/no-textconv-symlink:
  diff: don't use pathname-based diff drivers for symlinks

13 years agoMerge branch 'dk/maint-blame-el' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:17 +0000 (12:46 -0800)]
Merge branch 'dk/maint-blame-el' into maint

* dk/maint-blame-el:
  git-blame.el: Add (require 'format-spec)

13 years agoMerge branch 'aw/git-p4-deletion' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:46:14 +0000 (12:46 -0800)]
Merge branch 'aw/git-p4-deletion' into maint

* aw/git-p4-deletion:
  Fix handling of git-p4 on deleted files

13 years agoMerge branch 'kf/post-receive-sample-hook' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:45:39 +0000 (12:45 -0800)]
Merge branch 'kf/post-receive-sample-hook' into maint

* kf/post-receive-sample-hook:
  post-receive-email: ensure sent messages are not empty

13 years agoMerge branch 'jk/repack-reuse-object' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:45:07 +0000 (12:45 -0800)]
Merge branch 'jk/repack-reuse-object' into maint

* jk/repack-reuse-object:
  Documentation: pack.compression: explain how to recompress
  repack: add -F flag to let user choose between --no-reuse-delta/object

Conflicts:
Documentation/git-repack.txt

13 years agoMerge branch 'bc/fix-cherry-pick-root' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:44:46 +0000 (12:44 -0800)]
Merge branch 'bc/fix-cherry-pick-root' into maint

* bc/fix-cherry-pick-root:
  builtin/revert.c: don't dereference a NULL pointer

13 years agoMerge branch 'uk/fix-author-ident-sed-script' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:44:41 +0000 (12:44 -0800)]
Merge branch 'uk/fix-author-ident-sed-script' into maint

* uk/fix-author-ident-sed-script:
  get_author_ident_from_commit(): remove useless quoting

13 years agoMerge branch 'ab/makefile-track-cc' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:44:35 +0000 (12:44 -0800)]
Merge branch 'ab/makefile-track-cc' into maint

* ab/makefile-track-cc:
  Makefile: add CC to TRACK_CFLAGS

13 years agoMerge branch 'mg/reset-doc' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:44:26 +0000 (12:44 -0800)]
Merge branch 'mg/reset-doc' into maint

* mg/reset-doc:
  git-reset.txt: make modes description more consistent
  git-reset.txt: point to git-checkout
  git-reset.txt: use "working tree" consistently
  git-reset.txt: reset --soft is not a no-op
  git-reset.txt: reset does not change files in target
  git-reset.txt: clarify branch vs. branch head

13 years agoMerge branch 'tr/send-email-refuse-sending-unedited-cover-letter' into maint
Junio C Hamano [Wed, 24 Nov 2010 20:44:12 +0000 (12:44 -0800)]
Merge branch 'tr/send-email-refuse-sending-unedited-cover-letter' into maint

* tr/send-email-refuse-sending-unedited-cover-letter:
  send-email: Refuse to send cover-letter template subject

13 years agoimap-send: link against libcrypto for HMAC and others
Diego Elio Pettenò [Wed, 24 Nov 2010 20:03:53 +0000 (21:03 +0100)]
imap-send: link against libcrypto for HMAC and others

When using stricter linkers, such as GNU gold or Darwin ld, transitive
dependencies are not counted towards symbol resolution. If we don't link
imap-send to libcrypto, we'll have undefined references to the HMAC_*,
EVP_* and ERR_* functions families.

Signed-off-by: Diego Elio Pettenò <flameeyes@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-send-email.perl: Deduplicate "to:" and "cc:" entries with names
Joe Perches [Sat, 20 Nov 2010 23:06:05 +0000 (15:06 -0800)]
git-send-email.perl: Deduplicate "to:" and "cc:" entries with names

If an email address in the "to:" list is in the style
"First Last <email@domain.tld>", ie: not just a bare
address like "email@domain.tld", and the same named
entry style exists in the "cc:" list, the current
logic will not remove the entry from the "cc:" list.

Add logic to better deduplicate the "cc:" list by also
matching the email address with angle brackets.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomingw: do not set errno to 0 on success
Erik Faye-Lund [Tue, 23 Nov 2010 19:53:08 +0000 (20:53 +0100)]
mingw: do not set errno to 0 on success

Currently do_lstat always sets errno to 0 on success. This incorrectly
overwrites previous errors.

Fetch the error-code into a temporary variable instead, and assign that
to errno on failure.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'ef/mingw-daemon'
Junio C Hamano [Wed, 24 Nov 2010 00:05:46 +0000 (16:05 -0800)]
Merge branch 'ef/mingw-daemon'

* ef/mingw-daemon:
  daemon: opt-out on features that require posix
  daemon: make --inetd and --detach incompatible
  daemon: use socklen_t
  mingw: use poll-emulation from gnulib
  mingw: import poll-emulation from gnulib
  daemon: get remote host address from root-process
  Improve the mingw getaddrinfo stub to handle more use cases
  daemon: use full buffered mode for stderr
  daemon: use run-command api for async serving
  mingw: add kill emulation
  mingw: support waitpid with pid > 0 and WNOHANG
  mingw: use real pid
  inet_ntop: fix a couple of old-style decls
  compat: add inet_pton and inet_ntop prototypes
  mingw: implement syslog
  mingw: add network-wrappers for daemon

13 years agoremote-fd/ext: finishing touches after code review
Ilari Liusvaara [Wed, 17 Nov 2010 17:15:34 +0000 (09:15 -0800)]
remote-fd/ext: finishing touches after code review

When compiling with pthread support, transport-helper.c needs to include
necessary header files.  Also fix a few error messages in remote-ext and
remote-fd programs, and a potential buffer underrun in remote-fd.

In the documentation, clarify how %G and %V are used; the old description
looked as if they take repository/vhost parameters, which was wrong.

Also fix AsciiDoc markup for the page title of remote-fd/remote-ext manpages,
and tweak the way how section headers are shown.

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.4
Junio C Hamano [Thu, 18 Nov 2010 00:43:05 +0000 (16:43 -0800)]
Update draft release notes to 1.7.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cb/leading-path-removal' into next
Junio C Hamano [Wed, 17 Nov 2010 23:06:29 +0000 (15:06 -0800)]
Merge branch 'cb/leading-path-removal' into next

* cb/leading-path-removal:
  use persistent memory for rejected paths

14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 17 Nov 2010 23:04:16 +0000 (15:04 -0800)]
Merge branch 'master' into next

* master:

14 years agoMerge branch 'jl/maint-pull-tags-doc'
Junio C Hamano [Wed, 17 Nov 2010 23:02:35 +0000 (15:02 -0800)]
Merge branch 'jl/maint-pull-tags-doc'

* jl/maint-pull-tags-doc:
  pull: Remove --tags option from manpage

14 years agoMerge branch 'kb/maint-submodule-savearg'
Junio C Hamano [Wed, 17 Nov 2010 23:02:12 +0000 (15:02 -0800)]
Merge branch 'kb/maint-submodule-savearg'

* kb/maint-submodule-savearg:
  submodule: only preserve flags across recursive status/update invocations
  submodule: preserve all arguments exactly when recursing

14 years agoMerge branch 'jk/missing-config'
Junio C Hamano [Wed, 17 Nov 2010 23:02:08 +0000 (15:02 -0800)]
Merge branch 'jk/missing-config'

* jk/missing-config:
  config: treat non-existent config files as empty

14 years agoMerge branch 'kb/maint-diff-ws-check'
Junio C Hamano [Wed, 17 Nov 2010 23:01:47 +0000 (15:01 -0800)]
Merge branch 'kb/maint-diff-ws-check'

* kb/maint-diff-ws-check:
  diff: handle lines containing only whitespace and tabs better
  test-lib: extend test_decode_color to handle more color codes

14 years agoMerge branch 'bg/maint-gitweb-test-lib'
Junio C Hamano [Wed, 17 Nov 2010 23:01:37 +0000 (15:01 -0800)]
Merge branch 'bg/maint-gitweb-test-lib'

* bg/maint-gitweb-test-lib:
  t/gitweb-lib: Don't pass constant to decode_utf8

Conflicts:
t/gitweb-lib.sh

14 years agoMerge branch 'jm/mailmap'
Junio C Hamano [Wed, 17 Nov 2010 23:01:26 +0000 (15:01 -0800)]
Merge branch 'jm/mailmap'

* jm/mailmap:
  t4203: do not let "git shortlog" DWIM based on tty
  t4203 (mailmap): stop hardcoding commit ids and dates
  mailmap: fix use of freed memory

14 years agoMerge branch 'tr/maint-git-repack-tmpfile'
Junio C Hamano [Wed, 17 Nov 2010 23:01:23 +0000 (15:01 -0800)]
Merge branch 'tr/maint-git-repack-tmpfile'

* tr/maint-git-repack-tmpfile:
  repack: place temporary packs under .git/objects/pack/

14 years agoMerge branch 'jk/maint-apply-no-binary'
Junio C Hamano [Wed, 17 Nov 2010 23:01:18 +0000 (15:01 -0800)]
Merge branch 'jk/maint-apply-no-binary'

* jk/maint-apply-no-binary:
  apply: don't segfault on binary files with missing data

14 years agoMerge branch 'jk/push-progress'
Junio C Hamano [Wed, 17 Nov 2010 23:01:00 +0000 (15:01 -0800)]
Merge branch 'jk/push-progress'

* jk/push-progress:
  push: pass --progress down to git-pack-objects
  t5523-push-upstream: test progress messages
  t5523-push-upstream: add function to ensure fresh upstream repo
  test_terminal: ensure redirections work reliably
  test_terminal: catch use without TTY prerequisite
  test-lib: allow test code to check the list of declared prerequisites
  tests: test terminal output to both stdout and stderr
  tests: factor out terminal handling from t7006

14 years agoMerge branch 'tr/maint-merge-file-subdir'
Junio C Hamano [Wed, 17 Nov 2010 23:00:56 +0000 (15:00 -0800)]
Merge branch 'tr/maint-merge-file-subdir'

* tr/maint-merge-file-subdir:
  merge-file: correctly find files when called in subdir
  prefix_filename(): safely handle the case where pfx_len=0

14 years agoMerge branch 'jn/send-pack-error'
Junio C Hamano [Wed, 17 Nov 2010 23:00:51 +0000 (15:00 -0800)]
Merge branch 'jn/send-pack-error'

* jn/send-pack-error:
  send-pack: avoid redundant "pack-objects died with strange error"

14 years agoMerge branch 'mg/make-prove'
Junio C Hamano [Wed, 17 Nov 2010 23:00:46 +0000 (15:00 -0800)]
Merge branch 'mg/make-prove'

* mg/make-prove:
  test: allow running the tests under "prove"

14 years agoMerge branch 'kb/completion-checkout'
Junio C Hamano [Wed, 17 Nov 2010 23:00:42 +0000 (15:00 -0800)]
Merge branch 'kb/completion-checkout'

* kb/completion-checkout:
  completion: Support the DWIM mode for git checkout

14 years agoMerge branch 'sg/completion'
Junio C Hamano [Wed, 17 Nov 2010 23:00:11 +0000 (15:00 -0800)]
Merge branch 'sg/completion'

* sg/completion:
  bash: support pretty format aliases
  bash: support more 'git notes' subcommands and their options
  bash: not all 'git bisect' subcommands make sense when not bisecting
  bash: offer refs for 'git bisect start'

14 years agoMerge branch 'sg/bisect'
Junio C Hamano [Wed, 17 Nov 2010 23:00:03 +0000 (15:00 -0800)]
Merge branch 'sg/bisect'

* sg/bisect:
  bisect: check for mandatory argument of 'bisect replay'
  bisect: improve error msg of 'bisect reset' when original HEAD is deleted
  bisect: improve error message of 'bisect log' while not bisecting

14 years agoMerge branch 'ak/submodule-sync'
Junio C Hamano [Wed, 17 Nov 2010 22:59:54 +0000 (14:59 -0800)]
Merge branch 'ak/submodule-sync'

* ak/submodule-sync:
  submodule sync: Update "submodule.<name>.url" for empty directories

14 years agoMerge branch 'jk/maint-rev-list-nul'
Junio C Hamano [Wed, 17 Nov 2010 22:59:33 +0000 (14:59 -0800)]
Merge branch 'jk/maint-rev-list-nul'

* jk/maint-rev-list-nul:
  rev-list: handle %x00 NUL in user format

14 years agoMerge branch 'ks/no-textconv-symlink'
Junio C Hamano [Wed, 17 Nov 2010 22:59:27 +0000 (14:59 -0800)]
Merge branch 'ks/no-textconv-symlink'

* ks/no-textconv-symlink:
  blame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''
  blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks
  blame,cat-file: Prepare --textconv tests for correctly-failing conversion program

14 years agoMerge branch 'jn/gitweb-test'
Junio C Hamano [Wed, 17 Nov 2010 22:59:22 +0000 (14:59 -0800)]
Merge branch 'jn/gitweb-test'

* jn/gitweb-test:
  gitweb/Makefile: Include gitweb/config.mak
  gitweb/Makefile: Add 'test' and 'test-installed' targets
  t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
  gitweb: Move call to evaluate_git_version after evaluate_gitweb_config

14 years agoMerge branch 'cb/diff-fname-optim'
Junio C Hamano [Wed, 17 Nov 2010 22:59:16 +0000 (14:59 -0800)]
Merge branch 'cb/diff-fname-optim'

* cb/diff-fname-optim:
  diff: avoid repeated scanning while looking for funcname
  do not search functions for patch ID
  add rebase patch id tests

14 years agoMerge branch 'jk/no-textconv-symlink'
Junio C Hamano [Wed, 17 Nov 2010 22:59:10 +0000 (14:59 -0800)]
Merge branch 'jk/no-textconv-symlink'

* jk/no-textconv-symlink:
  diff: don't use pathname-based diff drivers for symlinks

14 years agoMerge branch 'dk/maint-blame-el'
Junio C Hamano [Wed, 17 Nov 2010 22:59:04 +0000 (14:59 -0800)]
Merge branch 'dk/maint-blame-el'

* dk/maint-blame-el:
  git-blame.el: Add (require 'format-spec)

14 years agoMerge branch 'ef/mingw-daemon' into next
Junio C Hamano [Wed, 17 Nov 2010 22:44:20 +0000 (14:44 -0800)]
Merge branch 'ef/mingw-daemon' into next

* ef/mingw-daemon:
  daemon: opt-out on features that require posix
  daemon: make --inetd and --detach incompatible
  daemon: use socklen_t
  mingw: use poll-emulation from gnulib
  mingw: import poll-emulation from gnulib
  daemon: get remote host address from root-process
  Improve the mingw getaddrinfo stub to handle more use cases
  daemon: use full buffered mode for stderr
  daemon: use run-command api for async serving
  mingw: add kill emulation
  mingw: support waitpid with pid > 0 and WNOHANG
  mingw: use real pid
  inet_ntop: fix a couple of old-style decls
  compat: add inet_pton and inet_ntop prototypes
  mingw: implement syslog
  mingw: add network-wrappers for daemon

Conflicts:
compat/mingw.h
git-compat-util.h

14 years agoMerge branch 'jc/emfile' into next
Junio C Hamano [Wed, 17 Nov 2010 22:41:45 +0000 (14:41 -0800)]
Merge branch 'jc/emfile' into next

* jc/emfile:
  A loose object is not corrupt if it cannot be read due to EMFILE
  read_sha1_file(): report correct name of packfile with a corrupt object

14 years agoMerge branch 'md/interix' into next
Junio C Hamano [Wed, 17 Nov 2010 22:41:11 +0000 (14:41 -0800)]
Merge branch 'md/interix' into next

* md/interix:
  Interix: add configure checks
  add support for the SUA layer (interix; windows)

14 years agoMerge branch 'jl/add-p-reverse-message' into next
Junio C Hamano [Wed, 17 Nov 2010 22:40:55 +0000 (14:40 -0800)]
Merge branch 'jl/add-p-reverse-message' into next

* jl/add-p-reverse-message:
  Correct help blurb in checkout -p and friends

14 years agoMerge branch 'jl/clone-recurse-sm-synonym' into next
Junio C Hamano [Wed, 17 Nov 2010 22:40:48 +0000 (14:40 -0800)]
Merge branch 'jl/clone-recurse-sm-synonym' into next

* jl/clone-recurse-sm-synonym:
  clone: Add the --recurse-submodules option as alias for --recursive

14 years agoMerge branch 'jn/cherry-pick-refresh-index' into next
Junio C Hamano [Wed, 17 Nov 2010 22:40:43 +0000 (14:40 -0800)]
Merge branch 'jn/cherry-pick-refresh-index' into next

* jn/cherry-pick-refresh-index:
  cherry-pick/revert: transparently refresh index

14 years agoMerge branch 'rr/needs-clean-work-tree' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:54 +0000 (14:39 -0800)]
Merge branch 'rr/needs-clean-work-tree' into next

* rr/needs-clean-work-tree:
  Porcelain scripts: Rewrite cryptic "needs update" error message

14 years agoMerge branch 'cm/diff-check-at-eol' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:45 +0000 (14:39 -0800)]
Merge branch 'cm/diff-check-at-eol' into next

* cm/diff-check-at-eol:
  diff --check: correct line numbers of new blank lines at EOF

14 years agoMerge branch 'fc/apply-p2-get-header-name' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:39 +0000 (14:39 -0800)]
Merge branch 'fc/apply-p2-get-header-name' into next

* fc/apply-p2-get-header-name:
  test: git-apply -p2 rename/chmod only
  Fix git-apply with -p greater than 1

14 years agoMerge branch 'jn/fast-import-fix' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:30 +0000 (14:39 -0800)]
Merge branch 'jn/fast-import-fix' into next

* jn/fast-import-fix:
  fast-import: do not clear notes in do_change_note_fanout()
  t9300 (fast-import): another test for the "replace root" feature
  fast-import: tighten M 040000 syntax
  fast-import: filemodify after M 040000 <tree> "" crashes

14 years agoMerge branch 'kb/blame-author-email' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:20 +0000 (14:39 -0800)]
Merge branch 'kb/blame-author-email' into next

* kb/blame-author-email:
  blame: Add option to show author email instead of name

Conflicts:
t/annotate-tests.sh

14 years agoMerge branch 'np/diff-in-corrupt-repository' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:09 +0000 (14:39 -0800)]
Merge branch 'np/diff-in-corrupt-repository' into next

* np/diff-in-corrupt-repository:
  diff: don't presume empty file when corresponding object is missing

14 years agoMerge branch 'np/pack-broken-boundary' into next
Junio C Hamano [Wed, 17 Nov 2010 22:39:04 +0000 (14:39 -0800)]
Merge branch 'np/pack-broken-boundary' into next

* np/pack-broken-boundary:
  make pack-objects a bit more resilient to repo corruption

14 years agoMerge branch 'ak/apply-non-git-epoch' into next
Junio C Hamano [Wed, 17 Nov 2010 22:38:56 +0000 (14:38 -0800)]
Merge branch 'ak/apply-non-git-epoch' into next

* ak/apply-non-git-epoch:
  apply: handle patches with funny filename and colon in timezone
  apply: Recognize epoch timestamps with : in the timezone

14 years agoMerge branch 'tc/smart-http-post-redirect' into next
Junio C Hamano [Wed, 17 Nov 2010 22:38:39 +0000 (14:38 -0800)]
Merge branch 'tc/smart-http-post-redirect' into next

* tc/smart-http-post-redirect:
  smart-http: Don't change POST to GET when following redirect

14 years agoMerge branch 'en/merge-recursive' into next
Junio C Hamano [Wed, 17 Nov 2010 21:59:03 +0000 (13:59 -0800)]
Merge branch 'en/merge-recursive' into next

* en/merge-recursive:
  t6022: Use -eq not = to test output of wc -l

14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 17 Nov 2010 21:58:21 +0000 (13:58 -0800)]
Merge branch 'master' into next

* master:
  clean: remove redundant variable baselen
  Documentation/git-pull: clarify configuration
  Document that rev-list --graph triggers parent rewriting.
  clean: avoid quoting twice
  document sigchain api
  Keep together options controlling the behaviour of diffcore-rename.
  t3402: test "rebase -s<strategy> -X<opt>"

14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 17 Nov 2010 21:57:58 +0000 (13:57 -0800)]
Merge branch 'maint'

* maint:
  clean: remove redundant variable baselen
  Documentation/git-pull: clarify configuration
  Document that rev-list --graph triggers parent rewriting.
  clean: avoid quoting twice
  document sigchain api
  Keep together options controlling the behaviour of diffcore-rename.
  t3402: test "rebase -s<strategy> -X<opt>"

14 years agot6022: Use -eq not = to test output of wc -l
Brian Gernhardt [Mon, 8 Nov 2010 21:29:26 +0000 (16:29 -0500)]
t6022: Use -eq not = to test output of wc -l

When comparing numbers such as "3" to "$(wc -l)", we should check for
numerical equality using -eq instead of string equality using = because
some implementations of wc output extra whitespace.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoclean: remove redundant variable baselen
Nguyễn Thái Ngọc Duy [Mon, 15 Nov 2010 06:42:44 +0000 (13:42 +0700)]
clean: remove redundant variable baselen

baselen used to be the result of common_prefix() when it was made
builtin. Since 1d8842d (Add 'fill_directory()' helper function for
directory traversal - 2009-05-14), its value will always be
zero. Remove it because it's no longer variable.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoProvide 'git merge --abort' as a synonym to 'git reset --merge'
Johan Herland [Tue, 9 Nov 2010 21:49:59 +0000 (22:49 +0100)]
Provide 'git merge --abort' as a synonym to 'git reset --merge'

Teach 'git merge' the --abort option, which verifies the existence of
MERGE_HEAD and then invokes 'git reset --merge' to abort the current
in-progress merge and attempt to reconstruct the pre-merge state.

The reason for adding this option is to provide a user interface for
aborting an in-progress merge that is consistent with the interface
for aborting a rebase ('git rebase --abort'), aborting the application
of a patch series ('git am --abort'), and aborting an in-progress notes
merge ('git notes merge --abort').

The patch includes documentation and testcases that explain and verify
the various scenarios in which 'git merge --abort' can run. The
testcases also document the cases in which 'git merge --abort' is
unable to correctly restore the pre-merge state (look for the '###'
comments towards the bottom of t/t7609-merge-abort.sh).

This patch has been improved by the following contributions:
- Jonathan Nieder: Move test documentation into test_description

Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocmd_merge(): Parse options before checking MERGE_HEAD
Johan Herland [Tue, 9 Nov 2010 21:49:58 +0000 (22:49 +0100)]
cmd_merge(): Parse options before checking MERGE_HEAD

Reorder the initial part of builtin/merge.c:cmd_merge() so that command-line
options are parsed _before_ we load the index and check for MERGE_HEAD
(and exits if it exists). This does not change the behaviour of 'git merge',
but is needed in preparation for the implementation of 'git merge --abort'
(which requires MERGE_HEAD to be present).

This patch has been improved by the following contributions:
- Junio C Hamano: fixup minor style issues

Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoProvide 'git notes get-ref' to easily retrieve current notes ref
Johan Herland [Tue, 9 Nov 2010 21:49:57 +0000 (22:49 +0100)]
Provide 'git notes get-ref' to easily retrieve current notes ref

Script may use 'git notes get-ref' to easily retrieve the current notes ref.

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Add testcases for merging notes trees at different fanouts
Johan Herland [Tue, 9 Nov 2010 21:49:56 +0000 (22:49 +0100)]
git notes merge: Add testcases for merging notes trees at different fanouts

Notes trees may exist at different fanout levels internally. This
implementation detail should not be visible to the user, and it should
certainly not affect the merging of notes tree.

This patch adds testcases verifying the correctness of 'git notes merge'
when merging notes trees at different fanout levels.

This patch has been improved by the following contributions:
- Junio C Hamano: Portability: Don't string-compare 'wc -l' output

Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
Johan Herland [Sun, 14 Nov 2010 23:57:17 +0000 (00:57 +0100)]
git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"

This new strategy is similar to "concatenate", but in addition to
concatenating the two note candidates, this strategy sorts the resulting
lines, and removes duplicate lines from the result. This is equivalent to
applying the "cat | sort | uniq" shell pipeline to the two note candidates.

This strategy is useful if the notes follow a line-based format where one
wants to avoid duplicate lines in the merge result.

Note that if either of the note candidates contain duplicate lines _prior_
to the merge, these will also be removed by this merge strategy.

The patch also contains tests and documentation for the new strategy.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: --commit should fail if underlying notes ref has moved
Johan Herland [Tue, 9 Nov 2010 21:49:54 +0000 (22:49 +0100)]
git notes merge: --commit should fail if underlying notes ref has moved

When manually resolving a notes merge, if the merging ref has moved since
the merge started, we should fail to complete the merge, and alert the user
to what's going on.

This situation may arise if you start a 'git notes merge' which results in
conflicts, and you then update the current notes ref (using for example
'git notes add/copy/amend/edit/remove/prune', 'git update-ref', etc.),
before you get around to resolving the notes conflicts and calling
'git notes merge --commit'.

We detect this situation by comparing the first parent of the partial merge
commit (which was created when the merge started) to the current value of the
merging notes ref (pointed to by the .git/NOTES_MERGE_REF symref).

If we don't fail in this situation, the notes merge commit would overwrite
the updated notes ref, thus losing the changes that happened in the meantime.

The patch includes a testcase verifying that we fail correctly in this
situation.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: List conflicting notes in notes merge commit message
Johan Herland [Tue, 9 Nov 2010 21:49:53 +0000 (22:49 +0100)]
git notes merge: List conflicting notes in notes merge commit message

This brings notes merge in line with regular merge's behaviour.

This patch has been improved by the following contributions:
- Ævar Arnfjörð Bjarmason: Don't use C99 comments.

Thanks-to: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Manual conflict resolution, part 2/2
Johan Herland [Tue, 9 Nov 2010 21:49:52 +0000 (22:49 +0100)]
git notes merge: Manual conflict resolution, part 2/2

When the notes merge conflicts in .git/NOTES_MERGE_WORKTREE have been
resolved, we need to record a new notes commit on the appropriate notes
ref with the resolved notes.

This patch implements 'git notes merge --commit' which the user should
run after resolving conflicts in the notes merge worktree. This command
finalizes the notes merge by recombining the partial notes tree from
part 1 with the now-resolved conflicts in the notes merge worktree in a
merge commit, and updating the appropriate ref to this merge commit.

In order to correctly finalize the merge, we need to keep track of three
things:

- The partial merge result from part 1, containing the auto-merged notes.
  This is now stored into a ref called .git/NOTES_MERGE_PARTIAL.
- The unmerged notes. These are already stored in
  .git/NOTES_MERGE_WORKTREE, thanks to part 1.
- The notes ref to be updated by the finalized merge result. This is now
  stored in a symref called .git/NOTES_MERGE_REF.

In addition to "git notes merge --commit", which uses the above details
to create the finalized notes merge commit, this patch also implements
"git notes merge --reset", which aborts the ongoing notes merge by simply
removing the files/directory described above.

FTR, "git notes merge --commit" reuses "git notes merge --reset" to remove
the information described above (.git/NOTES_MERGE_*) after the notes merge
have been successfully finalized.

The patch also contains documentation and testcases for the two new options.

This patch has been improved by the following contributions:
- Ævar Arnfjörð Bjarmason: Fix nonsense sentence in --commit description
- Sverre Rabbelier: Rename --reset to --abort

Thanks-to: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Thanks-to: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Manual conflict resolution, part 1/2
Johan Herland [Tue, 9 Nov 2010 21:49:51 +0000 (22:49 +0100)]
git notes merge: Manual conflict resolution, part 1/2

Conflicts (that are to be resolved manually) are written into a special-
purpose working tree, located at .git/NOTES_MERGE_WORKTREE. Within this
directory, conflicting notes entries are stored (with conflict markers
produced by ll_merge()) using the SHA1 of the annotated object. The
.git/NOTES_MERGE_WORKTREE directory will only contain the _conflicting_
note entries. The non-conflicting note entries (aka. the partial merge
result) are stored in 'local_tree', and the SHA1 of the resulting commit
is written to 'result_sha1'. The return value from notes_merge() is -1.

The user is told to edit the files within the .git/NOTES_MERGE_WORKTREE
directory in order to resolve the conflicts.

The patch also contains documentation and testcases for the correct setup
of .git/NOTES_MERGE_WORKTREE.

The next part will recombine the partial notes merge result with the
resolved conflicts in .git/NOTES_MERGE_WORKTREE to produce the complete
merge result.

This patch has been improved by the following contributions:
- Jonathan Nieder: Use trace_printf(...) instead of OUTPUT(o, 5, ...)

Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: Preliminary docs on 'git notes merge'
Johan Herland [Tue, 9 Nov 2010 21:49:50 +0000 (22:49 +0100)]
Documentation: Preliminary docs on 'git notes merge'

This patch has been improved by the following contributions:
- Stephen Boyd: Use "automatically resolves" instead of "auto-resolves"
- Stephen Boyd: Remove unbalanced '('

Thanks-to: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Add automatic conflict resolvers (ours, theirs, union)
Johan Herland [Sun, 14 Nov 2010 23:55:12 +0000 (00:55 +0100)]
git notes merge: Add automatic conflict resolvers (ours, theirs, union)

The new -s/--strategy command-line option to 'git notes merge' allow the user
to choose how notes merge conflicts should be resolved. There are four valid
strategies to choose from:

1. "manual" (the default): This will let the user manually resolve conflicts.
   This option currently fails with an error message. It will be implemented
   properly in future patches.

2. "ours": This automatically chooses the local version of a conflict, and
   discards the remote version.

3. "theirs": This automatically chooses the remote version of a conflict, and
   discards the local version.

4. "union": This automatically resolves the conflict by appending the remote
   version to the local version.

The strategies are implemented using the combine_notes_* functions from the
notes.h API.

The patch also includes testcases verifying the correct implementation of
these strategies.

This patch has been improved by the following contributions:
- Jonathan Nieder: Future-proof by always checking add_note() return value
- Stephen Boyd: Use test_commit
- Stephen Boyd: Use correct option name

Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Thanks-to: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Handle real, non-conflicting notes merges
Johan Herland [Sun, 14 Nov 2010 23:54:11 +0000 (00:54 +0100)]
git notes merge: Handle real, non-conflicting notes merges

This continuation of the 'git notes merge' implementation teaches notes-merge
to properly do real merges between notes trees: Two diffs are performed, one
from $base to $remote, and another from $base to $local. The paths in each
diff are normalized to SHA1 object names. The two diffs are then consolidated
into a single list of change pairs to be evaluated. Each change pair consist
of:

  - The annotated object's SHA1
  - The $base SHA1 (i.e. the common ancestor notes for this object)
  - The $local SHA1 (i.e. the current notes for this object)
  - The $remote SHA1 (i.e. the to-be-merged notes for this object)

From the pair ($base -> $local, $base -> $remote), we can determine the merge
result using regular 3-way rules. If conflicts are encountered in this
process, we fail loudly and exit (conflict handling to be added in a future
patch), If we can complete the merge without conflicts, the resulting
notes tree is committed, and the current notes ref updated.

The patch includes added testcases verifying that we can successfully do real
conflict-less merges.

This patch has been improved by the following contributions:
- Jonathan Nieder: Future-proof by always checking add_note() return value
- Stephen Boyd: Use test_commit
- Jonathan Nieder: Use trace_printf(...) instead of OUTPUT(o, 5, ...)
- Junio C Hamano: fixup minor style issues

Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Thanks-to: Stephen Boyd <bebarino@gmail.com>
Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/notes.c: Refactor creation of notes commits.
Johan Herland [Tue, 9 Nov 2010 21:49:47 +0000 (22:49 +0100)]
builtin/notes.c: Refactor creation of notes commits.

Create new function create_notes_commit() which is slightly more general than
commit_notes() (accepts multiple commit parents and does not auto-update the
notes ref). This function will be used by the notes-merge functionality in
future patches.

Also rewrite builtin/notes.c:commit_notes() to reuse this new function.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit notes merge: Initial implementation handling trivial merges only
Johan Herland [Tue, 9 Nov 2010 21:49:46 +0000 (22:49 +0100)]
git notes merge: Initial implementation handling trivial merges only

This initial implementation of 'git notes merge' only handles the trivial
merge cases (i.e. where the merge is either a no-op, or a fast-forward).

The patch includes testcases for these trivial merge cases.

Future patches will extend the functionality of 'git notes merge'.

This patch has been improved by the following contributions:
- Stephen Boyd: Simplify argc logic
- Stephen Boyd: Use test_commit
- Ævar Arnfjörð Bjarmason: Don't use C99 comments.
- Jonathan Nieder: Add constants for common verbosity values
- Jonathan Nieder: Use trace_printf(...) instead of OUTPUT(o, 5, ...)
- Jonathan Nieder: Remove extraneous show() function
- Jonathan Nieder: Clarify handling of empty/missing notes ref in notes_merge()
- Junio C Hamano: fixup minor style issues

Thanks-to: Stephen Boyd <bebarino@gmail.com>
Thanks-to: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/notes.c: Split notes ref DWIMmery into a separate function
Johan Herland [Tue, 9 Nov 2010 21:49:45 +0000 (22:49 +0100)]
builtin/notes.c: Split notes ref DWIMmery into a separate function

expand_notes_ref() is a new function that performs the DWIM transformation
of "foo" -> "refs/notes/foo" where notes refs are expected.

This is done in preparation for future patches which will also need this
DWIM functionality.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes.c: Use two newlines (instead of one) when concatenating notes
Johan Herland [Tue, 9 Nov 2010 21:49:44 +0000 (22:49 +0100)]
notes.c: Use two newlines (instead of one) when concatenating notes

When using combine_notes_concatenate() to concatenate notes, it currently
ensures exactly one newline character between the given notes. However,
when using builtin/notes.c:create_note() to concatenate notes (e.g. by
'git notes append'), it adds a newline character to the trailing newline
of the preceding notes object, thus resulting in _two_ newlines (aka. a
blank line) separating contents of the two notes.

This patch brings combine_notes_concatenate() into consistency with
builtin/notes.c:create_note(), by ensuring exactly _two_ newline characters
between concatenated notes.

The patch also changes a few notes-related selftests accordingly.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years ago(trivial) t3303: Indent with tabs instead of spaces for consistency
Johan Herland [Tue, 9 Nov 2010 21:49:43 +0000 (22:49 +0100)]
(trivial) t3303: Indent with tabs instead of spaces for consistency

The rest of the file uses tabs for indenting. Fix the one function
that doesn't.

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