gitweb.git
git-p4: rewrite view handlingPete Wyckoff Mon, 2 Jan 2012 23:05:53 +0000 (18:05 -0500)

git-p4: rewrite view handling

The old code was not very complete or robust. Redo it.

This new code should be useful for a few possible additions
in the future:

- support for * and %%n wildcards
- allowing ... inside paths
- representing branch specs (not just client specs)
- tracking changes to views

Mark the remaining 12 tests in t9809 as fixed.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: support single file p4 client view mapsGary Gibbons Mon, 2 Jan 2012 23:05:52 +0000 (18:05 -0500)

git-p4: support single file p4 client view maps

Perforce client views can map individual files,
mapping one //depot file path to one //client file path.
These mappings contain no meta/masking characters.
This patch add support for these file maps to
the currently supported '...' view mappings.

[pw: one test now suceeds]

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>

git-p4: sort client views by reverse View numberGary Gibbons Mon, 2 Jan 2012 23:05:51 +0000 (18:05 -0500)

git-p4: sort client views by reverse View number

Correct view sorting to support the Perforce order,
where client views are ordered and later views
override earlier view mappings.

[pw: one test now succeeds]

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>

git-p4: fix test for unsupported P4 Client ViewsGary Gibbons Mon, 2 Jan 2012 23:05:50 +0000 (18:05 -0500)

git-p4: fix test for unsupported P4 Client Views

Change re method in test for unsupported Client View types
(containing %% or *) anywhere in the string rather than
at the begining.

[pw: two tests now succeed]

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>

git-p4: test client view handlingPete Wyckoff Mon, 2 Jan 2012 23:05:49 +0000 (18:05 -0500)

git-p4: test client view handling

Test many aspects of processing p4 client views with the
git-p4 option --use-client-spec. 16 out of 22 tests are
currently broken.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'pw/p4-docs-and-tests'Junio C Hamano Tue, 3 Jan 2012 22:09:28 +0000 (14:09 -0800)

Merge branch 'pw/p4-docs-and-tests'

* pw/p4-docs-and-tests:
git-p4: document and test submit options
git-p4: test and document --use-client-spec
git-p4: test --keep-path
git-p4: test --max-changes
git-p4: document and test --import-local
git-p4: honor --changesfile option and test
git-p4: document and test clone --branch
git-p4: test cloning with two dirs, clarify doc
git-p4: clone does not use --git-dir
git-p4: introduce asciidoc documentation
rename git-p4 tests

Merge branch 'maint'Junio C Hamano Tue, 3 Jan 2012 21:48:00 +0000 (13:48 -0800)

Merge branch 'maint'

* maint:
docs: describe behavior of relative submodule URLs
fix hang in git fetch if pointed at a 0 length bundle
Documentation: read-tree --prefix works with existing subtrees
Add MYMETA.json to perl/.gitignore

Merge branch 'maint-1.7.7' into maintJunio C Hamano Tue, 3 Jan 2012 21:47:46 +0000 (13:47 -0800)

Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
docs: describe behavior of relative submodule URLs
Documentation: read-tree --prefix works with existing subtrees
Add MYMETA.json to perl/.gitignore

Merge branch 'maint-1.7.6' into maint-1.7.7Junio C Hamano Tue, 3 Jan 2012 21:47:15 +0000 (13:47 -0800)

Merge branch 'maint-1.7.6' into maint-1.7.7

* maint-1.7.6:
Documentation: read-tree --prefix works with existing subtrees
Add MYMETA.json to perl/.gitignore

docs: describe behavior of relative submodule URLsJens Lehmann Sun, 1 Jan 2012 15:13:16 +0000 (16:13 +0100)

docs: describe behavior of relative submodule URLs

Since the relative submodule URLs have been introduced in f31a522a2d, they
do not conform to the rules for resolving relative URIs but rather to
those of relative directories.

Document that behavior.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fix hang in git fetch if pointed at a 0 length bundleBrian Harring Tue, 3 Jan 2012 13:46:03 +0000 (05:46 -0800)

fix hang in git fetch if pointed at a 0 length bundle

git-repo if interupted at the exact wrong time will generate zero
length bundles- literal empty files. git-repo is wrong here, but
git fetch shouldn't effectively spin loop if pointed at a zero
length bundle.

Signed-off-by: Brian Harring <ferringb@chromium.org>
Helped-by: Johannes Sixt
Helped-by: Nguyen Thai Ngoc Duy
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: read-tree --prefix works with existing... Clemens Buchacher Sat, 31 Dec 2011 11:50:56 +0000 (12:50 +0100)

Documentation: read-tree --prefix works with existing subtrees

Since 34110cd4 (Make 'unpack_trees()' have a separate source and
destination index) it is no longer true that a subdirectory with
the same prefix must not exist.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: Don't fail if work dir contains file named ... Jonathon Mah Sat, 31 Dec 2011 00:14:01 +0000 (16:14 -0800)

stash: Don't fail if work dir contains file named 'HEAD'

When performing a plain "git stash" (without --patch), git-diff would fail
with "fatal: ambiguous argument 'HEAD': both revision and filename". The
output was piped into git-update-index, masking the failed exit status.
The output is now sent to a temporary file (which is cleaned up by
existing code), and the exit status is checked. The "HEAD" arg to the
git-diff invocation has been disambiguated too, of course.

In patch mode, "git stash -p" would fail harmlessly, leaving the working
dir untouched. Interactive adding is fine, but the resulting tree was
diffed with an ambiguous 'HEAD' argument.

Use >foo (no space) when redirecting output.

In t3904, checks and operations on each file are in the order they'll
appear when interactively staging.

In t3905, fix a bug in "stash save --include-untracked -q is quiet": The
redirected stdout file was considered untracked, and so was removed from
the working directory. Use test path helper functions where appropriate.

Signed-off-by: Jonathon Mah <me@JonathonMah.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add MYMETA.json to perl/.gitignoreJack Nagel Thu, 29 Dec 2011 04:42:05 +0000 (22:42 -0600)

Add MYMETA.json to perl/.gitignore

ExtUtils::MakeMaker generates MYMETA.json in addition to MYMETA.yml
since version 6.57_07. As it suggests, it is just meta information about
the build and is cleaned up with 'make clean', so it should be ignored.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.9Junio C Hamano Wed, 28 Dec 2011 20:07:22 +0000 (12:07 -0800)

Update draft release notes to 1.7.9

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

Sync with 1.7.8.2Junio C Hamano Wed, 28 Dec 2011 20:04:25 +0000 (12:04 -0800)

Sync with 1.7.8.2

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

Git 1.7.8.2 v1.7.8.2Junio C Hamano Wed, 28 Dec 2011 19:49:09 +0000 (11:49 -0800)

Git 1.7.8.2

Contains accumulated fixes since 1.7.8 that have been merged to the
'master' branch in preparation for the 1.7.9 release.

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

Merge branch 'jv/maint-config-set' into maintJunio C Hamano Wed, 28 Dec 2011 20:03:19 +0000 (12:03 -0800)

Merge branch 'jv/maint-config-set' into maint

* jv/maint-config-set:
Fix an incorrect reference to --set-all.

Merge branch 'jk/follow-rename-score' into maintJunio C Hamano Wed, 28 Dec 2011 19:49:37 +0000 (11:49 -0800)

Merge branch 'jk/follow-rename-score' into maint

* jk/follow-rename-score:
use custom rename score during --follow

Merge branch 'jc/checkout-m-twoway' into maintJunio C Hamano Wed, 28 Dec 2011 19:44:54 +0000 (11:44 -0800)

Merge branch 'jc/checkout-m-twoway' into maint

* jc/checkout-m-twoway:
t/t2023-checkout-m.sh: fix use of test_must_fail
checkout_merged(): squelch false warning from some gcc
Test 'checkout -m -- path'
checkout -m: no need to insist on having all 3 stages

Merge branch 'tr/doc-sh-setup' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:51 +0000 (11:42 -0800)

Merge branch 'tr/doc-sh-setup' into maint

* tr/doc-sh-setup:
git-sh-setup: make require_clean_work_tree part of the interface

Merge branch 'jk/maint-strbuf-missing-init' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:46 +0000 (11:42 -0800)

Merge branch 'jk/maint-strbuf-missing-init' into maint

* jk/maint-strbuf-missing-init:
commit, merge: initialize static strbuf

Merge branch 'jk/maint-push-v-is-verbose' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:42 +0000 (11:42 -0800)

Merge branch 'jk/maint-push-v-is-verbose' into maint

* jk/maint-push-v-is-verbose:
make "git push -v" actually verbose

Merge branch 'jk/http-push-to-empty' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:37 +0000 (11:42 -0800)

Merge branch 'jk/http-push-to-empty' into maint

* jk/http-push-to-empty:
remote-curl: don't pass back fake refs

Conflicts:
remote-curl.c

Merge branch 'jk/doc-fsck' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:33 +0000 (11:42 -0800)

Merge branch 'jk/doc-fsck' into maint

* jk/doc-fsck:
docs: brush up obsolete bits of git-fsck manpage

Merge branch 'jc/maint-lf-to-crlf-keep-crlf' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:27 +0000 (11:42 -0800)

Merge branch 'jc/maint-lf-to-crlf-keep-crlf' into maint

* jc/maint-lf-to-crlf-keep-crlf:
lf_to_crlf_filter(): resurrect CRLF->CRLF hack

Merge branch 'ef/setenv-putenv' into maintJunio C Hamano Wed, 28 Dec 2011 19:42:24 +0000 (11:42 -0800)

Merge branch 'ef/setenv-putenv' into maint

* ef/setenv-putenv:
compat/setenv.c: error if name contains '='
compat/setenv.c: update errno when erroring out

Merge branch 'jc/advice-doc' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:39 +0000 (11:32 -0800)

Merge branch 'jc/advice-doc' into maint

* jc/advice-doc:
advice: Document that they all default to true

Merge branch 'jn/maint-sequencer-fixes' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:39 +0000 (11:32 -0800)

Merge branch 'jn/maint-sequencer-fixes' into maint

* jn/maint-sequencer-fixes:
revert: stop creating and removing sequencer-old directory
Revert "reset: Make reset remove the sequencer state"
revert: do not remove state until sequence is finished
revert: allow single-pick in the middle of cherry-pick sequence
revert: pass around rev-list args in already-parsed form
revert: allow cherry-pick --continue to commit before resuming
revert: give --continue handling its own function

Merge branch 'jk/maint-snprintf-va-copy' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:38 +0000 (11:32 -0800)

Merge branch 'jk/maint-snprintf-va-copy' into maint

* jk/maint-snprintf-va-copy:
compat/snprintf: don't look at va_list twice

Merge branch 'jk/maint-push-over-dav' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:37 +0000 (11:32 -0800)

Merge branch 'jk/maint-push-over-dav' into maint

* jk/maint-push-over-dav:
http-push: enable "proactive auth"
t5540: test DAV push with authentication

Merge branch 'jk/maint-mv' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:36 +0000 (11:32 -0800)

Merge branch 'jk/maint-mv' into maint

* jk/maint-mv:
mv: be quiet about overwriting
mv: improve overwrite warning
mv: make non-directory destination error more clear
mv: honor --verbose flag
docs: mention "-k" for both forms of "git mv"

Merge branch 'jk/fetch-no-tail-match-refs' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:36 +0000 (11:32 -0800)

Merge branch 'jk/fetch-no-tail-match-refs' into maint

* jk/fetch-no-tail-match-refs:
connect.c: drop path_match function
fetch-pack: match refs exactly
t5500: give fully-qualified refs to fetch-pack
drop "match" parameter from get_remote_heads

Merge branch 'ew/keepalive' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:36 +0000 (11:32 -0800)

Merge branch 'ew/keepalive' into maint

* ew/keepalive:
enable SO_KEEPALIVE for connected TCP sockets

Merge branch 'ci/stripspace-docs' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:35 +0000 (11:32 -0800)

Merge branch 'ci/stripspace-docs' into maint

* ci/stripspace-docs:
Update documentation for stripspace

Merge branch 'jh/fast-import-notes' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:35 +0000 (11:32 -0800)

Merge branch 'jh/fast-import-notes' into maint

* 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

Merge branch 'aw/rebase-i-stop-on-failure-to-amend... Junio C Hamano Wed, 28 Dec 2011 19:32:34 +0000 (11:32 -0800)

Merge branch 'aw/rebase-i-stop-on-failure-to-amend' into maint

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

Merge branch 'tj/maint-imap-send-remove-unused' into... Junio C Hamano Wed, 28 Dec 2011 19:32:34 +0000 (11:32 -0800)

Merge branch 'tj/maint-imap-send-remove-unused' into maint

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

Merge branch 'jn/branch-move-to-self' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:33 +0000 (11:32 -0800)

Merge branch 'jn/branch-move-to-self' into maint

* 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"

Merge branch 'na/strtoimax' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:33 +0000 (11:32 -0800)

Merge branch 'na/strtoimax' into maint

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

Merge branch 'jk/refresh-porcelain-output' into maintJunio C Hamano Wed, 28 Dec 2011 19:32:32 +0000 (11:32 -0800)

Merge branch 'jk/refresh-porcelain-output' into maint

* 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

Fix an incorrect reference to --set-all.Jelmer Vernooij Tue, 27 Dec 2011 02:03:45 +0000 (03:03 +0100)

Fix an incorrect reference to --set-all.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: document and test submit optionsPete Wyckoff Sun, 25 Dec 2011 02:07:40 +0000 (21:07 -0500)

git-p4: document and test submit options

Clarify there is a -M option, but no -C. These are both
configurable through variables.

Explain that the allowSubmit variable takes a comma-separated
list of branch names.

Catch earlier an invalid branch name given as an argument to
"git p4 clone".

Test option --origin, variable allowSubmit, and explicit master
branch name.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: test and document --use-client-specPete Wyckoff Sun, 25 Dec 2011 02:07:39 +0000 (21:07 -0500)

git-p4: test and document --use-client-spec

The depot path is required, even with this option. Make sure
git-p4 fails and exits with non-zero.

Contents in the specified depot path will be rearranged according
to the client spec. Test this and add a note in the docs.

Leave an XXX suggesting that this is somewhat confusing behavior
that might be good to fix later.

Function stripRepoPath() looks at self.useClientSpec. Make sure
this is set both for command-line option --use-client-spec and
for configuration variable git-p4.useClientSpec. Test this.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: test --keep-pathPete Wyckoff Sun, 25 Dec 2011 02:07:38 +0000 (21:07 -0500)

git-p4: test --keep-path

Make sure it leaves the path, below //depot, in git.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: test --max-changesPete Wyckoff Sun, 25 Dec 2011 02:07:37 +0000 (21:07 -0500)

git-p4: test --max-changes

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: document and test --import-localPete Wyckoff Sun, 25 Dec 2011 02:07:36 +0000 (21:07 -0500)

git-p4: document and test --import-local

Explain that it is needed on future syncs to find p4 branches
in refs/heads. Test this behavior.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: honor --changesfile option and testPete Wyckoff Sun, 25 Dec 2011 02:07:35 +0000 (21:07 -0500)

git-p4: honor --changesfile option and test

When an explicit list of changes is given, it makes no sense to
use @all or @3,5 or any of the other p4 revision specifiers.
Make the code notice when this happens, instead of just ignoring
--changesfile. Test it.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: document and test clone --branchPete Wyckoff Sun, 25 Dec 2011 02:07:34 +0000 (21:07 -0500)

git-p4: document and test clone --branch

Clone with --branch will not checkout HEAD, unless the branch
happens to be called the default refs/remotes/p4/master. The
--branch option is most useful with sync; give an example of
that.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: test cloning with two dirs, clarify docPete Wyckoff Sun, 25 Dec 2011 02:07:33 +0000 (21:07 -0500)

git-p4: test cloning with two dirs, clarify doc

Document how git-p4 currently works when specifying multiple
depot paths:

1. No branches or directories are named.

2. Conflicting files are silently ignored---the last change
wins.

2. Option --destination is required, else the last path is construed
to be a directory.

3. Revision specifiers must be the same on all paths for them to
take effect.

Test this behavior.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: clone does not use --git-dirPete Wyckoff Sun, 25 Dec 2011 02:07:32 +0000 (21:07 -0500)

git-p4: clone does not use --git-dir

Complain if --git-dir is given during a clone. It has no
effect. Only --destination and --bare can change where the newly
cloned git dir will be.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: introduce asciidoc documentationPete 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>

rename git-p4 testsPete 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>

Update draft release notes in preparation for 1.7.9-rc0Junio C Hamano Thu, 22 Dec 2011 23:36:48 +0000 (15:36 -0800)

Update draft release notes in preparation for 1.7.9-rc0

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

Merge branch 'tr/bash-read-unescaped'Junio C Hamano Thu, 22 Dec 2011 23:30:38 +0000 (15:30 -0800)

Merge branch 'tr/bash-read-unescaped'

* tr/bash-read-unescaped:
bash completion: use read -r everywhere

Merge branch 'ab/sun-studio-portability'Junio C Hamano Thu, 22 Dec 2011 23:30:33 +0000 (15:30 -0800)

Merge branch 'ab/sun-studio-portability'

* ab/sun-studio-portability:
Appease Sun Studio by renaming "tmpfile"
Fix a bitwise negation assignment issue spotted by Sun Studio
Fix an enum assignment issue spotted by Sun Studio

Merge branch 'tr/doc-sh-setup'Junio C Hamano Thu, 22 Dec 2011 23:30:29 +0000 (15:30 -0800)

Merge branch 'tr/doc-sh-setup'

* tr/doc-sh-setup:
git-sh-setup: make require_clean_work_tree part of the interface

Merge branch 'rr/revert-cherry-pick'Junio C Hamano Thu, 22 Dec 2011 23:30:22 +0000 (15:30 -0800)

Merge branch 'rr/revert-cherry-pick'

* rr/revert-cherry-pick:
t3502, t3510: clarify cherry-pick -m failure
t3510 (cherry-pick-sequencer): use exit status
revert: simplify getting commit subject in format_todo()
revert: tolerate extra spaces, tabs in insn sheet
revert: make commit subjects in insn sheet optional
revert: free msg in format_todo()

Merge branch 'tr/pty-all'Junio C Hamano Thu, 22 Dec 2011 23:30:15 +0000 (15:30 -0800)

Merge branch 'tr/pty-all'

* tr/pty-all:
test-terminal: set output terminals to raw mode

Merge branch 'jn/maint-gitweb-utf8-fix'Junio C Hamano Thu, 22 Dec 2011 23:30:12 +0000 (15:30 -0800)

Merge branch 'jn/maint-gitweb-utf8-fix'

* jn/maint-gitweb-utf8-fix:
gitweb: Fix fallback mode of to_utf8 subroutine
gitweb: Output valid utf8 in git_blame_common('data')
gitweb: esc_html() site name for title in OPML
gitweb: Call to_utf8() on input string in chop_and_escape_str()

Update draft release notes to 1.7.9Junio C Hamano Thu, 22 Dec 2011 19:43:02 +0000 (11:43 -0800)

Update draft release notes to 1.7.9

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

Merge branch 'jk/maint-strbuf-missing-init'Junio C Hamano Thu, 22 Dec 2011 19:27:31 +0000 (11:27 -0800)

Merge branch 'jk/maint-strbuf-missing-init'

* jk/maint-strbuf-missing-init:
commit, merge: initialize static strbuf

Conflicts:
builtin/merge.c

Merge branch 'jc/maint-lf-to-crlf-keep-crlf'Junio C Hamano Thu, 22 Dec 2011 19:27:29 +0000 (11:27 -0800)

Merge branch 'jc/maint-lf-to-crlf-keep-crlf'

* jc/maint-lf-to-crlf-keep-crlf:
lf_to_crlf_filter(): resurrect CRLF->CRLF hack

Merge branch 'rs/diff-tree-combined-clean-up'Junio C Hamano Thu, 22 Dec 2011 19:27:29 +0000 (11:27 -0800)

Merge branch 'rs/diff-tree-combined-clean-up'

* rs/diff-tree-combined-clean-up:
submodule: use diff_tree_combined_merge() instead of diff_tree_combined()
pass struct commit to diff_tree_combined_merge()
use struct sha1_array in diff_tree_combined()

Merge branch 'jk/maint-push-v-is-verbose'Junio C Hamano Thu, 22 Dec 2011 19:27:29 +0000 (11:27 -0800)

Merge branch 'jk/maint-push-v-is-verbose'

* jk/maint-push-v-is-verbose:
make "git push -v" actually verbose

Merge branch 'tr/grep-threading'Junio C Hamano Thu, 22 Dec 2011 19:27:28 +0000 (11:27 -0800)

Merge branch 'tr/grep-threading'

* tr/grep-threading:
grep: disable threading in non-worktree case
grep: enable threading with -p and -W using lazy attribute lookup
grep: load funcname patterns for -W

Merge branch 'jk/pretty-reglog-ent'Junio C Hamano Thu, 22 Dec 2011 19:27:28 +0000 (11:27 -0800)

Merge branch 'jk/pretty-reglog-ent'

* jk/pretty-reglog-ent:
pretty: give placeholders to reflog identity

Merge branch 'jk/follow-rename-score'Junio C Hamano Thu, 22 Dec 2011 19:27:27 +0000 (11:27 -0800)

Merge branch 'jk/follow-rename-score'

* jk/follow-rename-score:
use custom rename score during --follow

Merge branch 'jk/doc-fsck'Junio C Hamano Thu, 22 Dec 2011 19:27:27 +0000 (11:27 -0800)

Merge branch 'jk/doc-fsck'

* jk/doc-fsck:
docs: brush up obsolete bits of git-fsck manpage

Conflicts:
Documentation/git-fsck.txt

Merge branch 'nd/war-on-nul-in-commit'Junio C Hamano Thu, 22 Dec 2011 19:27:26 +0000 (11:27 -0800)

Merge branch 'nd/war-on-nul-in-commit'

* nd/war-on-nul-in-commit:
commit_tree(): refuse commit messages that contain NULs
Convert commit_tree() to take strbuf as message
merge: abort if fails to commit

Conflicts:
builtin/commit.c
commit.c
commit.h

Merge branch 'jk/maint-do-not-feed-stdin-to-tests'Junio C Hamano Thu, 22 Dec 2011 19:27:25 +0000 (11:27 -0800)

Merge branch 'jk/maint-do-not-feed-stdin-to-tests'

* jk/maint-do-not-feed-stdin-to-tests:
test-lib: redirect stdin of tests

Merge branch 'jn/test-cleanup-7006'Junio C Hamano Thu, 22 Dec 2011 19:27:24 +0000 (11:27 -0800)

Merge branch 'jn/test-cleanup-7006'

* jn/test-cleanup-7006:
test: errors preparing for a test are not special

Merge branch 'ef/setenv-putenv'Junio C Hamano Thu, 22 Dec 2011 19:27:24 +0000 (11:27 -0800)

Merge branch 'ef/setenv-putenv'

* ef/setenv-putenv:
compat/setenv.c: error if name contains '='
compat/setenv.c: update errno when erroring out

Merge branch 'jk/git-prompt'Junio C Hamano Thu, 22 Dec 2011 19:27:23 +0000 (11:27 -0800)

Merge branch 'jk/git-prompt'

* jk/git-prompt:
contrib: add credential helper for OS X Keychain
Makefile: OS X has /dev/tty
Makefile: linux has /dev/tty
credential: use git_prompt instead of git_getpass
prompt: use git_terminal_prompt
add generic terminal prompt function
refactor git_getpass into generic prompt function
move git_getpass to its own source file
imap-send: don't check return value of git_getpass
imap-send: avoid buffer overflow

Conflicts:
Makefile

Merge branch 'jk/http-push-to-empty'Junio C Hamano Thu, 22 Dec 2011 19:27:22 +0000 (11:27 -0800)

Merge branch 'jk/http-push-to-empty'

* jk/http-push-to-empty:
remote-curl: don't pass back fake refs

Conflicts:
remote-curl.c

Sync with v1.7.8.1Junio C Hamano Wed, 21 Dec 2011 20:02:39 +0000 (12:02 -0800)

Sync with v1.7.8.1

Git 1.7.8.1 v1.7.8.1Junio C Hamano Wed, 21 Dec 2011 20:02:13 +0000 (12:02 -0800)

Git 1.7.8.1

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

Merge branch 'jl/submodule-status-failure-report' into... Junio C Hamano Wed, 21 Dec 2011 19:42:45 +0000 (11:42 -0800)

Merge branch 'jl/submodule-status-failure-report' into maint

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

Merge branch 'tr/userdiff-c-returns-pointer' into maintJunio C Hamano Wed, 21 Dec 2011 19:42:45 +0000 (11:42 -0800)

Merge branch 'tr/userdiff-c-returns-pointer' into maint

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

Merge branch 'bc/maint-apply-check-no-patch' into maintJunio C Hamano Wed, 21 Dec 2011 19:42:45 +0000 (11:42 -0800)

Merge branch 'bc/maint-apply-check-no-patch' into maint

* 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

Merge branch 'cn/maint-lf-to-crlf-filter' into maintJunio C Hamano Wed, 21 Dec 2011 19:42:44 +0000 (11:42 -0800)

Merge branch 'cn/maint-lf-to-crlf-filter' into maint

* cn/maint-lf-to-crlf-filter:
lf_to_crlf_filter(): tell the caller we added "\n" when draining
convert: track state in LF-to-CRLF filter

Merge branch 'jk/maint-upload-archive' into maintJunio C Hamano Wed, 21 Dec 2011 19:42:44 +0000 (11:42 -0800)

Merge branch 'jk/maint-upload-archive' into maint

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

bash completion: use read -r everywhereThomas Rast Wed, 21 Dec 2011 15:54:14 +0000 (16:54 +0100)

bash completion: use read -r everywhere

We use the 'read' command without -r, so that it treats '\' as an
escape character, in several places. This breaks the loop reading
refnames from git-for-each-ref in __git_refs() if there are refnames
such as "foo'bar", in which case for-each-ref helpfully quotes them as

$ git update-ref "refs/remotes/test/foo'bar" HEAD
$ git for-each-ref --shell --format="ref=%(refname:short)" "refs/remotes"
ref='test/foo'\''bar'

Interpolating the \' here will read "ref='test/foo'''bar'" instead, and
eval then chokes on the unbalanced quotes.

However, since none of the read loops _want_ to have backslashes
interpolated, it's much safer to use read -r everywhere.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

clone: the -o option has nothing to do with <branch>Carlos Martín Nieto Wed, 21 Dec 2011 18:14:09 +0000 (18:14 +0000)

clone: the -o option has nothing to do with <branch>

It is to give an alternate <name> instead of "origin" to the remote
we are cloning from.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/log: remove redundant initializationMichael Schubert Wed, 21 Dec 2011 12:05:27 +0000 (13:05 +0100)

builtin/log: remove redundant initialization

"abbrev" and "commit_format" in struct rev_info get initialized in
init_revisions - no need to reinit in cmd_log_init_defaults.

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ms/commit-cc-option-helpstring' into... Junio C Hamano Wed, 21 Dec 2011 18:50:20 +0000 (10:50 -0800)

Merge branch 'ms/commit-cc-option-helpstring' into maint

* ms/commit-cc-option-helpstring:
builtin/commit: add missing '/' in help message

builtin/commit: add missing '/' in help messageMichael Schubert Wed, 21 Dec 2011 14:56:00 +0000 (15:56 +0100)

builtin/commit: add missing '/' in help message

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Appease Sun Studio by renaming "tmpfile"Ævar Arnfjörð Bjarmason Wed, 21 Dec 2011 01:18:21 +0000 (01:18 +0000)

Appease Sun Studio by renaming "tmpfile"

On Solaris the system headers define the "tmpfile" name, which'll
cause Git compiled with Sun Studio 12 Update 1 to whine about us
redefining the name:

"pack-write.c", line 76: warning: name redefined by pragma redefine_extname declared static: tmpfile (E_PRAGMA_REDEFINE_STATIC)
"sha1_file.c", line 2455: warning: name redefined by pragma redefine_extname declared static: tmpfile (E_PRAGMA_REDEFINE_STATIC)
"fast-import.c", line 858: warning: name redefined by pragma redefine_extname declared static: tmpfile (E_PRAGMA_REDEFINE_STATIC)
"builtin/index-pack.c", line 175: warning: name redefined by pragma redefine_extname declared static: tmpfile (E_PRAGMA_REDEFINE_STATIC)

Just renaming the "tmpfile" variable to "tmp_file" in the relevant
places is the easiest way to fix this.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix a bitwise negation assignment issue spotted by... Ævar Arnfjörð Bjarmason Wed, 21 Dec 2011 01:18:20 +0000 (01:18 +0000)

Fix a bitwise negation assignment issue spotted by Sun Studio

Change direct and indirect assignments of the bitwise negation of 0 to
uint32_t variables to have a "U" suffix. I.e. ~0U instead of ~0. This
eliminates warnings under Sun Studio 12 Update 1:

"vcs-svn/string_pool.c", line 11: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND)
"vcs-svn/string_pool.c", line 81: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND)
"vcs-svn/repo_tree.c", line 112: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND)
"vcs-svn/repo_tree.c", line 112: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND)
"test-treap.c", line 34: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND)

The semantics are still the same as demonstrated by this program:

$ cat test.c && make test && ./test
#include <stdio.h>
#include <stdint.h>

int main(void)
{
uint32_t foo = ~0;
uint32_t bar = ~0U;

printf("foo = <%u> bar = <%u>\n", foo, bar);

return 0;
}
cc test.c -o test
"test.c", line 5: warning: initializer will be sign-extended: -1
foo = <4294967295> bar = <4294967295>

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix an enum assignment issue spotted by Sun StudioÆvar Arnfjörð Bjarmason Wed, 21 Dec 2011 01:18:19 +0000 (01:18 +0000)

Fix an enum assignment issue spotted by Sun Studio

In builtin/fast-export.c we'd assign to variables of the
tag_of_filtered_mode enum type with constants defined for the
signed_tag_mode enum.

We'd get the intended value since both the value we were assigning
with and the one we actually wanted had the same positional within
their respective enums, but doing it this way makes no sense.

This issue was spotted by Sun Studio 12 Update 1:

"builtin/fast-export.c", line 54: warning: enum type mismatch: op "=" (E_ENUM_TYPE_MISMATCH_OP)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 21 Dec 2011 00:34:20 +0000 (16:34 -0800)

Merge branch 'maint'

* maint:
builtin/init-db.c: eliminate -Wformat warning on Solaris

builtin/init-db.c: eliminate -Wformat warning on SolarisÆvar Arnfjörð Bjarmason Tue, 20 Dec 2011 23:27:41 +0000 (23:27 +0000)

builtin/init-db.c: eliminate -Wformat warning on Solaris

On Solaris systems we'd warn about an implicit cast of mode_t when we
printed things out with the %d format. We'd get this warning under GCC
4.6.0 with Solaris headers:

builtin/init-db.c: In function ‘separate_git_dir’:
builtin/init-db.c:354:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘mode_t’ [-Wformat]

We've been doing this ever since v1.7.4.1-296-gb57fb80. Just work
around this by adding an explicit cast.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: make require_clean_work_tree part of... Thomas Rast Tue, 20 Dec 2011 21:42:39 +0000 (22:42 +0100)

git-sh-setup: make require_clean_work_tree part of the interface

92c62a3 (Porcelain scripts: Rewrite cryptic "needs update" error
message, 2010-10-19) refactored git's own checking to a function in
git-sh-setup. This is a very useful thing for script writers, so
document it.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mh/ref-api'Junio C Hamano Tue, 20 Dec 2011 21:25:53 +0000 (13:25 -0800)

Merge branch 'mh/ref-api'

* mh/ref-api:
add_ref(): take a (struct ref_entry *) parameter
create_ref_entry(): extract function from add_ref()
repack_without_ref(): remove temporary
resolve_gitlink_ref_recursive(): change to work with struct ref_cache
Pass a (ref_cache *) to the resolve_gitlink_*() helper functions
resolve_gitlink_ref(): improve docstring
get_ref_dir(): change signature
refs: change signatures of get_packed_refs() and get_loose_refs()
is_dup_ref(): extract function from sort_ref_array()
add_ref(): add docstring
parse_ref_line(): add docstring
is_refname_available(): remove the "quiet" argument
clear_ref_array(): rename from free_ref_array()
refs: rename parameters result -> sha1
refs: rename "refname" variables
struct ref_entry: document name member

Conflicts:
cache.h
refs.c

Merge branch 'jc/advice-doc'Junio C Hamano Tue, 20 Dec 2011 21:25:29 +0000 (13:25 -0800)

Merge branch 'jc/advice-doc'

* jc/advice-doc:
advice: Document that they all default to true

Merge branch 'jc/request-pull-show-head-4'Junio C Hamano Tue, 20 Dec 2011 21:25:27 +0000 (13:25 -0800)

Merge branch 'jc/request-pull-show-head-4'

* jc/request-pull-show-head-4:
request-pull: do not emit "tag" before the tagname
request-pull: update the "pull" command generation logic

Merge branch 'jc/pull-signed-tag'Junio C Hamano Tue, 20 Dec 2011 21:24:12 +0000 (13:24 -0800)

Merge branch 'jc/pull-signed-tag'

* jc/pull-signed-tag:
commit: do not lose mergetag header when not amending

Merge branch 'jc/checkout-m-twoway'Junio C Hamano Tue, 20 Dec 2011 21:24:08 +0000 (13:24 -0800)

Merge branch 'jc/checkout-m-twoway'

* jc/checkout-m-twoway:
t/t2023-checkout-m.sh: fix use of test_must_fail

t/t2023-checkout-m.sh: fix use of test_must_failÆvar Arnfjörð Bjarmason Tue, 20 Dec 2011 20:37:45 +0000 (20:37 +0000)

t/t2023-checkout-m.sh: fix use of test_must_fail

Change an invocation of test_must_fail() to be inside a
test_expect_success() as is our usual pattern. Having it outside
caused our tests to fail under prove(1) since we wouldn't print a
newline before TAP output:

CONFLICT (content): Merge conflict in both.txt
# GETTEXT POISON #ok 2 - -m restores 2-way conflicted+resolved file

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit: do not lose mergetag header when not amendingJunio C Hamano Tue, 20 Dec 2011 21:20:56 +0000 (13:20 -0800)

commit: do not lose mergetag header when not amending

The earlier ed7a42a (commit: teach --amend to carry forward extra headers,
2011-11-08) broke "git merge/pull; edit to fix conflict; git commit"
workflow by forgetting that commit_tree_extended() takes the whole extra
header list.

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